技術背景
深度攝像頭能夠像人類感知方式一樣捕捉現(xiàn)實世界的相機—無論是在色彩還是距離上。許多應用場景離不開深度攝像頭的支持,比如3D人臉身份驗證,基于3D信息的2D照片美化,物體速度方向的檢測,背景移除等等。本文將向您介紹基于 Intel RealSense™ 的ROS開發(fā)包的功能及其使用方法,您可以利用物體深度信息開發(fā)出更多應用,并和其他ROS節(jié)點無縫連接,為您的機器人裝上敏銳的“眼睛”。
Intel 3D RealSense攝像頭和傳統(tǒng)2D攝像頭相比,增加了深度信息,給各種設備提供了看到、理解、感知世界的新途徑,使各種基于3D信息的新應用成為可能。在機器人研究領域,人們廣泛采用ROS框架,這一框架下的各個應用通常采用消息(message)和話題(topic)的方式進行通信。在這種特殊情況下,針對libRealsense做進一步的ROS封裝才能使其無縫工作在ROS系統(tǒng)中。該項目目前已經(jīng)在github上開源, ROS2 的封裝正在開發(fā)中,也即將與您見面。
項目介紹
1. 軟件架構(gòu)設計

圖 1. ROS/ROS2 RealSense

圖2. RGBD點云生成圖
2. 運行條件
· 運行Ubuntu16.04的x86_64計算機
· ROS Kinetic
· RealSense™ D400/SR300系列攝像頭
· RealSense™ SDK 2.0
具體環(huán)境配置可以參考這里。
3. 編譯與安裝
下載源碼到本地ROS工作區(qū),切換到最新發(fā)布,編譯、安裝。
$ mkdir -p ~/catkin_ws/src
$ cd catkin_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啟動生成高質(zhì)量的點云信息的命令
$ roslaunch realsense2_camera rs_rgbd.launch

圖3. RGB(左上), 深度(左下),紅外1(右上),紅外2(右下),點云(中)

圖4. 高質(zhì)量點云圖
應用領域
本項目提供的RGBD信息,可以運用于多種機器人使用場景,例如:
場景中的物體分割定位
分析RealSense的點云信息,將場景中的不同物體進行分割,再進行物體3D定位。
物體速度分析
根據(jù)RealSense提供的連續(xù)的深度信息,進行物體定位,再計算出物體速度的大小及方向,合理規(guī)劃路徑達到智能避障。
人臉身份驗證
如果只是用二維信息進行身份驗證,安全性和正確性將大打折扣。比如,有人會用照片來欺騙認證系統(tǒng)。帶有三維信息的實時人臉識別將有效地解決這個問題。
2D圖像美化
基于3D信息,對2D的圖像美化將更加自然真實。甚至可以對拍攝對象進行旋轉(zhuǎn)以達到期望的角度,配合裝飾圖片,給你全新的自拍體驗。
展望
本項目目前開發(fā)到v2.0.2版本,基于RealSense SDK的不斷演進,本產(chǎn)品也在不斷迭代開發(fā)當中。同時由于ROS2相對ROS具有更好的安全性和實時性,我們計劃移植項目到ROS2中。