在ROS Indigo中使用Microsoft Kinect 360摄像头

下午好,亲爱的哈布拉切特里!

最近的观察和个人经验表明,从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_launchopenni_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摄像机来解决计算机视觉问题时万事如意!

Source: https://habr.com/ru/post/zh-CN396291/


All Articles