0 设备和环境
我用设备的是:
jetson-nx
设备的环境:
nano:Ubuntu18.04+ros-melodic
1 安装过程
(1)安装依赖
sudo apt-get install build-essential freeglut3 freeglut3-dev
(2)检查udev版本,需要libudev.so.1,没有的话需要添加
这一步基本上设备都有,创客智造、张瑞雷、还有其他博客上都是这一段话:
#check udev version, Orbbec Driver need libudev.so.1, if can’t find it, can make symbolic link from libudev.so.x.x,
#which usually locate in /lib/x86_64-linux-gnu or /lib/i386-linux-gnu
$ ldconfig -p | grep libudev.so.1
$ cd /lib/x86_64-linux-gnu
$ sudo ln -s libudev.so.x.x.x libudev.so.1
(3)下载并安装OpenNI驱动
官网或者GitHub上下载有时候可能网络不方便,其他博主已经下载好之后传到网盘上了,方便大家用:
链接:https://pan.baidu.com/s/1PCHBm65Y4_pFP0uKHhZ9tw
提取码:7389
这里需要注意一下,确定自己的设备是什么架构、是什么位数,选择对应的去使用。(For user with ARM based development board:
With CPU Structure older than Cortex A17, use OpenNI-Linux-Arm-2.3 Nofilter.tar for better performance)
我的NX用的是arm64的普通版本。
unzip OpenNI-Linux-x64-2.3.zip
cd OpenNI-Linux-x64-2.2
sudo chmod a+x install.sh
sudo ./install.sh
source OpenNIDevEnvironment
到这里,驱动安装就ok了,如果你想试一下官方的例子来检验一下是否安装成功,去包里面编译运行就行,这个过程我就不写了,readme或者其他博客都有,按部就班操作就行。
(4)ros包安装
新建一个ros工作空间,在src文件夹下打开终端,这里要分两种情况:
如果你是ros-kinetic或者之前的版本,很简单:
sudo apt-get install ros-kinetic-astra-camera ros-kinetic-astra-launch
注意ros版本号就行。不过我建议最好是在src上git clone这两个launch包,因为后面我们要改launch文件内容。源码安装的我试过,launch文件中少了很多东西,我没法修改。
如果你是ros-melodic版本,(截至2020/4/20,之后可能会直接源码安装就行),只能去GitHub下载:
git clone https://github.com/orbbec/ros_astra_launch.git
git clone https://github.com/orbbec/ros_astra_camera.git
下载完成之后,
cd ..
catkin_make
注意有可能有依赖错误,安装好错题提示中的对应依赖即可,结合apt search搜索对应需要的依赖包,安装ros的版本。
(5)启动奥比中光的launch文件,看相机效果。
这里就不多赘述了,启动文件就是在launch文件夹里面,选择astra.launch或者astrapro.launch启动就行。
有可能部分设备(我的nano就是)启动报错:
ERROR] [1587364749.976103622]: Permission denied opening /dev/bus/usb/001/009
[camera/camera_rgb-2] process has died [pid 7183, exit code 255, cmd /home/sr/leshi_ws/devel/lib/astra_camera/camera_node /camera/image_raw:=/camera/rgb/image_raw __name:=camera_rgb __log:=/home/sr/.ros/log/a0c9b86a-82d1-11ea-be99-96edff6a96fd/camera-camera_rgb-2.log].
log file: /home/sr/.ros/log/a0c9b86a-82d1-11ea-be99-96edff6a96fd/camera-camera_rgb-2*.log
这个原因很常见,说白了就是端口号没权限,打不开对应的端口,按照终端提示错误的端口号那里,给权限就行,
解决方法,在终端中输入:
sudo chmod 777 /dev/bus/usb/001/009
由于我暂时还在做开发,不想直接锁死端口号,等开发结束整理的时候把设备的端口号写死就行,这里也欢迎大佬们在评论区里给出自己的方法。
启动launch文件之后,在另一个终端中输入:
rqt_image_view
即可看到显示出相机的图像,如下图所示:
camera/depth/image就是相机发布的深度信息topic,同理也可以在rviz中订阅这个topic进行查看。
02 解决无法显示rgb彩色信息的问题
基本上所有用这个设备的伙伴们都会有这个问题,我刚开始按照张瑞雷大佬的博客进行安装的时候,他的方法我反复在多台设备上试了好几次也没成功,而且还要再定位什么文件之类的操作实在是有点麻烦。
偶然间,我在终端中输入
lsusb
查看设备端口号的时候猜想,会不会是端口号的映射地址在launch文件中错了导致打不开rgb信息。因为我在第n次安装的时候看launch文件过程中不小心键盘碰到几下,后来保存的时候也点了saving。这才发现尼玛是官方给的launch文件都不对,,,,,,,,,,,,,,,,,于是我又重新下载ros包,发现并不是我手贱,是真的有问题。如下图:
看到了吧,0502是rgb的端口号,所以你打开astpro.launch,发现在大概68行43列的最后,它写的竟然是0501,,,,,所以我们修改成0502,保存退出,重新编译工作空间,再运行就可以了。如下:
rgb图像出来了,rgb的topic是/camera/rgb/image_raw
至此,坑填好了,关于这个rgb无法显示的解决方法,还有一个大佬的博客可以参考,方法也很简单:博客链接
至此,Ubuntu16和18中使用奥比中光进行开发的过程我总结完了,16和18其实没有太大区别,除了ros包的安装需要注意ros版本号,其他没啥了。
接下啦就是用奥比中光进行vslam等视觉的开发。
————————————————
版权声明:本文为CSDN博主「Numberors」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/numberors/article/details/105637209