0
$\begingroup$

Rosanswers logo

Hello all,

I am currently working to analyze pointcloud data from a Velodyne LIDAR and run SLAM on it, so I've been trying to run pointcloud_to_laserscan on it in order to convert it into a form that many SLAM packages will accept. The data I'm working with is inside a bag file.

However, I'm having a number of issues getting this to work. I can run a pointcloud_to_laserscan node, but the thing doesn't seem to be subscribing to anything and thus I can't get my pointcloud data to it. I'm new to ROS and thus have a lot of trouble understanding the Kinect-based launch file approach since I'm trying to pull from a bag file rather than trying to read from a camera. Does anyone have any advice on how to handle this situation? Know any free 3D SLAM packages for Velodyne? Am I just stupid and there's an obvious, easy way to go about this that I'm missing?

Edit: I've been working on getting Pointcloud_to_laserscan working, somewhat have launch files down. The issue I'm getting now is that this module seems to be subscribing to the /tf and /tf_static topics instead of the pointcloud one. My current launch file is below.

<launch>

  <arg name="path" default="/media/sf_Research/Data-2016-03-16-LidarMBI-Bag/" />
  <arg name="file_1" default="12-L-shape-in-parkinglot.bag" />
  <arg name="file_2" default="16-back-to-building-along-walkway.bag" />

  <node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan">
<remap from="cloud_in" to="velodyne_points"/>
<rosparam>
            # target_frame: camera_link # Leave disabled to output scan in pointcloud frame
            transform_tolerance: 0.01
            min_height: 0.0
            max_height: 1.0

            angle_min: -1.5708 # -M_PI/2
            angle_max: 1.5708 # M_PI/2
            angle_increment: 0.087 # M_PI/360.0
            scan_time: 0.3333
            range_min: 0.45
            range_max: 4.0
            use_inf: true

            # Concurrency level, affects number of pointclouds queued for processing and number of threads used
            # 0 : Detect number of cores
            # 1 : Single threaded
            # 2->inf : Parallelism level
            concurrency_level: 1
        </rosparam>
  </node>

  <node pkg="rosbag" type="play" name="player" output="screen" args="--clock $(arg path)$(arg file_2).bag"/>

</launch>

Double Edit: The solution below works perfectly for what I need to do, thank you so much to kmhallen for sending it. Any future people who have the same problem, use the link below.


Originally posted by Autumneverlast on ROS Answers with karma: 3 on 2016-06-01

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

http://wiki.ros.org/but_velodyne

https://github.com/robofit/but_velodyne

This might be useful. I don't know much about it.


Originally posted by kmhallen with karma: 1416 on 2016-06-02

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by Autumneverlast on 2016-06-03:
The package as uploaded had many, many issues, but once those were fixed (through downloading dependencies and updating some files), it worked. It worked like a charm. Thank you so much, you're an absolute life saver.

Out of curiosity, how did you find this package?

Comment by kmhallen on 2016-06-03:
A co-worker used it to extract a single scan from the large pointcloud.

Were you able to build a 3D map and localize with just a velodyne point cloud? If so, this is the only open source 3D SLAM implementation I am aware of. Can you post results?

Comment by Autumneverlast on 2016-06-06:
That's wonderful, if it's not too much trouble I would appreciate it if you could thank them on my behalf.

And I wasn't able to build a 3D map and localize with just the pointcloud data, I'm currently working to add odometry data via output from the robot in order to add localization for SLAM.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.