-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Ideal Sensor Suite for 3D Mapping and Localization #1014
Comments
Don't forget to integrate satellite navigation. (see NavSatFix in cartographer_ros)
IMU is not very critical. Make sure you get the actual acceleration and not overly filtered output.
Ideally, scans should cover the entire horizon. So I'd say two 16s (front and back) are better than one 32.
Sorry, I am not sure what the question is. Hope this helps. |
One more suggestion: placement of sensors is also critical. To get good localization performance in dense traffic you want to make sure that you see enough static geometry to track the movement of the car in a sea of surrounding cars. We capture nearby geometry in a high resolution hybrid grid and far-away geometry in a low-res hybrid gird. You can tune the weights between the two. |
Thank you for your replies.
Thank you |
@wohe @spielawa who contributed GPS support to keep me honest
I don't have any concrete hardware suggestions. Maybe others here do. I just want to mention that low bias is good but good time synchronization between sensors is also super important. @damonkohler was telling me that the clock line from GPS sensors is often used for time synchronization. Not sure though whether all IMUs support that.
In contrast to odometry which describes an incremental, relative change in pose, NavSatFix allows you to specify a constraint to a fixed frame in the world, i.e. an absolute pose, in terms of longtitude an latitude. This would e.g. allow you to upper bound local SLAM drift (if you have good GPS signal).
Right.
Actually we don't look at the covariance of the position signal. There is a global weight that you can set to define how much Cartographer should trust the GPS signal in loop closures. Filtering out unreliable GPS messages could be performed by a ROS node that subscribes to messages from your GPS sensor and forwards only those that it deems reliable enough. You should still inject an empty GPS message into Cartographer when you have filtered out a real message though to ensure the sensor queues don't stall.
Right, GPS is only used in the global SLAM part, i.e. it enters the pose graph as constraints. |
Thank you so much @cschuet for those detailed answers. Good day! |
Closing as answered. |
Hi @cschuet, I am also trying to use the "use_nav_sat" option for cartographer. And I have obtained my gps topic from a rosbag. I understand that I would need to replace every unreliable gps message with an empty gps message in order to not block the queue. However, I don't know what would cartographer consider as an empty gps message, and I am guessing replacing all the fields in NavSatFix with either an empty string ('') or zeros would do the trick, or something else? Thanks in advance, Dennis Lu |
@ludennis You linked the correct documentation: |
Thank you for the reply @wohe! I will give that a try this week and report. Thanks again. |
Hi @wohe, Sorry for the late respond, but I was able to produce maps with NavSatFix. For bad/inaccurate gps data, I have successfully modified my gps data in my bag file by assigning "-1" to Without gps, the map shows a failure in loop-closure (in red rectangle) that doesn't seem to be fixable by tuning the parameters: While another run with gps (NavSatFix) shows that the area where loop-closure should happen seems to be fixable by tuning just a little bit more: |
I am about to put together a Cartographer system (based on an Ouster OS-1^64 sensor), and have some related questions:
|
Most users use cartographer_ros, for that you'd need a driver that publishes ROS IMU messages.
Only a partial answer.
You can only input one IMU.
No, barometer data is not supported.
Global SLAM is always done, even if there are no loops in the trajectory. GPS helps on the pose graph level but not inside a submap.
That you would need to integrate yourself. There are no camera-related features.
No. Hope this helps BTW, you could have opened a new issue because you have questions about different hardware. |
@gaschler Thank you for your answers.
OK, I will open a separate issue for a followup question on the barometer specifically, but I'll ask a couple of quick followup questions here to keep the discussion together.
It sounds like you are saying that the IMU helps during the SLAM stage, but GPS helps at the pose graph stage? Or are both IMU and GPS used at the pose graph stage? I am wondering if it is possible to bypass the IMU integration part of Cartographer entirely, and deliver already-integrated global position and pose estimates to the pose graph part of the pipeline, or if IMU and GPS signals should be split and provided separately to different stages. (They have very different sample rates anyway, so I'm guessing they are split.)
(I'm a Xoogler) -- I believe Google has a couple of different internal libraries for meshing point clouds, and for colorizing point clouds from camera data -- is there a chance any of this could be open sourced and added to Cartographer? It would be a valuable addition. |
Hi @ludennis, |
Hi @saimanoj18 @lukehutch , |
@Fanny-one I don't know how to do this yet, but I will be attempting it over the next month with an Ouster LiDAR. Ouster directed me to this blog post written by one of their engineers. This post and others on the same blog talk about GPS integration, but I haven't looked closely yet: https://www.wilselby.com/2019/06/ouster-os-1-lidar-and-google-cartographer-integration/ I have the same questions you do though. I hope it's relatively straightforward. |
Thank you for your answers. |
You have to read the other posts in the same blog. There are at least one or two on using GPS. But I have yet to look closely at it. |
Thanks for this amazing package.
We are planning to employ Google Cartographer for 3D mapping of outdoor large scale environments of few kilometers for self driving car localization and related applications.
We are yet to buy the sensors and from your experience, which sensors and their configuration works best for cartographer ??
What kind of configuration should be have ?(One at the front of the vehicle and other at back with tilted angles ?)
3.It is said that we should constrain it in 6 DOF. Could you say, in which way do we miss the aspect of constraining if we use one Velo 16 and how does that get nullified when we use two Velo 16's.
Thank you so much!
The text was updated successfully, but these errors were encountered: