0
$\begingroup$

Rosanswers logo

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="calibrate.py" 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" />   

</node>

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

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

Subscribers: 
 * /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...


Originally posted by Zayin on ROS Answers with karma: 343 on 2013-06-04

Post score: 1


Original comments

Comment by Neil Traft on 2014-06-17:
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.

Comment by charkoteow on 2014-08-07:
Necroed. You two have the solution? Having the same problem here.

Comment by Neil Traft on 2014-08-07:
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...

Comment by Neil Traft on 2014-08-07:
... 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.

Comment by Neil Traft on 2014-08-28:
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.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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" />
</include>

Originally posted by Neil Traft with karma: 205 on 2014-08-28

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by charkoteow on 2014-08-28:
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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.