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

Angular Velocity and accelerations

asked 2016-02-09 12:16:30 -0500

Yacoub gravatar image

Hi all,

I am trying to calculate the angular velocity and acceleration for 7DoF robot. Which does not support these measurements.

So I need to derive the joints variable online and publish the result as angular velocity.

Is there any package in ROS that can do this for me ?

Best Regards


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-02-09 13:30:43 -0500

updated 2016-02-09 13:31:04 -0500

If your robot is publishing joint angles at a reasonably high frequency, and you have a URDF describing the robot on the parameter server, and you have the robot_state_publisher running, then the current geometric description of your robot should be available to /tf and you can use a method such as tf::Transformer::lookupTwist() to estimate the velocity of your target frame relative to another frame estimated using finite differencing. This will likely be noisy data even if the frequency of your /joint_states information is quite high. Read more here.

If you have some way of measuring joint velocities (even if they are just finite differenced at high rates), you could alternatively use the manipulator Jacobian to map joint velocities to either spatial or body velocities. KDL (bundled in ROS as orocos_kdl) has tools for computing the Jacobian given joint angles and a URDF. This can also be done in Python via pykdl_utils.

Using either method, you could, in principle, estimate accelerations by numerically differentiating the velocities you get, but be aware, the results are not likely to be very accurate.

edit flag offensive delete link more


You mean that I need to do the following:

1- include URDF within the launch file 2- include the _Robot-state-publisher_ with the launch file as well 3- Write a tf broadcaster to estimate the angular speed

Is this right?

Thanks :)

Yacoub gravatar image Yacoub  ( 2016-02-10 12:34:36 -0500 )edit

You would need a tf listener. The (robot_state_publisher node)+(URDF on parameter server)+(joint_states topic) provides all of the required tf information.

jarvisschultz gravatar image jarvisschultz  ( 2016-02-10 15:21:19 -0500 )edit

Question Tools



Asked: 2016-02-09 12:16:30 -0500

Seen: 1,091 times

Last updated: Feb 09 '16