ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Converting raw scan data to PointCloud2 data (SICK S300)

asked 2013-06-03 03:40:26 -0600

Bernhard gravatar image

updated 2013-06-04 22:27:13 -0600

I really could use some help to start with my first mapping project. So far I have a SICK S300 from which I get data like this:


seq: 3814


secs: 1370262735

nsecs: 263812610

frame_id: /base_laser_link

angle_min: -1.3526301384

angle_max: 1.3526301384

angle_increment: 0.00872664619237

time_increment: 0.000184842880117

scan_time: 0.0

range_min: 0.0

range_max: 100.0

ranges: [0.6100000143051147, 0.6100000143051147, [...] 1.7999999523162842, 1.7899999618530273, 1.7999999523162842, 1.7999999523162842]

intensities: [0.0, 0.0, 0.0, [...] 0.0, 0.0]

And I want to work with Octomap so I get a 2D map from projected map. I need only a 2D map actually, and SLAM is not relevant either as there will be seperate odometry devices. I only want to use things with either the BSD or the LGPL licence.

By now I understand the data format I have there, here's what I still don't get:

  1. Is there a converter which can convert this data directly to pointcloud2 data?
  2. If so, I can add seperate odometry data to that, right?
  3. Where do I have to put the data (remapping of topics?) to get octomap or any other map system to work?
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2013-06-03 04:33:11 -0600

Ben_S gravatar image

updated 2013-06-04 22:44:39 -0600

If you want to do 3D mapping with Octomap you should get a 3D sensor or a tilting unit for your 2D laser scanner. Also you have to perform some localization for inserting the scans into the octomap.

Octomap is not designed as a solution to the SLAM-problem. If you want to do 2D SLAM with your laserscanner i would recommend gmapping or hector mapping as a starting point.

Btw: Your min- and max-angle seem somewhat small for a scanner that should have 270° FoV. (And the max-range seems a little high, but i dont know the specifics of this particular model)


1.) Have a look at the laser_filter (and laser_geometry) packages. They provide functionality to convert laser scans to point clouds. (Look at this answer)

2.) Odometry data is added to the scans/clouds through transforms. You define a frame for your scans/clouds and have to provide a valid transform from your fixed frame to the sensor frame. (Recommended reading: tf tutorials)

3.) You have to publish your clouds either directly under the input topic of octomap or you have to start the octomap_server with topic remappings (renaming) through command line or launch files.

P.S.: Mapping only through odometry and dead reckoning is not very robust. You should consider more advanced methods for localization. :)

edit flag offensive delete link more


Updated my question a little, but I'll summarize what I missed out on explaining: I'm only interested in 2D mapping right now, SLAM is not important as the vehicles will have seperate odometry, and I only want to use programs with either LGPL or BSD as a licence. Thanks for pointing the angles out.

Bernhard gravatar image Bernhard  ( 2013-06-03 20:16:40 -0600 )edit

So that's the things I've been searching for! 1: I'll need to work through this, but now I know where to start so that'll be easy. 2/3: I thought so, now I know for sure.

PS: The answer works but care to elaborate on the better methods for localization? I'd think specific odometry sensors would do?

Bernhard gravatar image Bernhard  ( 2013-06-04 23:24:08 -0600 )edit

Most of the time you want to localize relative to a given map (or the map you are currently building -> SLAM). So you would usually localize with the same sensors you are using for mapping. (Like laser scanner with AMCL in a prebuilt map)

Ben_S gravatar image Ben_S  ( 2013-06-04 23:34:53 -0600 )edit

For absolute localization within an external coordinate system, you will need external beacons (like GPS outdoors or some indoor positioning systems).

Ben_S gravatar image Ben_S  ( 2013-06-04 23:35:50 -0600 )edit

I was thinking of using said beacons for total positioning, and I'm not sure how applicable SLAM is in my case, it will be a production environment. I will need to consider both options, but for now I should get the next step down so I can see which path to pursue.

Bernhard gravatar image Bernhard  ( 2013-06-04 23:59:48 -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


Asked: 2013-06-03 03:40:26 -0600

Seen: 1,123 times

Last updated: Jun 04 '13