在Raspberry Pi上安装openni2_camera

在上一篇文章——在Raspberry Pi上安装ROS Package 中,我加入了openni2_cameraopenni2_launch,你如果按照我的步骤一步一步来,编译到某一步骤,肯定会碰到编译错误的,哈哈,所以我在上一篇文章末尾留了一句“预知后事如何,请听下回分解”。

上一篇文章中需要安装的 Package 需要依赖 OpenCV 和 OpenNi2,凡是涉及到图像,肯定是依赖 OpenCV的,openni2_camera还要依赖OpenNi2. rosdep没有解决好这两个依赖问题,所以就出现编译错误。因此需要手动安装libopencvOpenNI2

安装OpenCV

由于indigo-custom_ros.rosinstall中包含了和图像处理有关的 Package,没有OpenCV库,它们无法编译成功。在 Raspberry Pi 上编译安装 OpenCV 据说需要 10 个小时,但我们只需要一些库文件就够了,而且 Raspbian 的软件仓库中有:

$ sudo apt-get install libopencv-dev

安装OpenNI2

1. 编译安装

OpenNI2 库 Raspbian 软件仓库中没有,安装起来就要麻烦一些。首先,安装一些依赖:

$ sudo apt-get install git g++ make python libusb-1.0-0-dev libudev-dev pkg-config

clone OpenNI2:

$ git clone https://github.com/OpenNI/OpenNI2
$ cd OpenNI2

修改ThirdParty/PSCommon/BuildSystem/Platform.Arm文件:

$ vim ThirdParty/PSCommon/BuildSystem/Platform.Arm

CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp #-mcpu=cortex-a8

替换成:

CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard

然后编译:

PLATFORM=Arm make

编译结束之后,安装:

cd /Packaging/Linux
sudo ./install.sh

libraryinclude拷贝到系统目录中去:

sudo cp -r Include /usr/include/openni2
sudo cp -r Bin/Arm-Release/OpenNI2 /usr/lib/
sudo cp Bin/Arm-Release/libOpenNI2.* /usr/lib/

2. 新建一个.pc文件

新建一个package config文件:

sudo vim /usr/lib/pkgconfig/libopenni2.pc

填入下面的内容,以配置编译时需要的库设置:

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/openni2

Name: OpenNI2
Description: A general purpose driver for all OpenNI cameras.
Version: 2.2.0.0
Cflags: -I${includedir}
Libs: -L${libdir} -lOpenNI2 -L${libdir}/OpenNI2/Drivers -lDummyDevice -lOniFile -lPS1080.so

通过这个文件,pkg-config能够输出编译器、链接器需要的参数以及已安装软件包的版本信息。检测一下能否被正确找到:

$ pkg-config --modversion libopenni2

如果版本号是2.2.0.0,没问题。

3. 测试

接下来测试是否安装成功。首先,安装CORE_SAMPLES,在Makefile最后一行添加:

core_samples: $(CORE_SAMPLES)

编译:

PLATFORM=Arm make core_samples

将 Xtion 接上,运行:

./Bin/Arm-Release/SimpleRead

如果你能看到传感器的数据,并且当手在摄像头前方摆动时,数据在变化,则安装成功了。

编译

再回到 Workspace,编译安装:

$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo

在 ROS 里测试一下 Xtion:

$ roscore &
$ roslaunch openni2_launch openni2.launch

查看/camera/rgb/image_raw话题,如果看到了彩色图像,则安装成功了!

参考连接

  1. https://dobots.nl/2014/05/05/asus-xtion-using-openni2-and-ros-on-udoo/
  2. Installing ROS Indigo on Raspberry Pi
  3. pkg-config

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。