Ask Your Question
3

Creating a 3D map with Velodyne data

asked 2016-09-06 12:23:12 -0600

JohnMMeyer gravatar image

Hello, I am very new to ROS so excuse my simplicity. I have Velodyne Puck point cloud data that I would like to use to create a 3D map. My issue was that I was moving the puck as I collected the data and I have no odometer data. Would I use a ICP program? And if so any recommendations? I saw that Willow Garage has one, I assume that it is a good package.

Thank you so much. John

edit retag flag offensive close merge delete

Comments

Hi did you get any solution for that, I am trying the same with velodyne data. I want to create an 3D point cloud with velodyne data, i also use blam but its speed is slow so i am searching for better option,did you have any suggestion on that?? thank you

Nikka gravatar imageNikka ( 2016-12-27 00:31:39 -0600 )edit

Hello Nikka, Sorry for the late response, I was away for the holidays. I have been trying to use BLAM, I am not getting good results at all. The successive point clouds are not registering properly. I am going to try and adjust the number of iterations that ICP algorithm takes, hope that will help.

JohnMMeyer gravatar imageJohnMMeyer ( 2017-01-04 14:12:16 -0600 )edit

3 Answers

Sort by ┬╗ oldest newest most voted
3

answered 2016-09-08 01:04:56 -0600

Shay gravatar image

I saw someone use B(erkeley) L(ocalization) A(nd) M(apping), you can try BLAM.

BLAM! is an open-source software package for LiDAR-based real-time 3D localization and mapping. BLAM! is developed by Erik Nelson from the Berkeley AI Research Laboratory (BAIR).

edit flag offensive delete link more

Comments

i ve tried it recently, it works but not too accuaretly, i have had some issus, looop closere works a bit bad in my opinion, maybe works welll in close places, but in open and at a reasonible speed is not the better thing i have tried

Kailegh gravatar imageKailegh ( 2016-09-16 05:05:43 -0600 )edit

Thanks for the input. I have been making some progress. What I need to do at this point is extract the pcap format packets out of the bag file. I am looking around, I will see if I can find a way to do that.

JohnMMeyer gravatar imageJohnMMeyer ( 2016-09-16 17:57:11 -0600 )edit

that is the easiest part man, use velodyne driver, roslaunch velodyne_pointcloud VLP16_points.launch pcap:=PCAP_PATH if you make progress in the 3D map please let me know, I am interesting in testing different methods

Kailegh gravatar imageKailegh ( 2016-09-20 02:28:37 -0600 )edit

Hello Kailegh, I got sifdetracked but I am back. I have made some progress, I got BLAM! installed (not trivial) and it is working pretty good now. I am trying to select and export a group of points in RVIZ that were created by BLAM! so that is where I am at right now. Have you had any luck?

JohnMMeyer gravatar imageJohnMMeyer ( 2017-03-22 18:05:37 -0600 )edit

i tested blam I did not like the results, I got too many erros from it, odometry was not trustful

Kailegh gravatar imageKailegh ( 2017-03-24 06:24:09 -0600 )edit
8

answered 2017-04-04 17:29:25 -0600

M@t gravatar image

updated 2018-12-20 16:13:23 -0600

For anyone reading this at a later date (like me) there are a few other mapping options currently available:

SLAM

If you want to map your environment and you need a 3D map, you're often wanting to localize your laser scanner or robot at the same time - i.e. Simultaneous Localization and Mapping (SLAM) Below are some ROS-compatible options.

  • Google Cartographer Google very recently released this 2D/3D SLAM package that will take laser and/or point cloud data and give you an occupancy map. You can find ROS integration here and Github code here. Not sure how they represent the map internally. Cartographer includes loop-closure.
  • Berkley Localization and Mapping (BLAM) is another 3D LiDAR SLAM package. This doesn't have any papers on it that I am aware of, and it isn't being maintained (last commit was over two years ago). This uses the open-source and ROS-compatible Point Cloud Library for some of it's processing. Also does loop-closure
  • Laser Odometry and Mapping (LOAM) is another 3D LiDAR SLAM package written by a PhD student. The source code is old and outdated because the student went on to commercialize their code with the company Kaarta. You can find a (somewhat) working version of the LOAM source code here. Does not perform any loop closure, so it's long-term use is quite limited.
  • hector_slam/hector_mapping gives you LiDAR-based SLAM for systems with poor/no odometry (may suit you since you don't have wheel encoders). Also outputs an occupancy map. From memory I think this uses an elevation map (someone correct me If I'm wrong)

Of these options, I've played with Cartographer, BLAM and LOAM. Cartographer is quite hard to setup, tune and use, but it is still maintained and probably a better solution long-term than BLAM. Can't recommend the LOAM code.

Mapping only

There are some packages that don't do SLAM and are only used for pure mapping (i.e. you'll have to use something else to localize the laser scanner or robot)

  • Libpointmatcher While not strictly part of the ROS ecosystem, you can export clouds to a format LPM can then read. LPM is developed and maintained by a group working out of ETH Zurich. The developers have produced a decent number of papers on LPM, so you can get a good idea of what it is capable of by reading those (start with papers by Fran├žois Pomerleau).
  • Point Cloud Library PCL is not a mapping program. It is a collection of libraries for point cloud processing. But it includes many functions for positioning and registering (matching) LiDAR scans. PCL works well with ROS (it started life as a ROS library IIRC) and has more options than anything else out there, but it doesn't have an established mapping process, so you have to build your own mapping program. Having gone this route myself it is definitely an "advanced users only" option.
  • elevation_mapping Takes in a point cloud and gives you ...
(more)
edit flag offensive delete link more

Comments

Which system has given you the best performance?

vkee gravatar imagevkee ( 2017-06-27 04:53:25 -0600 )edit

@vkee I'm currently trying to implement Cartographer, but my LiDAR unit is giving me grief so I haven't been able to collect any data yet. Your best option may be to read the papers associated with each package and use that as an indication.

M@t gravatar imageM@t ( 2017-06-27 23:44:39 -0600 )edit

@M@t There are many datasets Google released with Cartographer ( http://google-cartographer-ros.readth... ) so you could use those to test it. I am looking into adding odometry info into Cartographer.

vkee gravatar imagevkee ( 2017-06-28 02:14:31 -0600 )edit
0

answered 2017-03-24 09:41:08 -0600

JohnMMeyer gravatar image

Hello Kailegh, Have you found something that worked better than BLAM! ? John

edit flag offensive delete link more

Comments

I think Google Cartographer has gotten really impressive results

vkee gravatar imagevkee ( 2017-06-28 02:20:22 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

5 followers

Stats

Asked: 2016-09-06 12:23:12 -0600

Seen: 6,394 times

Last updated: Dec 20 '18