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

Depending on your exact requirements there is no need for ros_control: most drivers for robot arms in ROS support FollowJointTrajectory actions, which take in a JointTrajectory and execute that.

You can create those JointTrajectory instances yourself, without any planning component involved.

Note: you are now responsible for sanity checking, collision avoidance and detection and trajectory smoothness, as drivers do not typically do any of that.


ros_control can be helpful, if you're looking for a closed-loop approach and wish to do something other than executing trajectories.

And in the case of components like ur_modern_driver: that particular component exposes a /joint_speed topic that accepts joint velocity commands.

Depending on your exact requirements there is no need for ros_control: most drivers for robot arms in ROS support FollowJointTrajectory actions, which take in a JointTrajectory and execute that.

You can create those JointTrajectory instances yourself, without any planning component involved.

Note: you are now responsible for sanity checking, collision avoidance and detection and trajectory smoothness, as drivers do not typically do any of that.


ros_control can be helpful, if you're looking for a closed-loop approach and wish to do something other than executing trajectories.

And in the case of components like ur_modern_driver: that particular component exposes a /joint_speed topic that accepts joint velocity commands.


Edit:

Unfortunately I don't want to plan ahead

I'm not sure what you mean by this exactly. Robot control is (mostly) reactive in this case, so you'll always be planning, it's just that the timescales are much smaller.

but I was hoping I could leverage ros_control's existing functionality

at least the ur_modern_driver has ros_control capabilities built-in (comes with a `hardware_interface).

That is typically used with a joint_trajectory_controller (which would be trajectory based again), but doesn' t need to be.

I don't have any experience with velocity control using ros_control, so that would be something you'd have to check for yourself.