-
Notifications
You must be signed in to change notification settings - Fork 1.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
Robot Odometry - no exception handling in read from device #901
Comments
A simple solution showing the issue is here #902 |
Dropping a frame is only a workaround . It seems the reason is a wrong dynamixel package. The signature FDFD is used |
This is what happend: turtlebot3_ws/src/turtlebot3/turtlebot3_node/include/turtlebot3_node/control_table.hpp If the velocity R is negative (a small negative int32) the record reads something like xx FF FF FF (low byte first) If at the same time the low byte of the position L record hits 253 = FD (this happens shortly before wrapping around zero and at irregular intervalls) the sequence looks something like xx FF FF FF FD xx xx xx which by accident is the packet header signature of the dxl 2.0 protocol. Apparently this triggers a termination of the messsage which gets filled with FD FD xx FF FF FF FD FD FD FD FD FD .... I "fixed" this by changeing the order of records both in the OpenCR firmware ... and in the turtlebot3_node running on the raspberry pi: turtlebot3_ws/src/turtlebot3/turtlebot3_node/include/turtlebot3_node/control_table.hpp ... ... This works fine because the field before 120 is not used but is not a real fix of the error. It would be great if someone with |
If I got it right, the error should only occur when the right motor turns backwards (has negative velocity) can you please check that. |
An updated OpenCR ROS2 firmware V220127R1 (0.2.1) is released. |
This issue will be closed due to prolonged inactivity. Please try again with the Humble or Noetic versions, and if the issue persists, feel free to reopen it. |
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.
Copy and Paste the error messages on terminal.
Please describe the issue in detail.
Probably related issue: #899 #821 #880
We are encountering big changes in robot position/odometry which can be observed e.g. while using slam_toolbox or navigation2.
At first we thought that robot "jump" is caused by navigation2 stack here is how it looks like: nav2 issue - it was caused because navigation2 rotate robot multiple times.
This bug causes big robot jumps (odometry changed the value to a very big number).
When we drive with a robot (It happens almos always when we rotate the robot) exception
No Mans Land
is read fromdxl_sdk_wrapper
and published-51673.713111639
value on/joint
topic. When we checked what value it is read from the wrapper (before calculation) the result was:0xFDFDFDFD
(No Mans Land
excepion thrown)We've create a workaround and when the position read from
dxl_sdk_wrapper
is equal to0xFDFDFDFD
we don't calculate and publish this message, this prevents robot jumps and everything works fine.But this is just a temporary solution, the exception should be handled correctly with dxl_sdk_wrapper.
The text was updated successfully, but these errors were encountered: