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