Drift occurs when the robot turns( scan data ).
Drift occurs when the robot turns.
Why?
My guess is that the time difference between the time it takes for the LiDAR to turn 360 degrees is present.
When the turn is stopped, the position of the scan data will be correct.
The problem occurs when it is moving.
Is there any solution to this problem?
https://www.youtube.com/watch?v=7BDDxJ4Ttbw
Asked by hamada on 2022-10-06 03:07:16 UTC
Answers
You can try bumping up the laser scanning update rate if you can, it should help a bit.
Another way of possible (but much harder) solution would be to use topic_tools
transform method to rotate laser scan in advance while rotating the robot and message_filters
Time Synchronizer to bind this transformation to current info from IMU/cmd_vel/any source for current non-zero angular velocity, etc.
This approach can of course work with other tools, you could save last angular velocity somewhere (updated in the angular velocity source sensor callback) and use it to transform the incoming laser data accordingly.
Of course, this will be insufficient if the computing power of the robot is low - you may have situations where you rotate the laser scan data too late and it won't help at all (and will even increase your drift more).
Asked by ljaniec on 2022-10-06 10:00:49 UTC
Comments