Getting hector_SLAM to work with Neato Lidar, tf issues?
First off, I understand that versions of this question have been asked before, but I have already scoured through ROS wiki, ROS answers, google, etc. and I'm still lost. I am brand new to Linux, and ROS, but have MUCH time to devote to learning this material.
I am running a fresh install of Ubuntu 16.04 and ROS Kinetic. My objective is to use the Neato Lidar and Hector SLAM to create a 2D map of our office. I have the Lidar running and it can create real-time maps on rviz, but I am having issues when trying to implement Hector SLAM. I think my problem stems from a tf issue. In order to get to this point, I used this tutorial: http://meetjanez.splet.arnes.si/2015/... . I had already completed everything to get the Lidar drivers running (as in the tutorial, but from the ROS source), and the tutorial was useful to help me understand how to get the SLAM installed. But, in the very last step when I launch the neato.launch file, I get a repeating error of
lookupTransform base_footprint to laser timed out. Could not transform laser scan into base_frame
and a one-time error of
No transform between frames /map and /base_link available after 20.002796 seconds of waiting. This warning only prints once.
My launch files are as follows.. neato.launch :
<?xml version="1.0"?>
<launch>
<!--<node pkg="xv_11_laser_driver" type="neato_laser_publisher" name="xv_11_node">
<param name="port" value="/dev/ttyACM0"/>
<param name="firmware_version" value="2"/>
<param name="frame_id" value="laser"/>
</node>-->
<node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0.0 0.0 0.0 0 0 0.0 /odom /base_link 10"/>
<node pkg="tf" type="static_transform_publisher" name="base_frame_laser" args="0 0 0 0 0 0 /base_link /laser 10"/>
<!--<node pkg="rviz" type="rviz" name="rviz"
args="-d $(find hector_slam_launch)/rviz_cfg/mapping_demo.rviz"/>-->
<include file="$(find hector_mapping)/launch/mapping_default.launch"/>
<node pkg="rviz" type="rviz" name="rviz" args="-d rviz_cfg.rviz"/>
<include file="$(find hector_geotiff)/launch/geotiff_mapper.launch"/>
</launch>
mapping_default.launch ...
<?xml version="1.0"?>
<launch>
<arg name="tf_map_scanmatch_transform_frame_name" default="/scanmatcher_frame"/>
<arg name="base_frame" default="base_link"/>
<arg name="odom_frame" default="base_link"/>
<arg name="pub_map_odom_transform" default="true"/>
<arg name="scan_subscriber_queue_size" default="5"/>
<arg name="scan_topic" default="scan"/>
<arg name="map_size" default="2048"/>
<node pkg="hector_mapping" type="hector_mapping" name="hector_mapping" output="screen">
<!-- Frame names -->
<param name="map_frame" value="map" />
<param name="base_frame" value="$(arg base_frame)" />
<param name="odom_frame" value="$(arg base_frame)" />
<!-- Tf use -->
<param name="use_tf_scan_transformation" value="true"/>
<param name="use_tf_pose_start_estimate" value="false"/>
<param name="pub_map_odom_transform" value="$(arg pub_map_odom_transform)"/>
<!-- Map size / start point -->
<param name="map_resolution" value="0.050"/>
<param name="map_size" value="$(arg map_size)"/>
<param name="map_start_x" value="0.5"/>
<param name="map_start_y" value="0.5" />
<param name="map_multi_res_levels" value="2" />
<!-- Map update parameters -->
<param name="update_factor_free" value="0.4"/>
<param name="update_factor_occupied" value="0.7" />
<param name="map_update_distance_thresh" value="0.2"/>
<param name="map_update_angle_thresh" value="0.9" />
<param name="laser_z_min_value" value = "-1.0" />
<param name="laser_z_max_value" value = "1.0" />
<!-- Advertising config -->
<param name ...