之前一直在PC端的ubuntu下操作ASUS的Xtion这款RGB-D,最近做无人机项目需要移植到机载开发板上,于是开始了为期几天的尝试。
我无人机机载使用的开发板是Odroid-xu3,系统是Lubuntu14.04,资料见点击打开链接www.hardkernel.com
根本上讲,odroid-xu3是基于ARM的开发板,本文适用于其他基于ARM的开发板。
ARM + Lubuntu + Xtion +ROS
进入正题!!
先安装依赖库
sudo apt-get install -y g++ python libusb-1.0-0-dev freeglut3-dev doxygen graphviz下载OpenNI的源码,注意,只下载一次就可以了,不需要额外的driver了(下载 tags=2.1版本的)
git clone https://github.com/OpenNI/OpenNI2 && cd OpenNI2有两个文件需要修改,一个是ARM平台相关,一个是代码错误,找一下两个文件的位置
find . -iname platform.arm && find . -iname redist.py打开 Platform.Arm并修改
./ThirdParty/PSCommon/BuildSystem/Platform.Arm
./Redist/Redist.py
将
CFLAGS += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-mcpu=cortex-a8修改为
CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard
打开Redist.py并修改,将
compilation_cmd = "make -j" + calc_jobs_number() + " CFG=" + configuration + " PLATFORM=" + platform + " > " + outfile + " 2>&1"修改为
compilation_cmd = "make -j1" + " CFG=" + configuration + " PLATFORM=" + platform + " > " + outfile + " 2>&1"开始编译
PLATFORM=Arm make编译好之后生成安装包
cd Redist && python ReleaseVersion.py arm
安装包存在了
./Redist/Final/
将其移动到你想要安装的目录,然后解压安装
tar -xvf OpenNI-Linux-Arm-2.1.0.tar.bz2 && cd OpenNI-2.1.0-arm && sudo sh install.sh
编译一个读取的小例子
cd Samples/SimpleRead && make
cd ../Bin && ./SimpleRead
执行之后不报错,则驱动已经安装完成。
安装基于ROS的openni_launch支持
sudo apt-get install ros-indigo-openni-launch
roslaunch openni_launch openni_launch
BUG:
问题:openni_launch 过程中有可能会出现 Interface : USB is not supported!
解决方法:
sudo vim /etc/openni/GlobalDefaults.ini
去掉这行的注释(去掉分号);UsbInterface=2
效果如图!一个暴力熊奉上!