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

Revision history [back]

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

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