I have a UAV with a LiDAR onboard flying and scanning on 3D space. I have the UAV's GPS position with good precision, and I wanted to know how to build a 3D map using the LiDAR's pointCloud. Our goal is for the UAV to avoid obstacles in front of it, and it would be very helpful in visualizing the operation remotely.
I have ardupilot's GPS and orientation data through mavlink and publish it on ROS for my application, as well as the LiDAR's scan as a PointCloud2. Can I somehow set a GPS static origin and build a map around it, using something like octomap_server?
Any tips on what to look for would be greatly appreciated!
Thank you kindly.
The
octomap_server
will assume the origin is (0,0) and try to build a map around that. As your question implies, if you're using the lidar for object detection and avoidance, you should not be operating in the GPS frame. If you're trying to use the lidar and withoctomap_server
for a long term data reference, this work should be done in themap
frame; here you shouldn't have any issues with setting default points. If you would like to just use it for a short term reference and continuous object avoidance, it should be done in theodom
frame; again, default position shouldn't be a problem here.