ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Drift occurs when the robot turns( scan data ).

asked 2022-10-06 03:07:16 -0500

hamada gravatar image

updated 2022-10-06 03:42:32 -0500

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?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2022-10-06 10:00:49 -0500

ljaniec gravatar image

updated 2022-10-06 10:07:41 -0500

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).

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2022-10-06 03:07:16 -0500

Seen: 168 times

Last updated: Oct 06 '22