下午好,亲爱的哈布拉切特里!最近的观察和个人经验表明,从Ubuntu 14.04下连接Microsoft Kinect Xbox 360摄像头以用于ROS Indigo常常会引起问题。特别是,在启动openni_launch ROS软件包时,无法检测到设备,并且会生成“未连接设备”错误。在本文中,我将逐步介绍设置环境以使用ROS Indigo中的Microsoft Kinect的逐步方法。谁有兴趣,请砍下!Microsoft Kinect相机
该传感器已经在文章中进行了详细介绍。简而言之,Microsoft Kinect是基于结构化光技术的3D(RGB-D,即红色,绿色,蓝色和深度)相机,它使您可以获得落入相机视场的物体表面的深度图。深度图可以转换为点的三维“云”,其中每个点在空间中具有确切的坐标X,Y和Z,在某些情况下还具有RGB格式的颜色。点的“云”用于对象的重建,服务机器人中的地形图,对象识别以及3D计算机视觉领域中的许多其他任务。
ROS为Kinect传感器提供支持。传感器接收到的点的“云”可以在rviz程序中直观显示。
ROS具有使用Kinect传感器的特殊openni_launch和openni_camera软件包。Microsoft Kinect Sensor的驱动程序安装
首先,您需要安装适用于许多RGB-D传感器(Kinect,ASUS Xtion,PrimeSense)的OpenNI库。安装OpenNI需要安装的一些其他软件包:sudo apt-get install git build-essential python libusb-1.0-0-dev freeglut3-dev openjdk-7-jdk
sudo apt-get install doxygen graphviz mono-complete
现在,从源代码直接安装OpenNI 1.5.4:git clone https://github.com/OpenNI/OpenNI.git
cd OpenNI
git checkout Unstable-1.5.4.0
cd Platform/Linux/CreateRedist
chmod +x RedistMaker
./RedistMaker
现在,从此处下载用于Kinect传感器的avin-KinectSensor库。unzip avin2-SensorKinect-v0.93-5.1.2.1-0-g15f1975.zip
cd avin2-SensorKinect-15f1975/Bin
根据系统类型(32或64位),选择适当的安装程序。对于32位系统,请执行以下步骤:tar -xjf SensorKinect093-Bin-Linux-x86-v5.1.2.1.tar.bz2
cd Sensor-Bin-Linux-x86-v5.1.2.1
对于64位系统,我们将执行以下操作:tar -xjf SensorKinect093-Bin-Linux-x64-v5.1.2.1.tar.bz2
cd Sensor-Bin-Linux-x64-v5.1.2.1
最后,完成安装:sudo ./install.sh
安装openni_ *软件包
我们需要做的最后一件事是安装openni_launch和openni_camera软件包,它们允许您从ROS中与OpenNI兼容的深度相机接收和使用数据。安装这些软件包非常简单:sudo apt-get install ros-indigo-openni-camera ros-indigo-openni-launch
验证驱动程序安装
现在一切就绪!检查安装是否成功。在不同的终端中运行:roscore
roslaunch openni_launch openni.launch depth_registration:=true
rosrun rviz rviz
设置参数depth_registration:= true表示我们要启用OpenNI注册并从摄像机接收XYZRGB数据(深度和颜色)。首先,在rviz中,展开左侧“显示”列中的“全局选项”部分,并为“固定帧”字段设置值/ camera_link,如图所示:
这样,我们设置了必要的坐标系,以正确显示Kinect相机中的数据。在rviz中,我们创建一个新的显示。为此,单击添加按钮,然后选择显示点Cloud2的类型,如图所示:
为新显示选择主题/摄像机/深度注册的/点,
然后,为“颜色转换”字段选择值“ RGB8”。现在,我们将看到类似的图片:
值“ RGB8”允许您显示彩色的“点云”,其中每个点都有X,Y,Z坐标和RGB颜色。我想提请您注意Microsoft Kinect Xbox 360仅适用于USB 2.0的事实。通过USB 3.0连接相机可能会导致设备检测错误,我在本文开头就谈到了这一问题。ROS官方门户网站上有使用Point Cloud库处理RGB-D相机数据的教程。这些教程提供了开始使用点云所需的所有信息。
祝您在ROS中使用RGBD摄像机来解决计算机视觉问题时万事如意!