技术背景
深度摄像头能够像人类感知方式一样捕捉现实世界的相机—无论是在色彩还是距离上。许多应用场景离不开深度摄像头的支持,比如3D人脸身份验证,基于3D信息的2D照片美化,物体速度方向的检测,背景移除等等。本文将向您介绍基于IntelRealSense™的ROS开发包的功能及其使用方法,您可以利用物体深度信息开发出更多应用,并和其他ROS节点无缝连接,为您的机器人装上敏锐的“眼睛”。
Intel 3DRealSense摄像头和传统2D摄像头相比,增加了深度信息,给各种设备提供了看到、理解、感知世界的新途径,使各种基于3D信息的新应用成为可能。在机器人研究领域,人们广泛采用ROS框架,这一框架下的各个应用通常采用消息(message)和话题(topic)的方式进行通信。在这种特殊情况下,针对libRealsense做进一步的ROS封装才能使其无缝工作在ROS系统中。该项目目前已经在github上开源,ROS2的封装正在开发中,也即将与您见面。
项目介绍
1.
软件架构设计
图1. ROS/ROS2 RealSense
图2.RGBD点云生成图
2.
运行条件
·
运行Ubuntu16.04的x86_64计算机
·
ROS Kinetic
·
RealSense™ D400/SR300系列摄像头
·
RealSense™ SDK 2.0
具体环境配置可以参考这里。
3.
编译与安装
下载源码到本地ROS工作区,切换到最新发布,编译、安装。
$ mkdir -p~/catkin_ws/src
$ cdcatkin_ws/src/
$ catkin_init_workspace
$ cd ..
$ catkin_make clean
$ catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
$ catkin_make install
4.
运行演示程序
插入RealSense摄像头,运行启动命令:
#在控制台#1启动rviz
$source/opt/ros/kinetic/setup.bash
$ rosrun rviz rviz
#在控制台#2启动realsense2_camera
$source~/catkin_ws/devel/setup.bash
$ roslaunch realsense2_camera rs_camera.launch enable_pointcloud:=true
#或在控制台#2启动生成高质量的点云信息的命令
$ roslaunch realsense2_camera rs_rgbd.launch
图3. RGB(左上),深度(左下),红外1(右上),红外2(右下),点云(中)
图4.高质量点云图
应用领域
本项目提供的RGBD信息,可以运用于多种机器人使用场景,例如:
场景中的物体分割定位
分析RealSense的点云信息,将场景中的不同物体进行分割,再进行物体3D定位。
物体速度分析
根据RealSense提供的连续的深度信息,进行物体定位,再计算出物体速度的大小及方向,合理规划路径达到智能避障。
人脸身份验证
如果只是用二维信息进行身份验证,安全性和正确性将大打折扣。比如,有人会用照片来欺骗认证系统。带有三维信息的实时人脸识别将有效地解决这个问题。
2D图像美化
基于3D信息,对2D的图像美化将更加自然真实。甚至可以对拍摄对象进行旋转以达到期望的角度,配合装饰图片,给你全新的自拍体验。
展望
本项目目前开发到v2.0.2版本,基于RealSenseSDK的不断演进,本产品也在不断迭代开发当中。同时由于ROS2相对ROS具有更好的安全性和实时性,我们计划移植项目到ROS2中。