Kinovarobotics / ros_kortex

ROS packages for KINOVA® KORTEX™ robotic arms
Other
156 stars 158 forks source link

Duration Parameter in Base Joint Speeds Messages #159

Open fleurssauvages opened 3 years ago

fleurssauvages commented 3 years ago

Hi,

I am controlling the arm to have Cartesian velocity control with joint constraints. The optimization is done with ROS and C++. Everything works great but i have one issue.

After making my optimization, i send the desired joint velocity to the "/my_gen3/in/joint_velocity" topic. As long as my trajectory is correct, everything works fine and the control is as desired.

Now lets image that my node or my Ethernet connection shutdown for an unknown reason. It seems like the "duration" parameter in the message is not taken into account and the joints keep rotating forever. I have tried many things: to modify both the duration in the BaseJointSpeeds and BaseJointSpeed (each joint of the list of jointspeeds) messages; i thought that the duration might be in ms, or seconds, but it still rotates forever no matter what the input value (i tried 1, 10, etc.)

This is of course a huge security issue, as a shutdown of my computer would lead to potential collisions due to undesired published velocities. And because i want to use my control with human interaction, this would lead to major potential risks.

Am I missing something obvious ? or is that parameter indeed not used ? If so, how could I put another layer of security so that any joint velocity command is only followed for like 1s for example ?

Thank you in advance for any help

felixmaisonneuve commented 3 years ago

Hi @fleurssauvages,

Unfortunately, the duration parameter is not implemented at the moment and does not work as you can see here and here.

Our Kortex API does not use this parameter and other issues have previously been made regarding this in our other repo (here and here)

I will keep this issue open and will update it when progress will be made about it.

Sorry for the inconvenience, Felix