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

Revision history [back]

click to hide/show revision 1
initial version

I'm assuming you want an answer that discusses how to do this with ROS. There might be ways to do this with the controller alone, but I won't mention those as I don't have any experience with them.

At least one available driver (ur_modern_driver) has a ros_control compatible mode.

An approach that might work, would be to combine the ur_modern_driver hardware_interface with one controlling your linear rail (using the combined_robot_hw support in ros_control).

This would allow synchronised execution of a trajectory across both the 6 axes available from the robot as well as the one from the rail.

The interfaces available to the robot controller and the rail controller will then become the bottleneck: if they delay execution of incoming motions in an arbitrary or hard to predict way, or if there is a significant difference between how your linear rail executes motions from how the UR controller does it, this will not work. But that is not something unique to using ROS, the combined_robot_hw approach or any of the available drivers.

Millisecond synchronisation of two independent pieces of hw is never easy and adding more software to such a setup doesn't necessarily make it any easier.