Cartographer using imu and odom data

asked 2018-05-09 10:01:28 -0500

anonymous user

Anonymous

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.

edit retag flag offensive close merge delete