奥比中光Orbbec Astra Pro RGBD 3D视觉传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示
Orbbec Astra Pro传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示
这款摄像头使用uvc输入彩色信息,需要libuvc和libuvc_ros这样才能在ROS正常使用彩色功能。
请在下面网址,分别下载对应包:
2 https://orbbec3d.com/develop/
也可以直接下载打包好的资源:
http://download.csdn.net/detail/zhangrelay/9705366
首先安装驱动,依据版本选择下载驱动中合适的版本:
依据下列文档说明进行安装:特别注意标出部分
#############Note###################
# 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
####################################
# There are two zip files, one is for 32bit machine, the other one is for 64bit
# We choose 64bit(x64) and make the example as follows:
这里应为系统是Ubuntu 16.04 64bit PC选择对应64bit版本
# To run visual samples(e.g., SimpleViewer), you will need freeglut3 header and libaries, please install:
$ sudo apt-get install build-essential freeglut3 freeglut3-dev
#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
# copy tgz file to any place you want(e.g., Home)
# unzip tgz file
拷贝到对应文件夹并解压缩:
$ tar zxvf OpenNI-Linux-x64-2.2-0118.tgz
$ cd OpenNI-Linux-x64-2.2
# run install.sh to generate OpenNIDevEnvironment, which contains OpenNI development environment
$ sudo ./install.sh
# please replug in the device for usb-register
# add environment variables
$ source OpenNIDevEnvironment
# build sample(e.g., SimpleViewer)
$ cd Samples/SimpleViewer
$ make
# run sample
# connect sensor
$ cd Bin/x64-Release
$ ./SimpleViewer
# now you should be able to see a GUI window showing the depth stream video
# If the Debian Jessie Lite is used for testing, it may require the following installation for properly start the viewer.
$ sudo apt-get install libgl1-mesa-dri
安装完毕后,进行功能测试:
- ~/tools/OpenNI-Linux-x64-2.3/Samples/Bin$ ls
- ClosestPointViewer MultiDepthViewer org.openni.jar
- EventBasedRead MultipleStreamRead org.openni.Samples.SimpleViewer
- libMWClosestPoint.so MWClosestPointApp org.openni.Samples.SimpleViewer.jar
- libOpenNI2.jni.so OpenNI2 SimpleRead
- libOpenNI2.so OpenNI.ini SimpleViewer
使用./SimpleViewer和./ClosestPointViewer,注意传感器特性,深度视觉0.4-8.0米,如下:
安装ROS功能包,以kinetic为例,indigo类似:
- ~$ sudo apt-get install ros-kinetic-astra-camera ros-kinetic-astra-launch
完毕后,使用:
- relaybotbox@relaybotbox-desktop:~$ roslaunch astra_launch
- astra.launch device.launch pointclouds.launch
- astra_tf_prefix.launch ir.launch processing.launch
- color.launch kinect_frames.launch
- depth.launch manager.launch
- relaybotbox@relaybotbox-desktop:~$ roslaunch astra_launch astra.launch
工作正常的话可以看到:
- ~$ roslaunch astra_launch astra.launch
- ... logging to /home/relaybotbox/.ros/log/26bcfad8-bcf9-11e6-bc52-00e0b4159b09/roslaunch-relaybotbox-desktop-6834.log
- Checking log directory for disk usage. This may take awhile.
- Press Ctrl-C to interrupt
- Done checking log file disk usage. Usage is <1GB.
- started roslaunch server http://relaybotbox-desktop:33177/
- SUMMARY
- ========
- PARAMETERS
- * /camera/camera_nodelet_manager/num_worker_threads: 4
- * /camera/depth_rectify_depth/interpolation: 0
- * /camera/driver/auto_exposure: True
- * /camera/driver/auto_white_balance: True
- * /camera/driver/color_depth_synchronization: False
- * /camera/driver/depth_camera_info_url:
- * /camera/driver/depth_frame_id: camera_depth_opti...
- * /camera/driver/depth_registration: False
- * /camera/driver/device_id: #1
- * /camera/driver/rgb_camera_info_url:
- * /camera/driver/rgb_frame_id: camera_rgb_optica...
- * /rosdistro: kinetic
- * /rosversion: 1.12.6
- NODES
- /camera/
- camera_nodelet_manager (nodelet/nodelet)
- depth_metric (nodelet/nodelet)
- depth_metric_rect (nodelet/nodelet)
- depth_points (nodelet/nodelet)
- depth_rectify_depth (nodelet/nodelet)
- depth_registered_sw_metric_rect (nodelet/nodelet)
- driver (nodelet/nodelet)
- points_xyzrgb_sw_registered (nodelet/nodelet)
- register_depth_rgb (nodelet/nodelet)
- rgb_rectify_color (nodelet/nodelet)
- /
- camera_base_link (tf2_ros/static_transform_publisher)
- camera_base_link1 (tf2_ros/static_transform_publisher)
- camera_base_link2 (tf2_ros/static_transform_publisher)
- camera_base_link3 (tf2_ros/static_transform_publisher)
- auto-starting new master
- process[master]: started with pid [6848]
- ROS_MASTER_URI=http://localhost:11311
- setting /run_id to 26bcfad8-bcf9-11e6-bc52-00e0b4159b09
- process[rosout-1]: started with pid [6861]
- started core service [/rosout]
- process[camera/camera_nodelet_manager-2]: started with pid [6864]
- process[camera/driver-3]: started with pid [6865]
- process[camera/rgb_rectify_color-4]: started with pid [6867]
- process[camera/depth_rectify_depth-5]: started with pid [6878]
- process[camera/depth_metric_rect-6]: started with pid [6896]
- process[camera/depth_metric-7]: started with pid [6912]
- process[camera/depth_points-8]: started with pid [6920]
- process[camera/register_depth_rgb-9]: started with pid [6938]
- process[camera/points_xyzrgb_sw_registered-10]: started with pid [6949]
- process[camera_base_link-12]: started with pid [6970]
- process[camera_base_link1-13]: started with pid [6986]
- process[camera_base_link2-14]: started with pid [6997]
- process[camera_base_link3-15]: started with pid [7008]
- [ INFO] [1481168899.738014182]: Initializing nodelet with 4 worker threads.
- [ INFO] [1481168900.562120390]: Device "2bc5/0403@2/5" found.
- Warning: USB events thread - failed to set priority. This might cause loss of data...
使用rqt_image_view:
发现rgb并没有正确显示??需要UVC支持。
编译libuvc过程如下:注意红色部分
`libuvc` is a cross-platform library for USB video devices, built atop `libusb`.
It enables fine-grained control over USB video devices exporting the standard USB Video Class
(UVC) interface, enabling developers to write drivers for previously unsupported devices,
or just access UVC devices in a generic fashion.
## Getting and Building libuvc
Prerequisites: You will need `libusb` and [CMake](http://www.cmake.org/) installed.
To build, you can just run these shell commands:
git clone https://github.com/ktossell/libuvc
cd libuvc
mkdir build
cd build
cmake ..
make && sudo make install
and you're set! If you want to change the build configuration, you can edit `CMakeCache.txt`
in the build directory, or use a CMake GUI to make the desired changes.
## Developing with libuvc
The documentation for `libuvc` can currently be found at https://int80k.com/libuvc/doc/.
然后编译libuvc_ros:注意红色部分
`libuvc_camera` is a ROS driver that supports webcams and other UVC-standards-compliant video devices.
It's a cross-platform replacement for `uvc_camera`, a Linux-only webcam driver.
Documentation is available on the ROS wiki: [libuvc_camera](http://wiki.ros.org/libuvc_camera).
使用catkin_make,如果报错,注意libusb.h的位置。使用locate libusb.h,并将其放到合适位置:
~$ sudo cp /usr/include/libusb-1.0/libusb.h /usr/local/include/libuvc/
修改下libuvc.h中include中的路径。
在启动roscore后,使用:
~$ rosrun libuvc_camera camera_node
查看rgb。
- ~$ rosrun libuvc_camera camera_node
- [ INFO] [1481169521.460856223]: Opening camera with vendor=0x0, product=0x0, serial="", index=0
- [ERROR] [1481169521.461465837]: Permission denied opening /dev/bus/usb/002/004
出现报错,修改端口权限,重试。
- [ERROR] [1481169521.461465837]: Permission denied opening /dev/bus/usb/002/004
- relaybotbox@relaybotbox-desktop:~$ sudo chmod 777 /dev/bus/usb/002/004
- [sudo] relaybotbox 的密码:
- relaybotbox@relaybotbox-desktop:~$ rosrun libuvc_camera camera_node
- [ INFO] [1481169588.328108966]: Opening camera with vendor=0x0, product=0x0, serial="", index=0
- unsupported descriptor subtype: 13
- unsupported descriptor subtype: 13
- [ WARN] [1481169589.131025001]: Unable to set scanning_mode to 0
- [ WARN] [1481169589.132290563]: Unable to set auto_exposure to 8
- [ WARN] [1481169589.133330942]: Unable to set auto_exposure_priority to 0
- [ WARN] [1481169589.135009273]: Unable to set exposure_absolute to 1
- [ WARN] [1481169589.136271211]: Unable to set auto_focus to 1
- [ WARN] [1481169589.137170759]: Unable to set focus_absolute to 0
- [ WARN] [1481169589.138442322]: Unable to set gain to 0
- [ WARN] [1481169589.140162069]: Unable to set iris_absolute to 0
- [ WARN] [1481169589.141553880]: Unable to set pantilt to 0, 0
- [ INFO] [1481169589.273060465]: using default calibration URL
- [ INFO] [1481169589.273198871]: camera calibration URL: file:///home/relaybotbox/.ros/camera_info/camera.yaml
- [ INFO] [1481169589.273354822]: Unable to open camera calibration file [/home/relaybotbox/.ros/camera_info/camera.yaml]
- [ WARN] [1481169589.273418390]: Camera calibration file /home/relaybotbox/.ros/camera_info/camera.yaml not found.
使用 rqt_image_view ,查看rgb如下:
同时使用也是可以的。
安装配置完毕,可以开始使用这款视觉传感器了。
奥比中光Orbbec Astra Pro RGBD 3D视觉传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示的更多相关文章
- 奥比中光3D视觉传感器--OpenNI 2配置
PrimeSense是Kinect一代的芯片供应商,位于以色列,也是开源体感开发包OpenNI 的维护者.自从被 Apple 收购后,销声匿迹,OpenNI 也停止更新.现在可以从网站http://s ...
- 体感设备:因特尔 Intel RealSense R200,乐视LeTV Pro Xtion和Orb奥比中光bec Astra比较
最近调试三个个厂家的体感设备,第一个是Intel的RealSense R200(参数规格:分辨率:1080p,深度有效距离:0.51-4,USB3.0),第二个是乐视LeTV Pro Xtion(参数 ...
- 奥比中光Astra Pro在ROS系统中的使用
奥比中光Astra Pro在ROS系统中的使用 上一次介绍了Astra Pro在ubuntu中的使用,由于Astra Pro使用uvc传输彩色图像,所以当用rqt_image_view窗口 时,看不到 ...
- 深度相机Astra Pro测试教程
最近在微信群内,很多群友在群友的推荐下,购买了Astra pro的深度相机,价格地道,物超所值!群友反馈积极,所以这里出一波简单的教程. 以下内容知识抛砖引玉,主要讲解windows下和Ubunt ...
- 在Virtualbox虚拟机中配置使用ROS Spark机器人(Orbbec Astra 和 Xtion)
在虚拟机中配置使用ROS Spark,在Virtualbox中使用USB外设包括Orbbec Astra 和 Xtion深度摄像头和底盘. 虚拟机使用外接设备时,会遇到一些问题.不过随着虚拟机功能的逐 ...
- 3D视觉基础(基本原理及3D传感器基本参数)
本人所在行业属于3D视觉方向,因此最近也是学习了很多3D视觉的知识,这次专门总结一下. 传统工业机器视觉中,2D指的是X方向加Y方向,那么3D视觉自然就是加了一个Z方向.目前我接触到的公司产品是3D激 ...
- RGB-D相机视觉SLAM
RGB-D相机视觉SLAM Dense Visual SLAM for RGB-D Cameras 开源代码地址: vision.in.tum.de/data/software/dvo 摘要 本文提 ...
- 3D视觉 之 线激光3D相机
1 3D 视觉 常见的三维视觉技术,包含双目.ToF.激光三角.结构光等,如下图: 1)毫米级 双目.ToF.结构光(散斑)的精度为 mm 级,多见于消费领域,如:导航避障,VR/AR,刷脸 ...
- V-rep学习笔记:视觉传感器2
视觉传感器的属性设置栏中还有如下几个选项: Ignore RGB info (faster): if selected, the RGB information of the sensor (i.e. ...
随机推荐
- 从零开始系列之vue全家桶(2)安装调试插件vue Devtools
小白安装前提是会用git,会从github上找东西. 第一步: 我们可以先从github上找到vue-devtools的项目,下载到本地.下载vue-devtools链接. 克隆方法:git clon ...
- mybatis学习成长之路(一)
从小白开始学习,希望自己学习的过程可以帮助更多需要的人,参考网址:https://www.cnblogs.com/ysocean/p/7237499.html 1.mybatis的jar包下载地址:h ...
- springboot+shiro+redis项目整合
介绍: Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码学和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移动应用程序到最 ...
- servlet学习总结
一.web工程结构 1.HTTP协议(hyper text transfer protocol)(超文本传输协议) 机制:请求/响应 机制(request/response)(HttpServletR ...
- [ZJOI 2012]灾难
Description 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从而引发一系列的生态灾难. 学过生 ...
- [HNOI 2001]矩阵乘积
Description Input Output Sample Input 1 2 3 4 2 3 1 1 3 1 4 5 2 2 1 3 1 2 1 2 2 2 1 1 3 1 2 3 2 4 1 ...
- [SDOI2014]重建
题目描述 T国有N个城市,用若干双向道路连接.一对城市之间至多存在一条道路. 在一次洪水之后,一些道路受损无法通行.虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回. 辛运的是,此前T国 ...
- ●51NOD 1705 七星剑
题链: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1705题解: 期望dp,期望的线性性质 (首先对于第k颗星,一定只 ...
- C++Primer学习——函数
编译器能以任意顺序对形参进行求值 函数的返回类型不能是数组类型和函数类型. 函数开始时为形参分配内存,一旦函数结束,形参也就被销毁了. 如果弄成静态局部变量,那么回到程序终止结束时才被销毁. void ...
- NOIP 2013
Prob.1 转圈游戏 找到循环节,然后快速幂.代码: #include<cstdio> #include<cstring> #include<iostream> ...