Orbbec Astra Pro传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示

这款摄像头使用uvc输入彩色信息,需要libuvc和libuvc_ros这样才能在ROS正常使用彩色功能。

请在下面网址,分别下载对应包:

1 https://github.com/ktossell

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同时显示的更多相关文章

  1. 奥比中光3D视觉传感器--OpenNI 2配置

    PrimeSense是Kinect一代的芯片供应商,位于以色列,也是开源体感开发包OpenNI 的维护者.自从被 Apple 收购后,销声匿迹,OpenNI 也停止更新.现在可以从网站http://s ...

  2. 体感设备:因特尔 Intel RealSense R200,乐视LeTV Pro Xtion和Orb奥比中光bec Astra比较

    最近调试三个个厂家的体感设备,第一个是Intel的RealSense R200(参数规格:分辨率:1080p,深度有效距离:0.51-4,USB3.0),第二个是乐视LeTV Pro Xtion(参数 ...

  3. 奥比中光Astra Pro在ROS系统中的使用

    奥比中光Astra Pro在ROS系统中的使用 上一次介绍了Astra Pro在ubuntu中的使用,由于Astra Pro使用uvc传输彩色图像,所以当用rqt_image_view窗口 时,看不到 ...

  4. 深度相机Astra Pro测试教程

    最近在微信群内,很多群友在群友的推荐下,购买了Astra pro的深度相机,价格地道,物超所值!群友反馈积极,所以这里出一波简单的教程.   以下内容知识抛砖引玉,主要讲解windows下和Ubunt ...

  5. 在Virtualbox虚拟机中配置使用ROS Spark机器人(Orbbec Astra 和 Xtion)

    在虚拟机中配置使用ROS Spark,在Virtualbox中使用USB外设包括Orbbec Astra 和 Xtion深度摄像头和底盘. 虚拟机使用外接设备时,会遇到一些问题.不过随着虚拟机功能的逐 ...

  6. 3D视觉基础(基本原理及3D传感器基本参数)

    本人所在行业属于3D视觉方向,因此最近也是学习了很多3D视觉的知识,这次专门总结一下. 传统工业机器视觉中,2D指的是X方向加Y方向,那么3D视觉自然就是加了一个Z方向.目前我接触到的公司产品是3D激 ...

  7. RGB-D相机视觉SLAM

    RGB-D相机视觉SLAM Dense Visual SLAM for RGB-D Cameras 开源代码地址:  vision.in.tum.de/data/software/dvo 摘要 本文提 ...

  8. 3D视觉 之 线激光3D相机

    1  3D 视觉 常见的三维视觉技术,包含双目.ToF.激光三角.结构光等,如下图:     1)毫米级 双目.ToF.结构光(散斑)的精度为 mm 级,多见于消费领域,如:导航避障,VR/AR,刷脸 ...

  9. V-rep学习笔记:视觉传感器2

    视觉传感器的属性设置栏中还有如下几个选项: Ignore RGB info (faster): if selected, the RGB information of the sensor (i.e. ...

随机推荐

  1. Java 嵌套类基础详解

    目录 1. 什么是嵌套类? 2. 为什么要使用嵌套类? 3. 嵌套类的类型 4. 静态嵌套类 5. 非静态嵌套类 5.1 成员内部类 5.2 局部内部类 5.3 匿名内部类 6. 嵌套接口 1. 什么 ...

  2. [LeetCode] 1-bit and 2-bit Characters 一位和两位字符

    We have two special characters. The first character can be represented by one bit 0. The second char ...

  3. 虚拟机工作站创建虚拟机并安装Linux教程

    前言: 今天开始学习一下Linux,之前早就想看,但是一直没时间,最近把其他知识整理完了,终于有时间来看一下Linux了. 本节只是安装虚拟机工作站,虚拟机,和Linux操作系统的过程,详细的记录了我 ...

  4. 是否有必要学习使用纯Verilog写一个SDRAM控制器

    在做这个SDRAM控制器之前,博主有一个疑问,对于学生来说,是否有必要学习用纯Verilog写一个SDRAM控制器?因为目前X家和A家都有了DDR IP Core,对于要实现一个应用可以直接调用IP ...

  5. 谈一谈泛型(Generic)

    谈一谈泛型 首先,泛型是C#2出现的.这也是C#2一个重要的新特性.泛型的好处之一就是在编译时执行更多的检查. 泛型类型和类型参数 ​ 泛型的两种形式:泛型类型( 包括类.接口.委托和结构 没有泛型枚 ...

  6. [CTSC 1999]拯救大兵瑞恩&[网络流24题]孤岛营救问题

    Description $1944$ 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂,但幸好麦克得到了迷宫的地形图.迷宫 ...

  7. [测试题]line

    Description Input Output Sample Input 10 49743636 36679 707182 9310618 9814768 2315242 9916077 35233 ...

  8. ●BZOJ 2049 [Sdoi2008]Cave洞穴勘测

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2049 题解: LCT入门题 就是判两个点是否在同一颗树里 代码: #include<c ...

  9. hdu 2896 病毒侵袭 AC自动机(查找包含哪些子串)

    病毒侵袭 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  10. [UOJ UR#16]破坏发射台

    来自FallDream的博客,未经允许,请勿转载,谢谢. 传送门 先考虑n是奇数的情况,很容易想到一个dp,f[i][0/1]表示转移到第i个数,第i个数是不是第一个数的方案数,然后用矩阵乘法优化一下 ...