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
RobotStudiosimulations before testing with real robots. - Use the latest supported
RobotWareversion to get the bestEGMperformance.
- Use
- The hardware interface sets up
EGMservers that the robot can send feedback messages to, and receive motion commands from:- It is always the robot that initiates
EGMcommunication sessions.
- It is always the robot that initiates
- The hardware interface will only allow
ros_controlcontrollers to be started if there is already an activeEGMcommunication session:- Users can specify a list of controllers that are always ok to start (e.g. passive state controllers).
- For
MultiMovesystems 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_controlcontroller manager, to run a control loop. - A ROS node for stopping
ros_controlcontrollers whenEGMsessions 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.
RobotWareversion6.07.01or 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 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.