0
$\begingroup$

Rosanswers logo

Hi,

I am trying to improve my localization of my robot for the autonomous navigation in my lab. I am using RealSense d435 ,encoders and RTABmap (without visual odometry) . I don't understand what is the main purpose of my odometry message (except the velocity data) if the localization is taken from my camera. I noticed that move_base stop the robot when it gets the position from the odometry massege and not the position from the camera. The robot made a lot of rotations (recovery behavior) and when I listened to the localization topic I could see that there was not any message (loop closure didn't recognized). It happens frequently. I am wondering if I can set that move_base will take the robot pose from my encoders because it is reliable than the camera. I will happy if someone explain how localization and odometry works within the navigation.

tnx, Aviad


Originally posted by Aviad on ROS Answers with karma: 96 on 2019-03-18

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

HI,

yes, you are right the encoder based localization is accurate. Make sure you are using the Ideal differential drive model(wheels axis rotation is in the center of the robot) otherwise drift error will be accumulative. Your localization accuracy depends upon the encoder resolution. Please take a look at this site for kinematic of differential drive model. You can convert the encoder data x, y, and theta(odometry data), take a look at this code

NOTE: You can also add magnetometer to improve theta. as per my experience, angular displacement gives more errors.


Originally posted by simbha with karma: 241 on 2019-03-19

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

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