-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
T265 Wheels Odometer calibration_odometry.json configuration. Wheels odometry fusion is not working. #5047
Comments
@schmidtp1 , @dorodnic , @doronhi , @MartyG-RealSense , @RealSenseCustomerSupport , @RealSense-Customer-Engineering , @SlavikLiman can anyone give me a help? Thank you very much =) |
@vitorhirozawa, the transformation looks correct. Are you using the ROS wrapper for all you experiments or have you also tried using librealsense directly? If not, could you give it a try? This could act as a starting point: https://github.com/IntelRealSense/librealsense/blob/development/wrappers/python/examples/t265_wheel_odometry/t265_wheel_odometry.py. |
@schmidtp1 Thanks for your response. I am using the ROS wrapper (realsense-ros 2.2.8) for all my experiments. I will give a try using librealsense directly as you suggested and report the results here. thanks |
I have been experimenting with a similar robot-sensor arrangement, with the realsense being placed on the front of the robot facing forward, ahead of the rear axle where the odometry estimate is computed. Surprisingly, I found I did not have to apply any rotations in the odometry config file. It seems to be handling the conversion from the Twist message convention of x forward to the realsense frame. This is using the 2.2.9 release. So, that makes be suspect an appropriate setup for your use case may be an axis angle rotation of |
Hi, We've recently updated some documentation regarding wheeled odometry on the T265. Please see the "Appendix" section in link below and let us know if this helps clarify things. https://github.com/IntelRealSense/librealsense/blob/development/doc/t265.md Thanks |
Does this help clarify things Vitor? Is it ok to close this? Thanks |
Thanks for all responses. I will test each solution as soon as I arrange a time. I got very busy in these 2 months. @RealSenseCustomerSupport Thanks for sharing the new documentation in the "Appendix" section in https://github.com/IntelRealSense/librealsense/blob/development/doc/t265.md But I still have some doubts in the second example, the translation information is a little bit confusing. |
Why do you think so? Nothing has translated different from example 1. Only a (-pi/4) rotation which is captured in the "W": parameter. |
@RealSenseCustomerSupport, sorry. I will be more clear.
I assume "t265 pose frame" = "T265 origin frame". So If this frame rotates (example 2), the translation reference will rotate too. In example 1:
In example 2: |
Actually you are correct Vitor. Thanks for catching this! The updated T values in the second example should be: "T": [ 0.0, -0.3394, 0.9617 ], We will update the md file accordingly. Thanks again. |
I'm struggling with the wheel odometry configuration, too. In the realsense-ros package I changed these arguments of the nodelet.launch.xml file:
The "odom" frame is the same base frame for my encoders' odometry, which is published on /odom topic. I can change the calib odom file (offsets and roll, pitch, yaw) as I wish, but sadly with no impact on the rviz simulation. Is there any other setting that I'm missing? My pain is that the camera is placed in the back of the robot pointing backwards. Thank you so much for your help. My json looks like this:
|
Thank you for highlighting the continued discussion regarding wheel odometry with the T265. We have moved our focus to our next generation of products and consequently, we will not be addressing any issues with wheel odometry in the T265. |
@RealSenseSupport I've seen this same comment being made on other T265 tickets. Is the T265 being discontinued? It very much sounds like that and it would be very concerning for me if that was true. Can you clarify? |
T265 is not discontinued or retired, and is available. We have moved our focus to our next generation of products and consequently, we will not be addressing issues/new features in the T265. |
Issue Description
I have configured the calibration_odometry.json in my robot to fuse the wheels odometry with t265 visual inertial odometry. The camera T265 was mounted on the back of robot looking backwards and in a vertical position (rotated 90 degrees) with the cable downwards.
I have read many Issues, Pull Requests, Source Code and the Documentation about wheels odometry fusion in t265 but I could not make it work. Here are only a few of them: #3462, Wheel Odometry Calibration Questions, Wheel odometry calibration file format.
For the T265 frame I followed this:
In this image below is how the camera was mounted in my robot:
The T265 frame and base_footprint frame are aligned in the same plan (center of the robot). So only 2 axis in translation are considered.
The frame that is used for wheels odometry data is base_footprint.
So I configured my calibration_odometry.json:
To config the "W", I used this site (rotation_converter) to convert Euler angles (roll, pitch, yaw) to orientation in axis-angle representation (rad) used in json. Because the format applied in json has only 3 parameters I utilized the Axis with angle magnitude (radians) [x, y, z] instead of Axis-Angle {[x, y, z], angle (radians)} that has 4 parameters.
For both translation and orientation I assumed the t265 as a parent and base_footprint as a child in the "transform".
Test
To check the results, I have changed the noise_variance parameter in json:
"noise_variance":
0.00000004445126050420168,With this low value in variance, the system that calculates odometry takes wheels odometry as the most confidence data. So it computes movements based more on wheels odometry instead of T265 images. In practical, it considers only the wheels odometry.
But in this case, what happened is that my odometry does not compute the translation forward and backward when I move the robot in these directions.
I have created a launch in ROS. When I execute the roslaunch, the calibration_odometry.json is read correctly, the odom_in topic has the wheel odometry data and the T265 node is subscribed to this topic. I noticed that by doing a debug in source code.
Also, I have created a different json config with other values (wrong), only to test. The result was interesting, the odometry computed a translation in axis y instead of axis x (considering base_footprint frame).
This makes me think that I am not setting up the calibration_odometry.json correctly.
But the "good news" is that the system is considering the wheels odometry data.
Can someone help me to setting up the calibration_odometry.json?
The text was updated successfully, but these errors were encountered: