Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Robot odometry large drift #142

Open
alsora opened this issue Dec 21, 2021 · 1 comment
Open

Robot odometry large drift #142

alsora opened this issue Dec 21, 2021 · 1 comment
Labels
bug Something isn't working

Comments

@alsora
Copy link
Contributor

alsora commented Dec 21, 2021

Describe the bug
Doing very simple and short maneuvers results in a huge drift in the dead reckoning pose wrt the ground truth one.

To Reproduce
Run simulation and then command

ros2 action send_goal /undock irobot_create_msgs/action/Undock "{}"
ros2 topic pub -r 20 /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
ros2 topic pub -r 20 /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.0}}"
ros2 topic pub -r 20 /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
ros2 action send_goal /dock irobot_create_msgs/action/DockServo "{}"

Where the forward translation is ~ 1 meter, is enough to have the robot pose drift a lot.
This can be easily observed thanks to another currently open bug, where Gazebo uses ground truth pose, but rviz does not
#75

Screenshots
At the end of the aforementioned maneuver, the robot appears docked in gazebo, but it is not in Rviz
Screenshot from 2021-12-21 12-46-48

@alsora alsora added the bug Something isn't working label Dec 21, 2021
@alsora alsora changed the title Robot odometry huge drift Robot odometry drift Dec 21, 2021
@alsora alsora changed the title Robot odometry drift Robot odometry large drift Dec 21, 2021
@shuhaowu
Copy link

shuhaowu commented Jan 5, 2022

This kind of make sense and is expected, no? For the Create 2 (that's all I have), if I performed this maneuver, I will definitely observe /odom drift like this. For carpet, it likely will drift even more.

For at least my current investigation, I want to add more noise to the /odom topic in simulation, so I can evaluate SLAM algorithms in the presence of "bad" odometry. Having perfect /odom in a simulation would defeat the purpose of most SLAM algorithms that requires an input odometry, right?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants