Pointcloud_to_laserscan for bag files?
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.