ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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.