roboearth: record a object: can't receive point clouds
Hi,
Currently I'm working with the roboearth recording a 3D model object.
I use the kinect attached with turtlebot. Instead of following the record_and_upload_object tutorial, I find my own way starting the kinect through turtlebot:
roslaunch turtlebot_bringup minimal.launch
roslaunch turtlebot_bringup kinect.launch
Then i run the rviz, set Point Cloud2's topic to "/camera/rgb/points", and Color Transformer to "RGB8", I can see the colored scene. But the Color Transformer can't be set to "RGB8" if the topic is set to "/camera/depth/points", as said in the tutorial. Also there's no topic "/camera/depth_registered/points", even i can be sure the depth registration is enabled:
>rosparam get /openni_camera/depth_registration
true
In the roboearth stack, I modified several source code files as well:
- modified roboearth/object_scanning/re_object_recorder/src/mainwindow.cpp: original code:
ros::param::get("/camera/driver/depth_registration", depth_registration_enabled);
since the param "/camera/driver/depth_registration" doesn't exist in electric turtlebot, I changed it to :
ros::param::get("/openni_camera/depth_registration", depth_registration_enabled);
- modified roboearth/object_scanning/ar_bounding_box/include/ar_kinect/ar_kinect.h: original code:
const std::string cameraImageTopic_ = "/camera/depth_registered/image"; const std::string cameraInfoTopic_ = "/camera/depth_registered/camera_info"; const std::string cloudTopic_ = "/camera/depth_registered/points";
changed code:
const std::string cameraImageTopic_ = "/camera/depth/image";
const std::string cameraInfoTopic_ = "/camera/depth/camera_info";
const std::string cloudTopic_ = "/camera/depth/points";
modified ccny_vision/ar_pose/include/ar_pose/ar_multi.h and ar_single.h
original code:
const std::string cameraImageTopic_ = "/usb_cam/image_raw";
const std::string cameraInfoTopic_ = "/usb_cam/camera_info";
changed code:
const std::string cameraImageTopic_ = "/camera/rgb/image_raw";
const std::string cameraInfoTopic_ = "/camera/rgb/camera_info";
then i run the command:
rosrun ar_bounding_box ar_kinect
and got error message, the service can't be started:
[ INFO] [1330682463.131323897]: Publish transforms: 1
[ INFO] [1330682463.146369212]: Publish visual markers: 1
[ INFO] [1330682463.223120422]: Threshold: 100
[ INFO] [1330682463.243390517]: Marker Pattern Filename: /home/te/ros/roboearth/stacks/roboearth/object_scanning/ar_bounding_box/data/objects_kinect
[ INFO] [1330682463.256355901]: Marker Data Directory: /home/te/ros/roboearth/stacks/roboearth/object_scanning/ar_bounding_box
[ INFO] [1330682463.256521164]: Subscribing to info topic
[ INFO] [1330682463.517989718]: *** Camera Parameter ***
--------------------------------------
SIZE = 640, 480
Distortion factor = 0.000000 0.000000 -0.000000 1.000000
525.00000 0.00000 319.50000 0.00000
0.00000 525.00000 239.50000 0.00000
0.00000 0.00000 1.00000 0.00000
--------------------------------------
[ INFO] [1330682463.518104974]: Opening Data File /home/te/ros/roboearth/stacks/roboearth/object_scanning/ar_bounding_box/data/objects_kinect
[ INFO] [1330682463.518196987]: About to load 6 Models
[ INFO] [1330682463.518231050]: Read in No.1
[ INFO] [1330682463.518678755]: Read in No.2
[ INFO] [1330682463.519101924]: Read in No.3
[ INFO] [1330682463.519506378]: Read in No.4
[ INFO] [1330682463.519930962]: Read in No.5
[ INFO] [1330682463.520328178]: Read in No.6
[ INFO] [1330682465.177885566]: Subscribing to image and cloud topics
**Failed to find a field named: 'rgb'. Cannot convert message to PCL type.
terminate called after throwing an instance of 'pcl::InvalidConversionException'
what(): Failed to find a field named: 'rgb'. Cannot convert message to PCL type.
Aborted**
When i run the object recording gui, I can see the green polar ...