Background
我试图让OpenNI在我的VM上播放 .
通过以下this guide安装以下内容:
-
机器在VMWare Fusion 10上运行16.04 Ubuntu .
-
ROS动能
-
SensorKinect驱动程序
-
OpenNI V1不稳定1.5.4.0
-
NITE 1.5.2.23-dev
-
Kinect V1
编辑:我在另一台机器上安装了原生Ubuntu,它的工作原理 . 这可能与USB虚拟化有关 .
当我运行openni_launch并拉起rviz时,我看不到任何深度图像 .
What I've Tried:
-
将rviz图像订阅者更改为所有
/camera/*/*
主题 . -
将我的rviz目标框架更改为
camera_rgb_optical_frame
和camera_depth_frame
日志文件让我相信SensorKinect正在工作
roslaunch openni_launch openni.launch
日志:
Warning: USB events thread - failed to set priority. This might cause loss of data...
Warning: USB events thread - failed to set priority. This might cause loss of data...
[ INFO] [1522121606.505144800]: Number devices connected: 1
[ INFO] [1522121606.505358009]: 1. device on bus 001:54 is a SensorKinect (2ae) from PrimeSense (45e) with serial id '0000000000000000'
[ INFO] [1522121606.506565331]: Searching for device with index = 1
[ INFO] [1522121607.607632451]: Opened 'SensorKinect' on bus 1:54 with serial number '0000000000000000'
[ INFO] [1522121607.653087186]: rgb_frame_id = 'camera_rgb_optical_frame'
[ INFO] [1522121607.653390668]: depth_frame_id = 'camera_depth_optical_frame'
[ WARN] [1522121607.662732904]: Camera calibration file /home/rpg711/.ros/camera_info/rgb_0000000000000000.yaml not found.
[ WARN] [1522121607.662946732]: Using default parameters for RGB camera calibration.
[ WARN] [1522121607.663092588]: Camera calibration file /home/rpg711/.ros/camera_info/depth_0000000000000000.yaml not found.
[ WARN] [1522121607.663216989]: Using default parameters for IR camera calibration.
terminate called after throwing an instance of 'openni_wrapper::OpenNIException'
what(): virtual void openni_wrapper::OpenNIDevice::startDepthStream() @ /tmp/binarydeb/ros-kinetic-openni-camera-1.11.0/src/openni_device.cpp @ 257 : starting depth stream failed. Reason: Failed to send a USB control request!
[camera/camera_nodelet_manager-2] process has died [pid 42770, exit code -6, cmd /opt/ros/kinetic/lib/nodelet/nodelet manager __name:=camera_nodelet_manager __log:=/home/rpg711/.ros/log/9ae56062-316f-11e8-942d-000c293fa5dd/camera-camera_nodelet_manager-2.log].
log file: /home/rpg711/.ros/log/9ae56062-316f-11e8-942d-000c293fa5dd/camera-camera_nodelet_manager-2*.log
dmesg | tail output
,因为我想验证我的kinect是否正确枚举了USB设备 . 请注意,序列号对应于openni_launch实例中的枚举设备:
$ dmesg | tail
[35661.422151] usb 1-2: new high-speed USB device number 65 using ehci-pci
[35661.580316] usb 1-2: New USB device found, idVendor=045e, idProduct=02ae
[35661.580319] usb 1-2: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[35661.580320] usb 1-2: Product: Xbox NUI Camera
[35661.580321] usb 1-2: Manufacturer: Microsoft
[35661.580322] usb 1-2: SerialNumber: 0000000000000000
lsusb
输出,因为我想110%确定我不会发疯 . 请注意,设备ID 045e:02ae与openni日志对应1:1:
$ lsusb
Bus 001 Device 075: ID 045e:02ae Microsoft Corp. Xbox NUI Camera
Bus 001 Device 002: ID 0e0f:000b VMware, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 0e0f:0008 VMware, Inc.
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Question:
如何让rviz检测我的深度图像?