Rosanswers logo


I would like to know if there is a method to calculate the position of a robot based on angular velocity and accelerations.

I would like, from a start position, to move my robot and, based on angular velocity and accelerations (3 axis) understand where he is.

Is there a way to do it in python ?

Thank you really very much !

Originally posted by aled96 on ROS Answers with karma: 13 on 2018-05-28

Post score: 0

Original comments

Comment by dinesh on 2018-05-29:
well if u'r robot is in gazebo simulation than u can use ros controller plugin which u have to put in your robot's urdf file. after that u have to load the joint_state_controller which published the joint_state topics from which u can get the position and orianatation of every link.

Comment by Delb on 2018-05-29:
Or you can use a tf listener between the frames odom and map .


1 Answer 1


Rosanswers logo

That is absolutely possible, but it is based on some intricate calculations that you need to do. The particular you are looking for is the "forward kinematics" of the robot you are using. This allows you to calculate the end-effector position of the robot based on its joint positions (rotational or translational joints). This is done by the use of Denavit Hartenberg parameters which are unique for every robot, and unless your is a mass produced one, you probably have to figure them out yourself. Check out this link https://blog.robotiq.com/how-to-calculate-a-robots-forward-kinematics-in-5-easy-steps . I should warn you that you need some mathematical skills since these are generally subjects studied at universities.

There is also something called "inverse kinematics" that calculate what position the joints need to be in in order for the end-effector to be at a specific point in space

Originally posted by eirikaso with karma: 108 on 2018-05-29

This answer was ACCEPTED on the original site

Post score: 2


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.