Asus Xtion not supported in Hydro using openni2?
I'm having trouble with the Asus Xtion and openni2 in Hydro.
I'm getting this error:
[ERROR] [140934478.275581907]: Unsupported color video mode - Resolution: 640x480 30Hz Format:RGB888
basically what this guy is seeing: http://answers.ros.org/question/191498/
I will be trying to calibrate, as suggested in that thread, once I am able to get a hold of a camera calibration grid.
Has a solution been found anywhere? Other than upgrading to Indigo I mean.
Thank you.
J
EDIT:
I've attempted to calibrate following these instructions: http://wiki.ros.org/camera_calibration
I set the --no-service-check option to default=False
as suggested here: http://answers.ros.org/question/223530/intel-realsense-r200-camera-calibration/
I did this because I was getting this message: ('Waiting for service', '//set_camera_info', '...')
Service not found
when running rosrun camera_calibration cameracalibrator. --size 5x8 --square 0.03 image:=/camera/image camera:=/
(I'm currently using a 5x8 30mm calibration grid)
Notes:
No window showing a video feed/ capture pops up at any point.
rosmake camera_calibration
ran without error
This is on Ubuntu 12.04 ROS Hydro using an Asus Xtion
Still receiving the above Unsupported color video mode error
EDIT2:
I've upgraded to Ubuntu 14.04 and Indigo. I receive this error:
[ERROR] [1455146167.444460553]: Unsupported color video mode - Resolution: 640x480@30Hz Format: RGB888
Here's the output from lsusb -v
:
Bus 001 Device 004: ID 1d27:0600 ASUS
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1d27 ASUS
idProduct 0x0600
bcdDevice 0.01
iManufacturer 2 PrimeSense
iProduct 1 PrimeSense Device
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 69
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0b70 2x 880 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x135c 3x 860 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x1040 3x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
So, it seems to be detecting the Asus Xtion
EDIT3:
Ok. This is interesting. I'm not sure that the problem is actually with the Asus now...
I was playing around with the turtlebot simulator in rviz and Gazebo. When trying to view the "video" from the simulated Asus Xtion on the turtlebot using this command roslaunch turtlebot_bringup 3dsensor.launch
... I got this error:
process[depthimage_to_laserscan-15]: started with pid [27430]
[ INFO] [1455209239.662860866]: Initializing nodelet with 4 worker threads.
[ INFO] [1455209240.960930597, 537.700000000]: Device "1d27/0600@1/4" found.
Warning: USB events thread - failed to set priority. This might cause loss of data...
[ERROR] [1455209241.185416940, 537.930000000]: Unsupported color video mode - Resolution: 640x480@30Hz Format: RGB888
[ INFO] [1455209241.781195783, 538.520000000]: Starting depth stream.
[ INFO] [1455209242.204071388, 538.950000000]: using default calibration URL
[ INFO] [1455209242.204147528, 538.950000000]: camera calibration URL: file:///home/developer-admin/.ros/camera_info/rgb_PS1080_PrimeSense.yaml
[ INFO] [1455209242.204234412, 538.950000000]: Unable to open camera calibration file [/home/developer-admin/.ros/camera_info/rgb_PS1080_PrimeSense.yaml]
[ WARN] [1455209242.204268646, 538.950000000]: Camera calibration file /home/developer-admin/.ros/camera_info/rgb_PS1080_PrimeSense.yaml not found.
[depthimage_to_laserscan-15] process has finished cleanly
log file: /home/developer-admin/.ros/log/2792ea80-d04b-11e5-a19a-d850e6c4e2f6/depthimage_to_laserscan-15*.log
[FATAL] [1455209248.308692029, 545.050000000]: Service call failed!
[FATAL] [1455209248.308739353, 545.050000000]: Service call failed!
[camera/camera_nodelet_manager-1] process has died [pid 27323, exit code -11, cmd /opt/ros/indigo/lib/nodelet/nodelet manager __name:=camera_nodelet_manager __log:=/home/developer-admin/.ros/log/2792ea80-d04b-11e5-a19a-d850e6c4e2f6/camera-camera_nodelet_manager-1.log].
log file: /home/developer-admin/.ros/log/2792ea80-d04b-11e5-a19a-d850e6c4e2f6/camera-camera_nodelet_manager-1*.log
[camera/depth_registered_metric-12] process has died [pid 27401, exit code 255, cmd /opt/ros/indigo/lib/nodelet/nodelet load depth_image_proc/convert_metric camera_nodelet_manager --no-bond image_raw:=depth_registered/image_raw image:=depth_registered/image __name:=depth_registered_metric __log:=/home/developer-admin/.ros/log/2792ea80-d04b-11e5-a19a-d850e6c4e2f6/camera-depth_registered_metric-12.log].
log file: /home/developer-admin/.ros/log/2792ea80-d04b-11e5-a19a-d850e6c4e2f6/camera-depth_registered_metric-12*.log
[camera/disparity_depth-13] process has died [pid 27412, exit code 255, cmd /opt/ros/indigo/lib/nodelet/nodelet load depth_image_proc/disparity camera_nodelet_manager --no-bond left/image_rect:=depth/image_rect_raw right:=projector left/disparity:=depth/disparity __name:=disparity_depth __log:=/home/developer-admin/.ros/log/2792ea80-d04b-11e5-a19a-d850e6c4e2f6/camera-disparity_depth-13.log].
log file: /home/developer-admin/.ros/log/2792ea80-d04b-11e5-a19a-d850e6c4e2f6/camera-disparity_depth-13*.log
I am however able to see the PointCloud data and DepthCloud data in rviz on the simulated device.
EDIT 4:
Well, this is disappointing. It looks like my specific model of Asus Xtion doesn't play nice with ROS.
I've tried a different Asus Xtion (the Pro Live ... I think it's the Q6670 Second Edition) and it works out of the box. The only difference I can tell is that this one is specifically marked on the box as "RGB and Depth Sensor" and has "3 different camera looking things" on the front... the RGB, and depth sensors... as opposed to the two that the Asus Xtion Pro has.
Asked by joe.s on 2016-02-05 10:12:41 UTC
Comments
Running the calibration without any video input isn't going to work. Could you provide some more information on your specific Xtion? Exact model nr, firmware version, how connected (usb2/usb3), etc. I'm not an expert, but perhaps that information can help others help you.
Asked by gvdhoorn on 2016-02-10 02:20:47 UTC
the Xtion is connected via USB... I'm assuming USB2 although not sure how to tell.
The Xtion itself, it has a single RGB camera and one depth camera... I wasn't able to tell the model number from the cameras, it looks like a ASUS Xtion (not Pro or Pro-live).
How would I check firmware version?
Asked by joe.s on 2016-02-10 11:04:02 UTC
The non-pro(-live) only supports depth, so that would explain the error message. But from your
lsusb
output I'm pretty sure this is an rgbd device.Asked by gvdhoorn on 2016-02-11 04:00:30 UTC
but if it's only depth, I should be able to get a pointcloud (or something) in rviz, right?
Asked by joe.s on 2016-02-11 10:38:04 UTC
Exactly same problem and no solution...
Asked by Rastafouille on 2016-02-26 09:41:12 UTC
I would actually say this seems more like an issue with openni itself & your camera than something specific to ROS.
Asked by gvdhoorn on 2016-02-26 10:47:05 UTC
yeah... it's starting to seem that way.
I can get an Asus Xtion Pro Live working, no problem. It's this particular model Asus Xtion that's not working right, it seems.
Asked by joe.s on 2016-02-26 11:04:01 UTC
Mine is Asus Xtion Pro one. I will try with an other one.
Asked by Rastafouille on 2016-02-27 07:40:22 UTC