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

I want to implement the navigation in a two wheeled robot with the ROS navigation-package using Kinect , How can I calculate the odometry if I have the radius, the wheeled distance, the poses and the velocity of the wheels???

edit retag close merge delete

Sort by ยป oldest newest most voted

Odometry can be calculated by estimating "forward kinematics" of mobile robot. Here is a link for one such explanation http://www.cs.columbia.edu/~allen/F11/NOTES/icckinematics.pdf

Hope this helps...

more

Thank you... it helped me a lot, but just one question Given that vr= velocity of the right wheel, vl=velocity of the left wheel, R=the signed distance from the ICC to the midpoint between the wheels...

When vr=vl, R becomes infinite and there is no rotation, so how can I manage this situation?

( 2013-07-12 08:35:04 -0500 )edit

When vr=vl, the robot should move straight, as you mentioned there will be no rotation.

( 2013-07-12 09:05:58 -0500 )edit

So, is it ok for the navigation if I keep receiving nan (not a number) values in the equations, I have tried asigning a really big number when I get nan, but of course in some cases this won't work because of the overflow. Do you know how can I control this part?

( 2013-07-19 08:04:58 -0500 )edit

I am not sure about this, but one thing you can do is not calculate R when difference between vr and vl is very less.

( 2013-07-19 19:03:18 -0500 )edit

Thank you for your reply, I did that, the R thing, and now looks like the nan is gone, but the final pose (x,y, theta) keeps getting bigger and bigger when I start moving the robot, even though when I stop moving it.. it keeps getting bigger and bigger in the x, y and theta, and of course these values are not correct for the pose

( 2013-07-22 11:35:00 -0500 )edit

I have done some tests in the particular case when vl !=0 and vr != 0, incrementing the x, y, ant theta just in these cases, but the results do not look correct either

( 2013-07-23 08:20:02 -0500 )edit