第八届中国国际“互联网+”大学生创新  
创业大赛项目计划书  
项目名称: 基于双目深度视觉传感和激光雷达的  
移动机器人环境感知  
项目负责人: 张 瑞 豪  
指 导 教 师 : 徐 岩  
一、项目简介  
环境感知技术是机器人获取周边信息的重要手段。基于单一传感器的环境感  
知方案往往存在局限,多传感器融合可以充分发挥各传感器的优势,实现信息互  
补,成为移动机器人环境感知领域的主流[1]。本项目依托履带式移动机器人平  
台,加装惯性传感单元,激光雷达,视觉传感器,在实现机器人自主运动的同时,  
驱动三种不同类型传感器协同工作,采集环境数据,并基于多源信息融合和即时  
定位与建图技术进行多模态数据融合与自主定位、环境建模。  
二、项目方案  
1
、项目研究意义  
在智能驾驶领域,目前来讲,自动驾驶汽车主要面临着路况识别、车辆控制  
以及车辆信息交互等诸多技术瓶颈。而面临的最核心问题即是环境感知。其主要  
的任务是识别和分类道路障碍、 交通标志、信号灯、行人车辆等,能够分析判  
断出车辆所处 环境的位置[2]。数据的多元性促使我们必须对环境数据的采集进  
行一次提升。在此项目之前,环境数据采集主要有两种依托方式,基于单目视觉  
的感知系统以低成本实现了令人满意的性能,但却无法提供可靠的 3D几何信息。  
双目相机可以提供 3D 几何信息,但计算成本高,且无法在高遮挡和无纹理的环  
境中可靠的工作。此外,基于视觉的感知系统在光照条件复杂的情况下鲁棒性较  
低,这限制了其全天候能力。而激光雷达不受光照条件影响,且能提供高精度的  
3
D几何信息。但其分辨率和刷新率低,且成本高昂[3]。  
因此,合理地进行双目深度相机 RealSense D435i、单目 USB摄像头与激光  
雷达融合感知,再增设惯性传感单元作为辅助修正传感方式,可以显著提高性能  
与可靠性并降低环境感知成本[4]。但这并非易事,首先,相机通过将真实世界  
投影到相机平面来记录信息,而点云则将几何信息以原始坐标的形式存储[5]。  
此外,就数据结构和类型而言,点云是不规则,无序和连续的,而图像是规则,  
有序和离散的。这导致了图像和点云处理算法方面的巨大差异。同时由于传感器  
的数目的增设,针对多项传感器的数据处理与优先级判定,坐标系之间的投影将  
是项目的难点之一。  
2
2
、国内外研究现状  
.1.国外研究现状  
多传感器实时采集环境数据的思路发轫于美国的一次车展。在该次车展上,  
福特公司提出了一种智能汽车方案通过安装在车顶的 32 线激光雷达工作,绘制  
出汽车周围 360度的路面状况信息,这是汽车领域首次利用多传感器对环境数据  
进行收集与判断处;并且他们还通过结合 360度摄像头,绘制出实时的环境地图。  
这便是最早的多传感器的环境数据采集[6]。  
2017年,Ken SakuradaWeimin Wang等人提出了基于点云反射强度的角  
点提取方法,使得相机与激光雷达融合的结果更加精确,在极高程度上优化了环  
数据采集的结果。  
而具体的应用实例上,GoogleTesla作为世界顶级的无人驾驶公司,也是  
采用多种传感器融合的方案完成无人车的环境感知,例如 Tesla,其主要技术路  
线为 12 个超声波传感器、8 个环绕摄像头和 1 个毫米波雷达,通过视觉图像测  
距与直接测距等不同观察成果的数据综合处理,最终实现了环境数据的实时采集  
与判断[7]。  
2
.2.国内研究现状  
在我国,在智能环境感知领域,关于激光雷达方面的研究比较成熟。八九十  
年代开始,从事激光雷达的研究人员便逐渐增多。最开始研究对象是二维的激光  
雷达,经过一段时间发展成为先进的面阵成像激光雷达。并且,激光雷达与相机  
的结合在我国国内厂商的产品中已经有了体现[8]。目前,激光雷达被应用在无  
人驾驶实验车中,例如百度公司的无人驾驶实验车,采用了相机、64线激光雷达  
16线激光雷达进行融合。速腾聚创科技,作为我国主要的无人车制造商之一,  
其旗下的无人车便是采用了相机和自主研发的 RS-Lidar-128RS-Lidar-16 激  
雷达进行融合。  
3
3
、内容与步骤  
.1. 在树莓派 4B和机器人操作系统 ROS中编程,实现移动机器人自主运动;  
1ROS机器人硬件组成(如图 1)  
 1 ROS机器人硬件组成  
