软硬件版本信息:
台式机,Ubuntu14.04 ROS Indigo
笔记本,Ubuntu16.04 ROS Kinetic
搭配使用华硕ASUS Xtion pro live 相机,可以提供rgb和深度信息。
相关库的安装:
首先安装OpenNI,
sudo apt-get install ros-indigo-openni-camera
此处ros的版本号根据实际进行调整
然后输入
sudo apt-get install ros-indigo-openni-launch
运行:
运行节点
roslaunch openni_launch openni.launch
然后打开新的命令行窗口运行显示RGB影像的命令:
rosrun image_view image_view image:=/camera/rgb/image_color
运行如下命令显示深度影像:
rosrun image_view disparity_view image:=/camera/depth/disparity
至此可以在ros下进行Xtion的驱动并读取信息。
rqt中进行可视化:
- 安装rqt包以及其他相关包:
sudo apt-get install ros-indigo-rqt ros-indigo-rqt-common-plugins ros-indigo-rqt-robot-plugins
在3个终端中分别执行:
roscore roslaunch openni_launch openni.launch rqt
-
在“rqt”窗口中选择 “Plugins” -> “Visualization” -> "Image View",在下拉框中选择不同图像进行显示。
rviz中进行可视化:
此处参考古月居博客点击打开链接
rviz是我们经常使用的工具,把图像显示在rviz中才更有应用价值。rviz已经为我们提供好了显示图像的接口,使用非常简单。
首先按照之前的方法先运行节点,之后运行如下命令打开rviz:
rosrun rviz rviz
然后修改“Fixed Frame”为/camera_rgb_frame,修改“Target Frame”为<Fixed Frame>,接着点击add,选择camera类型。添加成功后选择camera菜单下的Image Topic选项,选择/camera/rgb/image_color,确定后下面的显示框内就显示图像了。
若想显示点云深度信息,可以在add中添加PointCloud2类型,在topic里面选择合适的选项即可显示点云。
防坑提示:
- 在Ubuntu下用OpenNI库可以进行对此摄像头的驱动。之前尝试了用OpenNI2进行驱动,在读取摄像头时遇到了一些难以解决的问题,因此换用OpenNI,顺利解决。
- 在运行节点之后会有4条warning的提示
参考别人的经验,这几条warning并不影响后续的使用,因此暂且忽略。[ WARN] [1523364137.510660564]: Camera calibration file /home/lzy/.ros/camera_info/rgb_1405050456.yaml not found. [ WARN] [1523364137.510703543]: Using default parameters for RGB camera calibration. [ WARN] [1523364137.510725695]: Camera calibration file /home/lzy/.ros/camera_info/depth_1405050456.yaml not found. [ WARN] [1523364137.510739543]: Using default parameters for IR camera calibration.
尽量使用USB2.0接口(本人使用3.0接口也没遇到问题)
如果遇到如下错误
Open failed: USB interface is not supported!
修改GlobalDefaults.ini配置文件
$ sudo gedit /etc/openni/GlobalDefaults.ini
将第60行前面的分号去掉(即取消注释)
;UsbInterface=2
如果不使用ros,仅在Ubuntu下调用此摄像头,可以在安装好OpenNI后,在终端中输入NiViewer,查看深度和RGB图像。
- 后续将在rviz中进行可视化。