Angular Velocity and accelerations

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

Ali

edit retag close merge delete

Sort by ยป oldest newest most voted

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.

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 :)

( 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.

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