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

realtime control manipulator in ros

asked 2019-06-07 10:47:14 -0500

nguyentuMTA gravatar image

updated 2019-06-07 10:47:31 -0500

I have a 6 DOF manipulator URDF, I can use the compute_ik service to have solution for a specified pose then I publish in Rviz but I see that if I use set_joint_value_target or set_pose_target it very slow. Is there other way to do that faster than set_joint_value_target and set_pose_target. Assuming that I have a node subscribe to a node that give me the pose that manipulator have to reach. Thanks in advance

edit retag flag offensive close merge delete


Would this be related to #q324392?

gvdhoorn gravatar image gvdhoorn  ( 2019-06-08 02:08:40 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-06-13 05:42:30 -0500

VitaliyProoks gravatar image

updated 2019-06-13 06:06:04 -0500

First of all, I'd like to note that request-reply communication pattern is much slower than pub-sub, and this is true not only for ROS, but for other communication frameworks like 0mq and AKKA. ROS services implement the request-reply pattern so avoid them when high performance is important.

Maybe you could use the jog_arm package as mentioned in this answer but I haven't tried this solution myself.

For my current real-time teleoperation framework I use a custom implementation of inverse and forward kinematics solution simply following the tutorial from MoveIt. The node subscribes to a cartesian pose topic and publishes corresponding joint states, and subscribes to a joint states topic and publishes cartesian poses. This way I can run the control loop at 1KHz, and it can work even faster, if necessary.

So I recommend you to get your hands dirty, write a little bit of code, and you'll be able to implement more sophisticated things like converting cartesian velocities to joint speeds, which is crucial for teleoperation or visual servoing of manipulators like UR5.

edit flag offensive delete link more


Which seems to be exactly what jog_arm implements.

In general I agree with you though: for on-line control (real-time implies deterministic for me), trying to use the high-level interfaces to the full planning pipeline of moveit just isn't going to work at the moment.

gvdhoorn gravatar image gvdhoorn  ( 2019-06-13 06:07:59 -0500 )edit

I can't understand your word very clear can you give me some guide like an example in github thanks in advance

nguyentuMTA gravatar image nguyentuMTA  ( 2019-06-13 09:34:22 -0500 )edit

Question Tools



Asked: 2019-06-07 10:47:14 -0500

Seen: 456 times

Last updated: Jun 13 '19