ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Controlling ABB robot using the new ABB driver

asked 2021-06-08 15:34:58 -0500

MohammadHashmi gravatar image

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?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-06-09 02:36:15 -0500

gvdhoorn gravatar image

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.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2021-06-08 15:34:58 -0500

Seen: 523 times

Last updated: Jun 09 '21