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

Localize turtlebot3 with landmarks

asked 2021-06-14 08:44:57 -0500

phoenix19 gravatar image

Hello everyone, for my project I'm using turtlebot3 waffle and a tag, to have a precise localization, thus nullifying the odometry error that naturally accumulates during navigation. My idea was to have a node publish a message to overwrite the robot estimated pose, but if I publish it on /odom topic, the robot will go back to its original estimated position once I stop publishing the message. After further investigation I found that turtlebot3_node (https://github.com/ROBOTIS-GIT/turtle...) stores a private variable robot_pose_[], and that's why it goes back to its estimated pose. Now, this variable is computed using data from all the sensors, so one should go through every sensor variable and set it to a default value. This seems really complicated to me, and I couldn't find anything online related to the correction of odometry, while it being one of the most investigated field of research. Has really no one attempted to correct the odometry estimation provided by turtlebot?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-06-14 13:28:04 -0500

rezenders gravatar image

An option would be to use the robot_localization package and use EKF to fuse the odometry data with the pose you are getting from the landmarks, you will probably need to tune the ekf parameters but once it is done I think you can get a better estimation.

Can you comment on what application you are trying to develop? Maybe there are other options to be tested.

edit flag offensive delete link more

Comments

Thanks for your reply. My idea was to have the turtlebot just navigate normally, then in case a tag is recognized in the camera frame, knowing the exact global position of the tag, I can derive the relative position of the robot with respect to the tag, and thus the robot global position. Doing that I can bring to zero the odometry error accumulated, and then the navigation can go on, starting from my new position. I have already a python ros2 node that computes the relative position of the robot with respect to the tag, so I just need a way to correct the odometry, imposing the new position to the robot. I think the solution is to investigate the low level c++ files in the turtlebot3_node folder I linked, but it will be very hard for sure, as I couldn't finde any documentation.

phoenix19 gravatar image phoenix19  ( 2021-06-14 16:01:22 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2021-06-14 08:44:57 -0500

Seen: 306 times

Last updated: Jun 14 '21