Please note that this package has not been productized, and that academia is the intended audience.
The package is provided "as-is", and as such no more than limited support can be expected.
The abb_egm_hardware_interface
package provides:
- A
ros_control
-based hardware interface, for communicating with ABB robots via the Externally Guided Motion (EGM
) interface:- Recommendations:
- Use
RobotStudio
simulations before testing with real robots. - Use the latest supported
RobotWare
version to get the bestEGM
performance.
- Use
- The hardware interface sets up
EGM
servers that the robot can send feedback messages to, and receive motion commands from:- It is always the robot that initiates
EGM
communication sessions.
- It is always the robot that initiates
- The hardware interface will only allow
ros_control
controllers to be started if there is already an activeEGM
communication session:- Users can specify a list of controllers that are always ok to start (e.g. passive state controllers).
- For
MultiMove
systems it is important to note that:- The ROS side configurations must specify correct names for the mechanical unit groups that are intended to be used with
EGM
. - Activation/deactivation of mechanical units, after the hardware interface has been initialized, is not handled by the hardware interface and can lead to unexpected behavior.
- The ROS side configurations must specify correct names for the mechanical unit groups that are intended to be used with
- Recommendations:
- A ROS node that uses the hardware interface, together with a
ros_control
controller manager, to run a control loop. - A ROS node for stopping
ros_control
controllers whenEGM
sessions ends:- Users can specify a list of controllers that are ok to keep running (e.g. passive state controllers).
Please note that this package is only recommended for advanced users.
Please see the egm_hardware_interface.launch file for how to start the node and available node parameters. Additionally, the ROS node, provided by the abb_rws_service_provider
package, is required during initialization of the hardware interface.
Please see the config folder for configuration examples for a few different use cases.
RobotWare
version6.07.01
or higher (less than7.0
).
Please see the underlying abb_libegm and abb_librws packages for more details.
The following table is non-exhaustive, but it should at least give some ideas for things to check.
Issue | Check |
---|---|
Communication | If the FlexPendant shows the No data from UdpUc device message it means that the robot sent out EGM UDP messages, but it did not receive any reply:
|
Utilization rate | If the hardware interface prints messages about an EGM channel's utilization rate being above 100% , it means that the desired commands sent by the user are too aggressive and they should be reduced. |
Motion (robot side settings) | System configurations:
EGM RAPID parameters:
3HAC073319-001 , revision: B ) for a more detailed description of EGM settings and capabilities. |
Motion (ROS side settings) | The hardware interface registers PositionJointSoftLimitsInterface and VelocityJointSoftLimitsInterface interfaces, which users can, for example, configure with velocity limits for each joint (conservative limits are set per default).Please see the joint_limits_interface package for more details about how joint limit configurations can be specified. |
The core development has been made within the European Union's Horizon 2020 project: ROSIN - ROS-Industrial Quality-Assured Robot Software Components (see http://rosin-project.eu for more info).
The ROSIN project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement no. 732287.
The opinions expressed here reflects only the author's view and reflects in no way the European Commission's opinions. The European Commission is not responsible for any use that may be made of the contained information.
Special thanks to gavanderhoorn for guidance with open-source practices and conventions.