-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Faulty Odometry - pose value published at startup is very large and makes no sense #880
Comments
Hi @sudar1220 Thanks for reporting the issue. |
Thanks for your reply, But is there a way to reset the odom value at startup to zero? Maybe that can help me work around this issue for now until a fix is issued. Thanks in advance |
Hi @ROBOTIS-Will, Possible cause for the odometry issue
I took a peek at the odometry code and think that the issue may be related to calculation of diff_joint_positions_[] and the data that is coming from the openCR board. turtlebot3/turtlebot3_node/src/odometry.cpp Line 203 in 8237b79
This is just my guess, as I am not sure since I am unaware of how the openCR board's firmware is written. But I was able to reproduce the error when the wheels haven't moved. Maybe this is something you can also test. A temporary fix that I thought of was to set the robot poses to zero, the first time the script starts. Could this work? I am unable to make this change and test this because my RPi is woefully under-powered to build any code on it. Can you please let me know how this could be fixed? Thanks in advance |
I also found another issue with people stating similar issues to mine: #821 .Tagging it here so that it is easy for reference. I ended up using the solution from this github issue #750 (see the last comments). What it does it to reset the odom values to whatever pose you want. But I instead use it to set the odom values to zero at the start. I also set the use_imu setting to false in the params file to use only the wheel encoders for odometry. You can just use |
Hello @sudar1220 , I have opened up a ticket on this issue via ticket #847 . I will be trying out your suggestion and suggestion from ticket #750 but am curious what your results were. Does the odometry frame move along with the base_footprint frame and all its children or is it just staying at the 0 position (or position where its reset to). Is this just a band aid to stop the cartographer package from crashing? I just want to make sure mine is behaving similar to what yours is to ensure what I am doing is consistent. Thanks in advance. |
I had the same problem with the noetic version of TB3.Any update about this problem ? @ROBOTIS-Will |
Its been a while since I posted this issue. From my understanding, what I did is just a band aid solution to stop SLAMTOOLBOX from crashing. I didn't use Cartographer. So the odom frame is reset to (0,0) using the idea from #750. Whenever I started the TB3, I had huge values either in the X or Y co-ordinate of the odom frame. Therefore, when i started the TB3, I ran the command In order to run this command, a small change in the odometry.cpp file of the Turtlebot is required, this can be seen in the issue #750. This publishes 0, 0 to the X and Y co-ordinates of the odom frame. Once the odom frame is set to this (0,0) value it does not move with base_footprint and I no longer had any issues with SLAMTOOLBOX. Also to note, this odometry issue caused other problems for me as well, with RVIZ crashing etc. This all went away when I did the above solution. In my attempts to debug and properly fix this issue, I also tried looking at the odometry.cpp script to see if there was any bugs in the initialization or calculation of the X, Y values, as huge values could sometimes be caused by overflows or garbage values. However, I was unable to figure out if there was an issue with the odometry.cpp script. I am not an expert on these things, rather was trying to learn and use this platform for my project. But I hope that one of you guys fix can this, seeing that multiple people seem to have this issue. |
An updated OpenCR ROS2 firmware V220127R1 (0.2.1) is released. |
Hi Will,
Thank you for the update. Unfortunately my project has ended, therefore I
don't have the tuetlebpt with me. I hope that the others who had this
problem find use with this solution.
Thanks
…On Fri, Jan 27, 2023, 9:46 AM Will Son ***@***.***> wrote:
An updated OpenCR ROS2 firmware V220127R1 (0.2.1) is released.
Please download and upload the new firmware
<https://emanual.robotis.com/docs/en/platform/turtlebot3/opencr_setup/#opencr-setup>
and let me know if this doesn't fix the problem.
Thank you very much for your patience!
—
Reply to this email directly, view it on GitHub
<#880 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJYFM2JI5FO3D625TZXPYRDWUODN5ANCNFSM5ZRHNR6Q>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Hi Will, I have tested with the new ROS2 firmware V220127R1 (0.2.1) . Now odom data does not suddenly get larger when the robot moves. First test:
Second test :
|
Hi @ROBOTIS-Will , The noetic v1.2.6 fireware also has the the same probrem that odom data does not suddenly get larger when the robot moves.Did you encounter the same problem when testing? The following data is my robot‘s odom position‘s data after the robot moved for a while in the small room. test data:
When I reran the turtlebot3_robot.launch, the odom data was confusing.
Is the problem of noetic v1.2.6 firmware the same as the ROS2 firmware? |
Hi, I ran into the same issue where the turtlebot would have very large x and/or y positions. I fixed this by initializing the pose member in the |
Hi @ROBOTIS-Will , In ROS 1 Melodic Morenia, I've encountered an issue where the X, Y values in the /odom position and the Z value in orientation are significantly large and unstable, fluctuating around -5 to 5. This issue emerges after launching with roslaunch turtlebot3_bringup turtlebot3_robot.launch. Despite attempting restarts and resets, the problem persists. However, when I control the TurtleBot3 to move a short distance using roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch, the values in /odom return to normal. Yet, this initial instability leads to failures in establishing SLAM positioning. I installed OpenCR following the instructions provided at https://emanual.robotis.com/docs/en/platform/turtlebot3/opencr_setup/#opencr-setup. I found many solutions related to ROS2, but none for ROS1. I am unsure where the problem lies, and this issue has been troubling me for a while. I would greatly appreciate your assistance. |
ISSUE TEMPLATE ver. 0.4.0
Which TurtleBot3 platform do you use?
Which ROS is working with TurtleBot3?
Which SBC(Single Board Computer) is working on TurtleBot3?
Which OS you installed on SBC?
Which OS you installed on Remote PC?
Specify the software and firmware version(Can be found from Bringup messages)
Specify the commands or instructions to reproduce the issue.
ros2 launch turtlebot3_bringup robot.launch.py
Copy and Paste the error messages on terminal.
Please describe the issue in detail.
Odom x value is a very high value (10^204) at startup(check the above image). Unable to use odometry due to this.
Power cycling , pulling any changes from the git repo and also reflashing the OpenCR board doesn't make any difference.
Unsure why this issue is being caused
The text was updated successfully, but these errors were encountered: