ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Turtlebot calibration error

asked 2013-06-04 06:13:41 -0500

Zayin gravatar image

updated 2013-06-04 10:15:51 -0500

I'm attempting to run the Turtlebot calibration routine on Fuerte. However, I run into the "Still waiting for scan. Please point me at a wall" error. I modified calibrate.launch as suggested on another topic:

<node pkg="turtlebot_calibration" type="" name="turtlebot_calibration" output="screen" required="true">
    <!--  <remap from="imu" to="imu/raw" /> -->
    <remap from="imu" to="mobile_base/sensors/imu_data_raw" />
    <remap from="cmd_vel" to="mobile_base/commands/velocity" /> 
    <remap from="scan_angle" to="scan_angle" />
    <remap from="odom" to="odom" />   


I believe the problem lies in the Pointcloud2 topic (and other depth related ones). When I try to visualize it into Rviz, nothing is being displayed; I see the grid and the robot model only. I don't see the LaserScan either. However, messages are begin published by openni:

rostopic info cloud_throttled
Type: sensor_msgs/PointCloud2

 * /openni_manager (http://localhost:54732/)

 * /rviz_1370361118464794599 (http://localhost:47752/)
 * /openni_manager (http://localhost:54732/)

rostopic hz cloud_throttled
subscribed to [/cloud_throttled]
average rate: 9.115
    min: 0.076s max: 0.171s std dev: 0.03235s window: 8

I have tried every possible type of Fixed Frame in RViz that contains camera. None seems to work. On the other hand, "Camera" displays a picture on the rgb/image_color topic. However, depth/image_raw only displays a thin horizontal line.

I have used the Asus camera before, and none of these problems were occurring. Why isn't the same with the Kinect? It shouldn't be any different! Note that I have plugged the Kinect directly into a wall socket, so it should function on its own without launching the Create.

[Edit] If I launch openni_launch openni.launch, I can visualize depth images on Rviz with sensorMsgs/Points. There seems to be a problem with the cloud_throttled...

edit retag flag offensive close merge delete


Did you ever find a solution to this? I'm having the _exact_ same symptoms, except in Hydro. `openni.launch` works, but turtlebot launch files don't, despite messages being published.

Neil Traft gravatar image Neil Traft  ( 2014-06-17 17:43:05 -0500 )edit

Necroed. You two have the solution? Having the same problem here.

charkoteow gravatar image charkoteow  ( 2014-08-07 04:05:55 -0500 )edit

Okay, I've just taken another look at it, and I have some suspicions. I don't have time to confirm right now, but maybe you can. In openni.launch, the depth_frame_id is set to /camera_depth_optical_frame, but in 3dsensor.launch it is trying to map the laserscan to the /camera_depth_frame...

Neil Traft gravatar image Neil Traft  ( 2014-08-07 11:53:58 -0500 )edit

... Also, the tf is not being published in the 3dsensor.launch version. But maybe Turtlebot provides its own version of that frame, I'm not sure.

Neil Traft gravatar image Neil Traft  ( 2014-08-07 12:12:48 -0500 )edit

What I'm observing is that the depth image (camera/depth/image_raw) is all 0's. This results in /scan being all NaNs. I don't yet know why the depth image is empty.

Neil Traft gravatar image Neil Traft  ( 2014-08-28 11:53:35 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2014-08-28 14:57:41 -0500

Neil Traft gravatar image

updated 2014-08-28 17:21:26 -0500

Got it... or at least this is one workaround. You must specify depth_registration:=false when you launch 3dsensor.launch. I'm not sure what's wrong with the depth-registered image but this is actually the default if you look in openni.launch. Maybe the Kinect needs to be calibrated for registration to work?

Anyway, once I turn off depth registration, depthimage_to_laserscan starts using camera/depth/image_raw instead, and I can see both the image and the laserscan. calibrate.launch doesn't allow you to supply the depth_registration parameter, however, so you need to copy the launch file and edit it to turn off depth registration:

<include file="$(find turtlebot_bringup)/launch/3dsensor.launch">
    <arg name="depth_registration" value="false" />
edit flag offensive delete link more


This actually works.

I've tried the depth_registration:=false when launching 3dsensor.launch before but still the same thing came out.

One thing I've noticed is that I have to put the turtlebot really close to the wall.

charkoteow gravatar image charkoteow  ( 2014-08-28 22:32:54 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2013-06-04 06:13:41 -0500

Seen: 813 times

Last updated: Aug 28 '14