0
$\begingroup$

Rosanswers logo

I am working with a toolchain which is compatible with ROS industrial and uses ROS-I guidelines to send trajectories to ROS-I based robot controllers. Currently, I am using the joint_path_command topic to send the trajectories to the robot, but the new ABB driver does not seem to be subscribed to that topic. I want to use the RWS interface to communicate with the Robot controller, as I am not sure I can access the EGM license. Can I know how I may be able to communicate with my ABB robot using the RWS interface on the new ABB driver? Eg. Is it possible to send the robot a trajectory over some topic or service using a roscpp based program?


Originally posted by MohammadHashmi on ROS Answers with karma: 5 on 2021-06-08

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I want to use the RWS interface to communicate with the Robot controller, as I am not sure I can access the EGM license. Can I know how I may be able to communicate with my ABB robot using the RWS interface on the new ABB driver? Eg. Is it possible to send the robot a trajectory over some topic or service using a roscpp based program?

No, unfortunately not.

abb_robot_driver uses EGM to control robot motion. RWS is only used for coordination (such as enabling drives, resetting the controller, starting RAPID programs, etc).

Without EGM on the controller, you can still use the RWS node (ie: abb_rws_service_provider), but not immediately to command any motion.

If you'd still want to use abb_robot_driver, you could:

  1. generate a RAPID program (using some external library/node, not included with abb_robot_driver), upload that to the controller and then use abb_rws_service_provider to start that program. Or:
  2. write a RAPID program which executes moves to a number of positions, upload that to the controller, and then use abb_rws_service_provider to update the data in that program (ie: update position variables based on your ROS trajectory)

Neither of these two options has been implemented (perhaps someone has done this, but I'm not aware of anyone making this available publicly), so this would require some work.

Perhaps a hybrid between abb_driver and abb_robot_driver, where the custom sockets used by abb_driver would be replaced by abb_rws_service_provider setting the variables would work. But again: that would require some custom development.


Originally posted by gvdhoorn with karma: 86574 on 2021-06-09

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.