@John Lau@

Email: <zliu7 AT e DOT ntu DOT edu DOT com>

ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]


ethzasl_icp_mapping provides a real-time 2D and 3D ICP-based SLAM system that can fit a large variety of robots and application scenarios, without any code change or recompilation. Here we go into detail about how to apply this stack on a turtlebot.


Setp 1: Modify codes.

In file: ~$/ethzasl_icp_mapping/ethzasl_extrinsic_calibration/src/tf_logger.cpp

In line 50: replace

node.param<string>("worldFrame", worldFrame, "/world");


node.param<string>("worldFrame", worldFrame, "/map");

then catkin_make it in terminal.

Setp 2: Open the following five terminals simultaneously.

In Terminal 1, with ROS hydro installed, just type:


In Terminal 2, to activate the 3D sensors of the robot:

roslaunch openni_launch openni.launch

or type in:

roslaunch turtlebot_bringup 3dsensor.launch

In Terminal 3, to activate the turtlebot:

roslaunch turtlebot_bringup minimal.launch

In Terminal 4, Make sure that it is included in your ROS_PACKAGE_PATH, then launch the tracker to get the location of the robot in a 3D map.

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ethzasl_icp_mapping
roslaunch ethzasl_icp_mapper tracker.launch

In Terminal 5, Make sure that it is included in your ROS_PACKAGE_PATH, then run the tf_logger to log the transform matrixes between /odom and /base_link, and /openni_rgb_optical_frame to /map.

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ethzasl_icp_mapping

rosrun ethzasl_extrinsic_calibration tf_logger

After you get enough data, press Ctl+C to end the above node, and run the following node to get the final result:

rosrun ethzasl_extrinsic_calibration optimize output.txt

Report a Bug

Please report bugs and request features using the github page.


Wiki: John Lau (last edited 2014-06-08 12:00:16 by John Lau)