基于ROS和机器视觉的智能车循迹控制方法研究毕业论文
2020-02-19 07:52:51
摘 要
智能车作为一个高新技术综合体,模块上集成了环境感知、规划决策、自动驾驶等多个环节,技术上涉及到图像处理、自动控制、机械、模式识别、电力电子、数字电路、模拟电路等多个学科,具有很高的学习和研究价值。
本文旨在完成基于MIT-racecar为原型打造的自动驾驶小车的硬件和软件平台搭建,实现在常规路况如操场跑道的循迹无人驾驶。该系统以NVIDIA的人工智能超级计算芯片Jetson TX2为处理器,利用STEREOLABS公司的ZED STEREO深度ZED采集环境图像信息,通过机器视觉及图像处理相关知识识别出实时路径,利用PID控制方法驱动VESC控制racecar的底层舵机和电机,从而实现小车实时跟踪车道线。
主要工作分为硬件平台搭建和软件设计两大部分组成。硬件部分主要包括车体的搭建、硬件的连线,软件部分主要包括相机的标定、透视变换、车道线识别、车体速度和转向控制算法等。
该系统在Linux环境下开发,使用到了广泛用于机器人开发的ROS元操作系统,选用了Kinect版本,程序编译及调试过程结合使用了Terminal与Roboware,远程SSH通信于racecar和个人电脑。
经过多次的调整参数及测试,最终实现了识别红色路面上的白色车道线,并能够通过调整参数实现在一般道路上识别有一定对比度的任意颜色车道线,使Racecar能够自适应路面变化,实现循迹无人驾驶。
关键词:智能车;ROS;图像处理;双目循迹;运动控制
Abstract
Intelligent vehicle is a comprehensive system integrating environment perception, decision-making and automatic driving, which involves wide fields such as image processing, pattern recognition, automatic control, industrial control, mechanical and electrical. It is a typical high-tech complex with high research value.
The purpose of this article is to complete the hardware and software platform of the intelligent vehicle based on model of MIT-racecar, further aiming to achieve the goal of tracking road lane and unmanned driving in the conventional road conditions such as the playground.
The system uses NVIDIA's artificial intelligence supercomputing chip Jetson TX2 as the processor, uses STEREOLABS ZED to collect environmental image information. Machine vision and image processing related knowledge are used to recognizes real-time path, PID control method is adopted to drive VESC to control the underlying steering gear and the motor racecar. As a result, the car tracks the lane line in real time.
Two parts compose the entire design: hardware platform set-up and software programming. The hardware part mainly extends to the construction of the vehicle body and the connection of the hardware module. The software part mainly includes the calibration of the camera, the perspective transformation, the lane line recognition, the vehicle speed and the steering controlling algorithm.
The system is developed in Linux environment, using ROS meta-operating system, Kinect version. Terminal and Roboware are adopted in the process of program compilation and debugging. Remote SSH solves the problem of communication between racecar and personal computer.
After many times of adjustments and tests, the white lane on the red road is finally recognized. Through adjusting the parameters, the arbitrary color lane line with a certain contrast can be recognized on the general road, so that Racecar can finally adapt to road changes and realize the driverless tracing aim.
Key Words:intelligent vehicle;ROS;image processing;binocular tracking;movement control
目 录
第1章 绪论 1
1.1 背景及意义 1
1.2 国内外研究现状 2
1.2.1 国外研究 2
1.2.2 国内研究 3
1.3 研究的主要内容 3
1.4 论文组织结构及章节安排 4
第2章 总体方案设计与选择 5
2.1 图像处理 5
2.1.1 图像增强方法 5
2.1.2 边缘检测方法 6
2.2 电调控制算法 9
2.3 总体选择 10
第3章 智能车硬件平台搭建 11
3.1 整体搭建 11
3.2 机械结构 12
3.3 视觉系统 13
3.4 系统开发板 14
第4章 智能车环境及程序设计 17
4.1 环境搭建 17
4.2 程序设计 18
4.2.1 图像处理模块 19
4.2.2 车道检测模块 23
4.2.3 运动控制模块 30
4.2.4 速度转化模块 30
4.3 小结 32
第5章 调试与结果 33
5.1 图像处理部分 33
5.2 车道检测部分 34
5.3 控制部分 35
第6章 总结与展望 37
参考文献 39
致谢 41
第1章 绪论
1.1 背景及意义
汽车产业的出现大约可追溯到百余年前,自投入使用以来为人类的文明发展做出了巨大的贡献,成为出行领域最重要的交通工具之一。进入21世纪以来,拥有汽车的人越来越多,世界各国享受着便利之余,都开始意识到交通事故给人们带来安全损失,以及给国民经济造成损失不容小觑。智能车方面的研究和应用就是在这种条件下孕育诞生。
智能车,是以汽车为模型,轮子驱动实现自主行驶的智能机器人,作为一个综合系统,集成了环境参数获取、系统决策、自动驾驶等功能。智能车除了运用计算机、传感器技术等基础技术,还将人工智能、自动控制技术融入其中。作为典型的高新技术综合体,它能够在复杂的环境中提出驾驶策略,通过计算机控制技术调节运动的方向和速度,实现车辆的自主控制等功能。一方面,智能车的出现推进了无人驾驶技术的发展,使得在没有人类参与的情景下,依据道路、位置以及障碍物信息,做出判断反应,实现了对车辆的智能控制。进而提高了城市交通系统效率,减少由于人的疲劳导致的交通事故,从而保障人身安全,促进社会发展。自动驾驶技术作为智能车控制的重要领域,而机器视觉又为道路循迹获取环境信息提供了重要的环节,因而这两种技术对于智能车循迹方法的控制的研究有着现实的意义。
另一方面,汽车工业一直以来都是发达国家经济发展的重要支柱。我国在二十世纪以来也一直与发达国家的汽车工业发展齐头并进,发展一直在稳中求进。电子技术和智能控制技术的持续发展为自动控制做了良好的技术铺垫,使其在汽车领域能够蓬勃发展,在国务院提出的“中国制造2025”计划中,为了应对新的一轮的科技革命和产业变革,实现国家的富强,智能车循迹已然成为当前社会大环境的一个研究热点。
随着机器人性能不断地完善,移动机器人的应用范围大为扩展,不仅在农业生产应用广泛,在诸如军事领域、危险行业也成为了不可替代的使用工具,经济效益和市场前景都十分光明。在投身于智能车研究的热潮中,为了便于广大开发人员进行机器人软件的开发交流,多种机器人操作系统相继出现在人们的眼帘。其中一款名叫ROS的源操作系统以其丰富的机器人功能库逐渐成为学界和产业界的标准,方便了各行各业机器人爱好者学习和交流,能够让使用者更加迅速地搭建好机器人原型,实现相关功能要求,具有很高的使用价值。
1.2 国内外研究现状
1.2.1 国外研究
国外研究移动机器人起步于20世纪60年代的Stanford大学研究所的Shakey,它实现了自主路径规划,同时期,以General Electric Quadruped为代表的步行机器人相继能够在不平整、非结构化环境中运动。之后,随着70年代计算机的出现,多种类型的传感器不断革新与计算机科学不断发展,尤其是80 年代开始在美国的带领下,世界掀起了移动机器人研究的热潮。首先是CMU、Stanford大学和MIT等单位联合开展ALV研究,该项目得到了美国国防部的大力支持;之后能源部制定了机器人的智能系统计划和空间机器人计划,为机器人事业的发展铺平道路;欧洲尤里卡中心则相继提出了机器人计划。90年代后,随着这些计划的逐渐完成,技术得到了迅猛的发展。智能性、实用性作为当时研究的重点目标,涌现出各式各样的智能移动机器人,像Navlab系列、Vamors-P和Caravelle系统、ASIMO人型机器人等展示了针对不同特性的先进成果。
近些年来,国外的发展仍在全方位地进行着:
日本科研人员开发的两款微型智能汽车[1]能够通过尖端的机器视觉计算出小车与障碍物之间的距离,通过摄像头、传感器使得小车感知周围环境,发现障碍目标,规划行进路线,从而避免碰撞。
法国INRIA公司推出Cycab汽车[2]的循迹基于巡航导弹制导的GPS定位系统,由红外摄像机获取周围信息实现环境感知,然后做出正确的决策与判断用于运动控制。
除此之外美国谷歌和特斯拉的发展较为迅速,得到业内广泛关注:
特斯拉占据了无人车市场的领先地位,其诸多型号车辆都已配备了Autopilot系统,现推出的Autopilot2.0[3]已经能够在道路中识别红绿灯,完成自主驾驶。不同于之前的系统,Autopilot2.0采用雷达和三镜头构建环境感知系统,感知环境信息,交付于系统处理器进行分析和处理。
谷歌于2009年启动了无人驾驶汽车项目,在之后投入大量资金到项目研究中,于2014年5月推出了一款只安装了启动键的自主无人车,这款无人车不同寻常的是它没有刹车和方向盘,全权交付于系统进行控制,该车于2015年在山景城对其进行道路试跑。2015年,谷歌更加意识自动驾驶领域这盘“大蛋糕”,分离旗下的自动驾驶技术成立子公司Waymo。2017年,谷歌向交通部提交Waymo无人车[4]的方案。Waymo无人车的新颖之处主要包括三距离LiDAR、360度视觉摄像头、雷达系统等传感设备组成的感知系统,具体上通过自己团队建立的传感器三维地图与预先建立的高精地图相比对,实现对自己位置的确知。整体上由感知、行为预测和规划器三部分组成软件系统,现已在Castle测试基地实现模拟路况。
谷歌是利用地图收集的图像数据来进行控制,而以色列Vectoraic无人车则是通过高分辨率的激光探测来实现无人驾驶。在获取环境信息方面,提出了智能巡航自导技术和斜角扫射技术,对目标进行3D全方位检测和深度感知,每3cm进行一次矢量分析,将获取到的碎片数据自动拼接成清晰度达到3cm的3D矢量地图,控制算法采用基于神经网络算法自动筛选危险进行精确预判,有效地将碰撞风险控制在2公里外,拥有十分高的安全系数。并且在系统设计中开创性地融合了区块链技术。
1.2.2 国内研究
相比于美、欧等发达国家,我国从20世纪80年代底才开始在无人驾驶汽车方面的研究,但是由于科研人员的不断努力和国家的大力扶持,对于移动机器人的某些关键技术已经不落窠臼。
国内移动机器人主要研究成果如下:
清华大学从1988年开始研究开发THMR系列智能车[5],标志着我国移动机器人的起步。2003年,THMR-V智能车研制并在北京郊区试车成功,在结构化道路中的循迹过程中,图像处理方面运用边缘提取和双阈值二值化方法,车道提取方面使用了ATN网络方法。非结构化道路中,则运用了动态阈值法、区域分割以及对图像进行形态学的开运算处理出车道线。
之后,我国高校中的无人车研究得到了快速的发展。如中科院沈阳自动化针对防爆特性研制出的AGV自主车[6];军事领域由南京理工大学,北京理工大学,浙江大学等多所院校联合研究的室外移动机器人;针对全方位要求,由中科院自动化所提出的移动式机器人视觉导航系统;国防科技大学的“人形”机器人;香港城市大学的服务机器人等。
自上海交通大学于2005年研制成功了国内首辆城市无人驾驶汽车后,无人驾驶汽车进入到了交通环境,步入国人的眼帘。
2011年7月,在国防科技大学的技术支持下,一汽集团研制的红旗HQ3[7]无人驾驶汽车在286公里的高速公路上成功完成了全程无人驾驶路跑试验,刷新了在复杂交通状况下我国全自主研发的自动驾驶的纪录。
进入科技发展新阶段后,百度借助Apoll[8]在无人驾驶领域崭露头角,提出了实现区块链在无人驾驶中的应用,并计划于2021年前后实现L4级别汽车量产的目标。2017年12月,7辆Apoll从雄安新区的酒店出发,全程在无人驾驶的模式下行驶了约4公里路程。
1.3 研究的主要内容
循迹控制是AGV小车、车辆偏离车道预警系统、车辆的自动驾驶系统中重要的控制算法之一。常用的循迹传感器有红外灰度传感器、磁传感器、图像传感器等,前两者通常用于AGV小车,图像传感器常用于车道偏离预警系统和自动驾驶系统。
设计要求基于ROS系统,在使用阿克曼转向机构的智能车上使用双目摄像头作为循迹传感器,采用机器视觉方法实现轨迹检测,研究并实现对小车的循迹控制。
为实现以上要求,需要在熟悉ROS操作系统的前提下建立功能包,实现图像的传入,识别出车道线并规划出小车期望的运行轨迹。之后利用自动控制原理中的相关知识,实现控制舵机及电机,完成循迹。
因而重点研究内容在图像处理及电调的控制上。
1.4 论文组织结构及章节安排
第1章:绪论。介绍本研究的背景和意义,分析了国内外的研究现状和发展方向,大致介绍了本文主要研究内容,最后说明了本论文的整体结构。
第2章:总体方案设计及方案选择。从硬件、系统环境、软件三个方面总体设计,提出大致方案和流程。
第3章:智能车硬件平台搭建。详细说明智能车的硬件结构和搭建过程。
第4章:智能车环境及软件设计。此部分主要说明了相关软件的选择,介绍了图像处理、运动控制方面的程序算法,总结了功能包的整体结构框架,是本文的重点。
第5章:调试与结果。主要是调整一些具体参数,展示设计的部分成果。
第6章:总结与展望。对设计进行整体的总结,反思其中的不足之处,提出改进的方向,对今后的学习工作重点进行阐述和展望。
第2章 总体方案设计与选择
本设计的智能车选用基于MIT-racecar为原型打造的智能车,以NVIDIA公司的Jetson TX2为核心控制开发板,ZED负责读入环境数字化图像信息,在下位机NVIDIA Jetson TX2中进行图像处理,得出处理后的二值车道图像,之后对图像进行检测,得出车道线的方程以及期望的运动轨迹。通过运动控制程序,形成合适的控制参数传入电调模块,电调分别以x方向速度的形式控制电机转速、以舵机的z轴转向角度的形式控制舵机的转角,从而使得智能车在运动过程中在车道线中行驶。
图2.1 系统整体结构图
由上图可知,设计的主体部分在于TX2中的三个部分,即图像处理、车道检测和运动控制,故方案的选择点主要在图像处理和运动控制方案上。
2.1 图像处理
图像处理模块是对ZED传入图像的处理,决定了车道检测的形式,内容主要包括图像增强、透视变换以及提取出二值化车道轨迹,下面依次介绍相关设计方案的选择。
2.1.1 图像增强方法
为了使获取到效果更好的图像进行下一步的处理,因而首先需要对图像进行增强。图像增强指通过有目的地强调图像的整体或局部特性,清晰化原图像或强调某些感兴趣的特征,以增强图像中的有用信息。为了满足某些特殊情况下的需要,有时需要扩大图像中不同物体特征之间的差别或是抑制不感兴趣的特征,以改善图像质量、丰富图像信息,加强图像识别的效果。常见的增强方法包括Laplacian算子、LOG变换、伽马变换、直方图均衡化等。
Laplacian算子是通过与原图像卷积,在保留图像背景的前提下,突现出图像中小的细节信息,来达到图像增强的目的。
LOG变换主要是为了针对灰度值偏低且整体对比度偏低的图像,通过扩展低灰度值信息,压缩高灰度部分细节增强图像,以对图像低灰度部分进行强调。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: