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

The angular velocity does NOT set an angle, but a velocity as the name says. So to turn by 1.745 radians you must send the angular velocity of 1.745 rad/s for 1 second. If the robot cannot turn that fast, and you would send 1/5 of that, you therefore must send that for 5 seconds.

The number of times that you send the command has nothing to do with the actual angles reached as the time that the velocity is applied is relevant.

Note 1: Usually real robots should have a safety timeout that will require the velocity to be send continuously. If the timeout of e.g. 0.1s is reached turning stops.

Note 2: Sending 1.745 rad/s for one second will apply motor commands that should do that for about 1s. Wheel slip, etc. might give you different results in reality. For turning to a goal, you should put that into a closed-loop controller.