2ROS系统的设计与开发  
ROS 是一个机器人分布式框架,它并不是一个传统意义上的操作系统,无法  
WindowsLinux一样直接运行在计算机硬件之上,而是需要依托于 Linux系  
统。ROS架构的三个层次(如图 2):基于 Linux系统的 OS层;实现 ROS核心通  
信机制以及众多机器人开发库的中间层;在 ROS Master的管理下保证功能节点  
正常运行的应用层。  
 2 ROS框架  
Linux 内核(如图 3)由 5 个主要子系统组成,分别是:内存管理、进程管  
理、进程间通信、虚拟文件系统和网络,各子系统之间的关系如下图所示。  
 3 Linux内核  
3开发环境搭建  
a.拟机开发环境搭建  
b.理主机开发环境搭建  
c.接树莓派  
3
.2. 加装激光雷达,编写 ROS topic驱动;  
激光雷达是通过 Time of Flight技术来确定目标位置与距离的。激光雷达  
以激光束为信息载体,利用相位,振幅,频率等来搭载信息,并将辐射源频率提  
高到光频段,其探测精度更高,探测范围更广,可以通过其内部的旋转装置实现  
水平方向 360°范围内的信息采集,建立 3D环境模型。  
3
.3. 加装单目 USB摄像头,编写 ROS topic 驱动;  
摄像头节点可以为机器人捕获图像数据,可用于图像显示或图像处理。摄像  
头是最接近人眼成像原理的传感器。通过对周围环境实时拍摄,将障碍物通过镜  
头生成的光学图像投射到图像传感器表面上,转化为电信号,经过模数转换后变  
成数字图像信号,再经数字信号处理芯片的加工处理,就可以收集周围环境的 2D  
图像,进行对周围环境信息的采集与处理。  
3
.4. 加装惯性传感单元,编写 ROS topic 驱动;  
惯性传感器主要是检测和测量加速度、倾斜、冲击、振动、旋转和多自由度  
DoF)运动,解决小车导航定向问题。来自惯性传感器的信息经过处理和积分后,  
(
可以提供许多不同类型的运动、位置和方向输出。  
它的组成包括加速度计(或加速度传感计)和角速度传感器(陀螺)以及它  
们的单、双、三轴组合 IMU 惯性测量单元),AHRS(包括磁传感器的姿态参考  
系统)。其中,MEMS加速度计是利用传感质量的惯性力测量的传感器,通常由标  
准质量块(传感元件)和检测电路组成[8]IMU主要由三个 MEMS加速度传感器  
三个陀螺和解算电路组成。  
3
.5. 加装双目深度相机,编写 ROS topic 驱动;  
双目深度相机惯性测量单元 (IMU) 用于检测六个自由度 (6DoF) 的运动和  
旋转。IMU 将各种传感器与陀螺仪结合起来,以检测三个轴的旋转和运动,以及  
俯仰、偏航和翻滚。添加 IMU 使您的应用能够改进其在摄像头移动情况下的深  
度感知。这为基本的 SLAM和追踪应用打开了大门,从而实现更好的点云对齐[9]。  
双目传感器结构如图 4。  
双目传感器可进行以下研究调试:  
i.调整视角;  
ii.开发主机可通过 rqtrviz工具查看机器人获取的图像数据;  
iii.摄像头分辨率调节,设置 camera_pi.launch 文件中的参数来控制摄像  
头分辨率。  
4 双目传感器结构  
3
.6. 整机(履带式移动机器+惯性传感单元+激光雷达+双目深度相机)运行,  
协同采集环境数据;  
履带式移动机器人通过双目深度相机采集周围环境的图像信息,再经激光雷  
达测算出障碍物的位置和距离,得出目标具体的方位,最后凭借惯性传感器调节  
机器人的运动状态,以定向导航的方式指引机器人的运动,三种传感器协调配合,  
证整体的运行。  
3
.7. 多传感器数据匹配与融合;  
1)空间融合:空间坐标变换,从传感器坐标系变换到世界坐标系、再到相机  
坐标系、最后到图像坐标系,然后在图像坐标系下对多种传感器数据进行融合处  
;  
2)时间融合:不同种类传感器的采样频率不同,导致不同传感器采样数据的  
时间戳不一致。因此需要采用插值、多线程等方法,使得参与运算的不同种类传  
感器的采样数据在时间上对齐,实现时间融合。  
3
.8. 采用上述采集到、并进行融合后的数据,使用 SLAM 算法实现移动机器人  
自主定位与环境建模。  
SLAM 以描述为:机器人在未知的环境中从一个未知位置开始移动,移动  
过程中根据位置估计和地图进行自身定位,调整之前所建造的环境建模,同时建  
造增量式地图,实现机器人的自主定位和导航[10]。  
4
、项目研究技术路线  
本项目研究首先在树莓派 4B和机器人操作系统 ROS中编程,实现移动机器  
人自主运动,然后在履带式移动机器人平台上加装惯性传感单元,激光雷达,视  
觉传感器(单目 USB 摄像头,双目深度相机),为各种不同类型传感器分别编写  
ROS topic,驱动各种不同类型传感器与移动机器人协同工作,采集环境数据。  
最后基于多源信息融合技术进行多模态数据匹配与融合,以及基于即时定位与建  
图技术实现移动机器人自主定位与环境建模。技术路线如图 5所示。  
5 技术路线示意图  
参考文献:  
[
[
[
[
1]李健明.基于深度学习的无人驾驶汽车环境感知与控制方 法研究[D].长安大  
2019.  
2]高铭.基于深度学习的复杂交通环境下目标跟踪与轨迹预 测研究[D].吉林大  
2020.  
3]宫铭钱,冀杰,种一帆,陈琼红.基于激光雷达和视觉信息 融合的车辆识别  
与跟踪[J/OL].汽车技术:1-8[2020-09-28]  
4]徐萌,陈宗海. 基于视觉 SLAM优化双目深度估计[A]. 中国自动化学会系统  
专业委员会、中国仿真学会仿真技术应用专业委员会.21届中国系统仿真  
技术及其应用学术年会论文集(CCSSTA21st 2020[C].中国自动化学会系  
统仿真专业委员会、中国仿真学会仿真技术应用专业委员会:中国自动化学  
会系统仿真专业委员会,2020:4.  
[
[
5]冀将. 基于双目视觉的障碍物探测系统研究[D].中北大学,2020.  
6]张兵. 基于双目相机和深度学习的视觉里程计算法研究[D].哈尔滨工业大  
,2020.  
[
[
[
[
7]宋文松,张宗华,高楠,孟召宗.基于强度信息的激光雷达和相机空间位姿标定  
方法[J/OL]激光与光电子学进展:1-15.  
8]刘锴. 面向无人驾驶的多激光雷达与相机的融合技术研究[D].吉林大  
,2020.  
9]章军辉,陈大鹏,李庆.自动驾驶技术研究现状及发展趋势 [J].科学技术与  
工程,20202009): 3394-3403.  
10]戴雪瑞. 复杂交通环境下自动驾驶视觉环境感知关键问题的研究.  
三、项目实施进展情况  
1
.学习理论知识后,搭建项目所需开发环境以及前期准备工作。  
a.拟机开发环境搭建;  
b.理主机开发环境搭建;  
c.移动机器人的 WIFI热点模式配置与局域网模式配置,连接树莓派,如图 5  
和图 6所示。  
6 小车 WIFI热点模式配置  
7 局域网模式配置  
2
.在树莓派 4B和机器人操作系统 ROS中编程,通过虚拟机和 VNC均可控制移动  
机器人运动,执行命令:roslaunch hawkbot teleop_key.launch 后,如图 7和  
8所示,可对履带机器人运动参数进行调整。  
8 虚拟机里控制小车移动  
9 通过 VNC控制小车移动  
3
.加装单目 USB摄像头,编写 ROS topic驱动。  
摄像头节点可以为机器人捕获图像数据,可用于图像显示或图像处理。摄像  
头是最接近人眼成像原理的传感器。通过对周围环境实时拍摄,将障碍物通过  
镜头生成的光学图像投射到图像传感器表面上,转化为电信号,经过模数转换  
后变成数字图像信号,再经数字信号处理芯片的加工处理,就可以收集周围环  
境的 2D图像,进行对周围环境信息的采集与处理。  
4
.加装惯性传感单元,编写 ROS topic驱动。  
惯性传感器主要是检测和测量加速度、倾斜、冲击、振动、旋转和多自由  
(DoF)运动,解决小车导航定向问题。来自惯性传感器的信息经过处理和积分  
后,可以提供许多不同类型的运动、位置和方向输出。它的组成包括加速度计  
或加速度传感计)和角速度传感器(陀螺)以及它们的单、双、三轴组合 IMU  
惯性测量单元),AHRS(包括磁传感器的姿态参考系统)。其中,IMU主要由三  
MEMS加速度传感器及三个陀螺和解算电路组成。执行命令:rostopic echo  
/imu/data后,IMU数据查看如下图所示。  
10 IMU数据查看  
5
.加装双目深度相机,编写 ROS topic驱动。  
a.虚拟机 d435i 驱动安装 ros 开发环境搭建。执行命令:realsense-  
viewer 可查看相机驱 SDK 成功安装,可通过相机获取 2D  3D 图像,并能  
看到实时传输速率,如图 10所示。  
11 虚拟机 d435i驱动配置  
安装 d435i  ROS 环境后,执行命令:roslaunch realsense2_camera  
rs_camera.launch启动相机节点后,另开终端执行命令:rosrun rqt_image_view  
rqt_image_view,可将相机可视化,如图 11所示。  
12 虚拟机 d435iROS环境配置  
b.树莓派 d435i驱动安装,可通过与树莓派相连d435i相机获取 2D3D  
图像,如图 12 所示,所得到的实时图像明显比虚拟机得到图像清晰,且传输稳  
。  
13 树莓派 d435i驱动配置  
6
. LVI-SAM算法实时状态估计和建图  
LVI-SAM是一个 lidar-visual-inertial里程计和建图系统,在系统级别结  
合了 LIO-SAMVins-Mono的优势。LVI-SAM是一个紧耦合的雷达视觉惯导 SLAM  
系统,可以实时高精度鲁棒的进行状态估计和建图。  
LVI-SAM构建在因子图之上,并且由两个子系统组成:一个视觉惯导系统和  
一个激光惯导系统。这两个子系统利用紧耦合的方法,视觉惯导的系统利用激光  
惯导的估计来做初始化,利用激光雷达的测量给视觉特征提供深度来提升精度。  
同时激光惯导系统利用视觉惯导的估计值作为初值来做帧的匹配,利用视觉做闭  
环检测,把检测的结果给激光惯导系统来做优化。  
14 LVI-SAM算法运行截图  
通过局域网模式,以键盘远程控制小车移动,并通过固定于移动机器人之上  
d435i相机记录场景信息并打包传输回主机处理。  
15 数据包截图  
7
.寻找开源 ORB-SLAM2算法框架进行建图导航  
ORB-SLAM2是一个支持单目、双目、RGB-D相机的开源 SLAM框架,能够实  
时计算相机的位姿并同时对周围环境稀疏三维重建,并且在双目和 RGB-D模式  
下可以得到真实尺度信息。它能够在 CPU上做到实时的回环检测和重定位。代  
码提供提 ROS版本和不 ROS两个版本,并且有在 SLAM 模式和本地化模式  
之间切换的 GUIORB-SLAM定位精度极高,可达厘米级。  
ORB-SLAM2算法主体框架如图 15所示。输入有三种模式可选:单目模式、  
双目模式和 RGB-D模式。地图主要由地图点和关键帧组成。关键帧之间根据共  
视地图点数目组成共视图,根据父子关系组成了生成树。  
跟踪:初始化成功后首先会选择参考关键帧跟踪,然后大部分时间都是恒  
速模型跟踪,当跟踪丢失的时候启动重定位跟踪,在经过以上跟踪后可以初步  
估计位姿,然后经过局部地图跟踪对位姿进行进一步优化。同时会根据条件判  
断是否需要当前帧新建为关键帧。  
局部建图:输入的关键帧来自跟踪线程里新建的关键帧。为增加局部地图  
点数目,局部地图里关键帧之间会重新进行特征匹配,生成新的地图点,局部  
BA会同时优化共视图里的关键帧位姿和地图点,优化后也会删除不准确的地图  
和冗余的关键帧。  
位置识别:需要导入离线训练好的字典,这个字典是由视觉词袋模型构建  
的。新输入的图像帧需要先在线转化为词袋向量,主要应用于特征匹配、重定  
、闭环。  
16 主题框架  
a.ORB-SLAM2 代码运行过程以及相关参数如下,终端显示的是标定的摄像头参  
数。  
17 运行参数  
b.应用由 D435i采集获得的深度图像信息进行建图导航生成的稀疏点云地图  
如图 17 所示。  
18 ORB-SLAM2建图过程  
四、项目总结  
本项目在履带式移动机器人平台上加装惯性传感单元,激光雷达,视觉传感  
器(单目 USB摄像头,双目深度相机),在树莓派 4B和机器人操作系统 ROS中编  
程,实现移动机器人自主运动的同时,为各种不同类型传感器分别编写 ROS topic,  
驱动各种不同类型传感器协同工作,采集环境数据,并基于多源信息融合技术进  
行多模态数据匹配与融合,以及基于即时定位与建图技术实现移动机器人自主定  
位与环境建模。本项目最终运行了 LVI-SAM算法和 ORB-SLAM2算法,取得了较为  
满意的建图导航结果。此外,本项目所使用的搭载树莓派 4B 开发板的机器人在  
应用场景上仍具有较大开发空间,值得继续深入探索。