-
Notifications
You must be signed in to change notification settings - Fork 529
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
Overlapping while mapping (Even with good odometry) #677
Comments
Hey @SteveMacenski Could you please have a look once you're free? Would appreciate any suggestions. Thank you! |
Anyone else would like to shed some light? Seems Steve's busy. I need to get my mapping right very soon since I'm running outta rime :( |
I believe if you decrease correlation_search_space_dimension, scanMatcher pose correction much closer to your local odom. |
Thanks for the response. |
i used it as a configuration of scanMatch. Maybe it helps. |
I am facing the same issue. Map quality is very bad bad seems the loop clouser is not working. slam_toolbox:
Please help to fine tune the mapping. |
Yeah thats bad. I have no idea how to tune that. Steve would know, we are both kinda lost here. hows your odometry? |
My Odometry is good enough. I am ot using any IMU though. Does your robot have an IMU? Is it necessary to use sensor fusion with IMU? |
How good? is it better than mine? Yes I do have an IMU. My odometry without fusing is quite bad.
How else do you want to use sensor fusion? |
Currently, I am not using any sensor fusion, I just use encoder data only. I find the robot odometry is good, it shows very less drift or error. Though I want to use a good quality industrial IMU. Which IMU you use for your robot? |
lol, MPU6050 haha. My fused odometry is very good so i think this is fine. |
According to that did you check timestamps? As i understand, slamtoolbox accepts scanner postion as a closest time stamp to your scanner's time stamp.
|
Thank you. How exactly do i do that? |
You can check if odom -> base_link tf timestamp's are periodic like the predefined value. |
In the example above, it should be 30 ms, but sometimes it is 60 ms. As I understand, it has the potential to cause map corruption. Also check if the timestamp of your scanner topic matches the timestamp of tf. |
Thank you @oenzan but it turns out it was the lidar! All these months I was in the delusion that I was using a 12m lidar but I recently learnt I was not! I never bothered checking the range of my lidar because this thought never crossed my mind. Checking the datasheet of RPLIDAR A2M8 shows it is a 12m lidar, but there are actually a couple variations of this under the same model, turns out the one I was given by my professor was a 6m one. In reality its only like 4.5 - 5 meters. Switched to A2M12 and it was all gone. The map was perffffeecttttt with the default values hahah. |
Required Info:
Steps to reproduce the issue
A link to my rosbag. please note that I was recording raw odometry so there is no filtered odom in this rosbag. Not sure how helpful it'd be.
Here's what my filtered Odometry looks like though:
Only a drift of about 50 CM after traveling 240 ish meters
Expected behavior
Actual behavior
With scan matching on the map is horrible.
Without scan matching and instead, just loop closure, it's much better. But still, there's an overlap while on the way back from the long straight path. The loop closure doesn't seem to make a difference. There no "jump" of the map to correct the small drifts to prevent the overlaps
Additional information
Here's the ekf yaml:
I have already tried playing around with params relating to loop closure and scan matching but saw no success so far. Since loop closure doesnt actually make a difference here im starting to think it could be due to the fact that the drift is very small so loop closure ignores that? Which param exactly tells loop closure to loop for even the smallest differences and try to correct it? if that makes sense.
The text was updated successfully, but these errors were encountered: