Cartographer using imu and odom data
Kinetic, 16.04
I've got a robot (turtlebot) providing /odom
, /scan
and /imu
data.
During live experiment, I launch a launchfile:
<launch>
<param name="use_sim_time" value="false" />
<include file="$(find turtlebot3_bringup)/launch/turtlebot3_remote.launch"/>
<include file="$(find turtlebot3_teleop)/launch/turtlebot3_teleop_key.launch"/>
<node name="cartographer_offline_node" pkg="cartographer_ros"
type="cartographer_node" args="
-configuration_directory $(find cartographer_ros)/configuration_files
-configuration_basename Turtlebot.lua"
output="screen">
</node>
<node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"
type="cartographer_occupancy_grid_node" args="-resolution 0.05" >
</node>
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find turtlebot3_slam)/rviz/turtlebot3_slam.rviz" />
</launch>
In cartographer Transform.lua, if I put provide_odom_frame
or TRAJECTORY_BUILDER_2D.use_imu_data
to true
, it won't work. That's to say, I get the error:
Warning: Invalid argument passed to canTransform argument source_frame in tf2 frame_ids cannot be empty at line 126 in /tmp/binarydeb/ros-kinetic-tf2-0.5.17/src/buffer_core.cpp
I've updated the time on both the laptop and the robot using sudo ntpdate -s time.nist.gov
on the same time server, I've made sure all my use_sim_time
's are set to false
.
What's causing the problem? Any help appreciated.