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:
- 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: - 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.