智能无人车系统设计与实现
实验题目:智能无人车系统设计与实现
课程简要信息
课程名称:机器人操作系统(ROS)课程设计
课程学时:24学时
项目学时:课内24学时+课外3周
适用专业:机器人工程专业、自动化类专业
学生年级:第3学年、第5学期
实验内容与任务(限500字,可与“实验过程及要求”合并)
项目需要完成的任务(如需要观察的现象,分析某种现象的成因、需要解决的问题等);是否设计有不同层次的任务。
该实验采用项目开发式教学,主要目的是培养本科学生熟悉项目流程,并且理论联系实际、切实提高学生在实际中解决复杂工程问题的能力。该综合设计实验旨在使学生广泛了解实际无人车控制系统开发的全过程,熟悉工程项目的主要技术和管理模式,在实验的操作过程中不仅引导学生学习掌握无人车控制系统的设计、安装、调试等实际操作技能,还要求学生按照全过程项目实施流程运用所学知识和基本技能完成一个“完整项目”,包括功能需求分析、方案论证、部分器件选型、人员分工协作、项目统筹管理以及实际工程所涉及的工程伦理等综合性能力的锻炼与培养,为将来走上工作岗位提供必要的实际设计开发经验。
该课程按照完整工程项目全过程开发设计流程实验模式进行实验内容设计及任务分工,同时针对不同难易程度设计了三种不同层次的实验任务要求。
1)系统架构设计:基于机器人操作系统(ROS)平台,以现有的电动两驱轮式移动机器人本体为主要研究对象,结合摄像头、激光雷达等外部传感器、搭载ROS的嵌入式开发系统,设计无人车直线行驶控制系统(第1层次)、或已知路径跟踪控制系统(第2层次)、或未知环境自主导航控制系统(第3层次)。
2)控制算法研究:根据机器人感知、决策及控制三者之间的关系,在完成感知系统设计的基础上,进行决策及控制系统的设计研究,主要采用PID控制算法、自抗扰控制算法的仿真与试车验证:无人车直线行驶控制实验(第1层次)、或已知路径跟踪控制实验(第2层次)、或未知环境自主导航控制实验(第3层次)。
3)系统装配与实车测试:搭建、装配及调试无人车自主控制系统硬件模块,同时在机器人操作系统(ROS)平台中编写感知决策及控制程序,首先验证感知决策及控制模块的可行性和控制算法的有效性,然后在实验室中轮式移动车上进行无人车直线行驶控制实验(第1层次)、或已知路径跟踪控制实验(第2层次)、或未知环境自主导航控制实验(第3层次)。
实验过程及要求(限300字)
如对学生在实验过程中在需求分析、资料查询、自学预习、思考讨论、方法设计、进程规划、软件仿真、平台构建、器件选择、表格设计、现象观察、数据测试、问题分析、总结报告、验收答辩、演讲交流等各方面的要求。
该课程是一个利用机器人操作系统(ROS)平台开发设计无人车自主控制系统的典型案例,涉及无人车系统架构设计、机器人感知系统设计、机器人决策系统设计、机器人控制系统设计、机器人操作系统(ROS)开发、机器人感知、决策及控制算法设计以及程序设计等相关知识与技术方法。并涉及项目需求分析、市场调研、方案设计、沟通协作、项目统筹管理以及工程伦理等工程概念和方法。
按照完整工程项目全过程开发流程教学模式进行实验过程的设计,体现全流程、多维度、进阶式以及高层次的特点。
实验过程主要环节包括:1)项目需求分析;2)方案设计;3) 系统架构设计;4)算法仿真研究;5)系统组装与测试;6)实验报告(项目总结报告);7)路演及PPT报告;8)项目规划及工程伦理问题等。
相关知识及背景(限150字)
项目涉及所需的知识方法、实践技能、应用背景、工程案例。
“机器人操作系统(ROS)课程设计”课程是高等学校机器人工程等自动化类专业的学科专业主干课,主要介绍机器人操作系统(ROS),机器人感知、决策与控制系统设计以及结合实际应用背景项目规划设计及具体实施方案等内容。
智能无人车系统设计与实现是一个利用机器人操作系统(ROS)平台开发设计无人车自主控制系统的典型案例,涉及无人车系统架构设计、机器人感知系统设计、机器人决策系统设计、机器人控制系统设计、机器人操作系统(ROS)开发、机器人感知、决策及控制算法设计以及程序设计等相关知识与技术方法。同时涉及项目需求分析、市场调研、方案设计、沟通协作、项目统筹管理以及无人车领域所涉及的工程伦理等工程概念与方法。
实验环境条件
项目实施需要实验资源,包括实验装置功能、实验仪器设备、设计软件工具、主要电子元器件等。
实验装置功能:基于无人车组成原理,以电动双轮差速型无人车为研究对象,结合机器人操作系统ROS平台,在无人车底盘的基础上进行传感/决策/驱动控制系统以及执行机构的设计,完成系统组装,实现无人车自主导航与控制等功能。
实验组装设备:双轮差速型无人车底盘,嵌入式开发系统(含ROS系统),PC机,室外无人测试车辆。
设计软件工具:ROS、Matlab、Multisim、Python
主要硬件模块:摄像头、激光雷达、超声波传感器、机器人本体、嵌入式开发系统、显示器、主控板以及执行机构等。
教学目标与目的(限150字)
如学习、运用知识、技术、方法等;培养、提升技能、能力、素质等。
按照完整工程项目全过程流程开发设计教学模式进行实验设计,体现全流程、多维度、进阶式以及高层次的能力培养。具体教育目标及目的如下。
1)解决复杂工程问题能力:不是简单的设计、仿真,“连线”进而验证或者已有非常成熟解决方案的问题,而是真正的在实战过程中遇到未知的问题或超越自身当前学识水平的问题(甚至行业难题),应该如何去解决。
2)工程项目开发设计能力:按照项目开发者角色培养。不仅包含技术部分,还包括项目管理、沟通协调、安全防范等非技术方面的能力培养。
3)“工程伦理”素养培养:结合无人“电车悖论”这一“伦理困境”问题,培养学生的工程伦理意识和责任感、掌握工程伦理的基本规范,提高工程伦理的决策能力。
教学设计与实施进程
课堂知识讲解、方法引导、背景解释;实验中的方法指导,问题设置、思路引导等。教学模式、实验渠道、研讨主题、观察节点、验收重点、质询问题等方面设计等。实验实施进程的各个环节(如任务安排、预习自学、现场教学、分组研讨、现场操作、结果验收、总结演讲、报告批改等)中教学设计的思路、目的,教师、学生各自需要完成的工作任务,需要关注的重点与细节。
本实验的过程是一个完整的工程开发设计项目,按照完整工程项目全过程开发设计流程管理模式进行实验教学,不仅包含技术类工作的实施(如功能需求分析、方案设计论证、系统设计调试及试验、技术总结报告的撰写等),还包含项目统筹管理能力(组长为项目负责人)以及人员分工协作能力(多人配合完成工程实验),尤其是无人车领域的工程伦理能力等培养。在实验教学中,教师需全程参与指导,并认真做好备选方案。该实验案例的实施进程如下所述。
1)项目需求分析:首先,查阅文献、市场调研,梳理无人车尤其是轮式无人车的发展历史过程,总结发展现状;其次,根据项目需求,进行系统功能需求分析。同时要求学生组建团队并进行人员分工。本阶段主要引导学生了解无人车系统架构,学习无人车控制的基本方法,根据项目需求进行系统的功能需求分析、经济成本和时间要求分析,综合选择确定行驶路径和控制方法。
在开始阶段可提供给学生部分参考文献供学生阅读,同时针对不同能力层次的学生以及根据学生完成的不同情况,在中后期可给出更加详细的项目需求,包含控制原理、技术指标、时间要求等。同时给出组队及人员分工建议。该阶段需要上交项目需求分析报告。
2)方案设计:首先,在明确项目需求后,对系统进行功能需要分析、技术指标确认以及时间、人工、经济等成本预算;其次进行方案设计,总体方案设计以及具体技术路线分析,主要包含控制原理及控制方法选择(PID控制算法或自抗扰控制方法等)、系统架构设计(感知系统、决策系统和控制系统等)、硬件模块设计、算法研究以及项目流程管理。特别鼓励学生采用不同原理方案和提出的具有创新性的路径规划及控制方法等。
针对不同能力层次的学生以及学生完成的不同情况,在该阶段的中后期可给出不同类型多种系统架构选择和两种控制原理和控制方法的备选方案,引导学生根据前期调研进行合理性选择。该阶段需要上交系统设计方案。
3)系统架构设计:根据设计方案,第一步器件选型,主要涉及传感器选型、控制器选择等,第二步硬件模块组装及调试,第三步ROS编程及调试:设计过程中注意不同外部传感器如摄像头、激光雷达或超声波传感器等各自特点,各自接收外部环境信息差别较大,后续的信号处理及数据处理也要根据外传感器的特征来设计;一般来说,传感器的使用说明中都有典型程序模块供参考。
针对不同能力层次的学生以及学生完成的不同情况,可给出部分系统模块的使用说明,调试函数等。该阶段需上交系统架构设计方案。
**4)算法仿真研究:**根据设计方案,系统中所采取的算法(不同是传感器方案或不同的控制算法方案)首先进行仿真研究,验证算法原理的可行性以及在仿真过程中(尽可能模拟实际环境,如模型不确定性、存在外部干扰等条件)的有效性、鲁棒性等。在建立无人车模型的基础上,利用ROS或Matlab软件进行算法仿真验证,根据所选传感器或控制算法进行仿真。
针对不同能力层次的学生以及学生完成的不同情况,可给出无人车模型和算法伪代码,并根据情况,给出框架程序或部分算法程序。该阶段需要上交仿真程序及仿真分析报告。
**5)系统组装与测试:**首先验证无人车硬件系统的可行性和无人车控制的有效性,然后在实验室环节中进行车体行驶测试实验。在做好前期工作的基础上,尤其是在无人车控制实验验证后,实车道路实验难度不高。但是无人车控制实验是关键且有较高难度,需要学生大量时间进行调试。本阶段需要全程在实验室进行调试测试,教师做好全程指导和应急预案。对于测试效果较好的控制系统可去智能机器人创新中心进行外场无人车测试。
**6)实验报告(项目总结报告):**文档管理,资料管理,图纸,BOM表等等资料管理,并撰写项目总结报告,报告中要求除常规内容之外,过程中的遇到的困难及问题,尤其是提出的创新性的方法、方案或结构设计以及下一步可开展的工作等都需记录清楚。同时在项目总结报告中要体现团队内每个人的任务分工及完成情况。该阶段需要上交实验报告(项目总结报告)。
**7)路演及PPT报告:**通过个人演讲或分组演讲,展示所做作品的完成情况,阐述实施过程中遇到的问题和解决方法,学习交流不同原理方案的特点。同时锻炼学生进行学术报告的组织及汇报能力,教师做好全程点评。该阶段需要现场演示、PPT报告。
**8)项目规划及工程伦理:**按照工程项目全流程开发设计模式,还需要学习了解整个项目的规划,项目成员之间的协作沟通等。在此过程中教师要做好引导学生在无人车工程中的工程伦理方面的意识素养培养。
实验原理及方案
实验的基本原理、设计依据、完成任务的思路方法,可能采用的方法、技术、电路、器件。
1. Bobac2轮式移动机器人
Bobac2是一款基于ROS开发的服务类的机器人,它不仅拥有自己底层的开发板的控制接口,还有诸多扩展传感器为这款机器人添亮加色,如深度相机,超声波传感器,烟雾传感器,温湿度传感器等等。有了这些传感器,就如同给这款机器人增加了眼睛,安上了鼻子,装上了嘴巴,还有着比人更加智能化的功能,因此这款服务机器人近乎可以在某一定的程度上接替人类,完成相应的功能需求。例如:在医疗服务上,护士病患之间的远程可视化沟通,运送相关物品,也可以作为导游机器人,在不同的旅游景点,做导游解说;随着人口老龄化的加剧,这款服务机器人也可以作为老人的聊天陪伴,当然同理也可以教小朋友学习各式各样的丰富的知识。
本实验便基于该款机器人进行无人车自主控制系统综合设计,包括各项软硬件等基础功能的使用介绍,以及将这些功能综合起来使用的综合项目案例设计。
而ROS(Robot Operating System)是一款开源的、通用的机器人软件的开发平台,该机器人软件项目起源于 2007 年斯坦福大学人工智能实验室 STAIR 项目和机器人技术公司 Willow Garage 的个人机器人项目( Personal Robots Program )之间的合作。经过几年的发展,ROS 已成为世界上应用范围最广的通用机器人软件开发平台。
现在,ROS 由 Open Sour Robotics Foundation 负责维护和管理。
该操作平台最大的特点是:
通用性:目前,世界上每年都有好几十家的机器人研发机构及机器人的制造公司宣布所开发的机器人支持 ROS ,这意味着全世界的越来越多的机器人公司已把 ROS 作为标准的机器人的开发平台。
开源性:在 ROS 的官方网站上提供大量开源的机器人应用程序供使用者下载使用,机器人的开发者可以非常方便了解和从事机器人研究领域前沿课题。
复用性: ROS 模块化开发环境使得程序的复用性成为可能,机器人开发者可使用其他人已开发完成的程序,同时更能专注新增功能的开发。
社区性:目前在 ROS 官方论坛上已聚集了大量的全世界的机器人开发者,大家共同讨论,共同开发,使得机器人开发工作变得更为简单与方便。
2.Bobac2轮式移动机器人的构成
如图2.1为bobac2机器人的示意图。

图2.1 Bobac2轮式移动机器人
Bobac2 机器人由四层组成,每层结构如下:

图2.2 底盘运动层

图2.3 环境感知层

图2.4 驱动控制层

图2.5 决策运算层
(1)主控芯片及板载资源:下位机控制器主要实现底层电机驱动、电源管理以及超声波、红外等各类传感器的采集,同时将采集到的数据及时反馈给上位机。下位机控制器板载资源丰富,各种驱动传感器高度集成,可作为各种智能小车的开发板使用。
下位机控制器采用意法半导体的STM32F103ZET6芯片作为主控,芯片flash有512K,SRAM为64KB,引脚144个,芯片内部运行FreeRTOS系统。下位机控制器板将STM32F103ZET6芯片的内部资源充分运用,没有运用的引脚都已引出预留,方便扩展各类传感器。控制器板接口资源如下图所示:

图2.6 控制器
(2)控制器板载资源描述
电源:控制器板主控电源和电机、工控机电源完全隔离。控制器电源分2路电池电源输出,独立 2 路 12V-20V 可调 5A 电源输出(用于接工控机和显示器液晶屏等),若干 5V 隔离电源输出,若干 3.3V 隔离电源输出。CPU:TM32F103ZET6,LQFP144,FLASH:512K,SRAM:64K。全桥电机驱动:4 路,工作电压 12-36V,每路最大电流可达 50A。AB 电机编码器输入口:4 路,输出电源电压 3.3V 或 5V 可选红外输入口(修改后):3 路碰撞传感器输入口(修改后):3 路485 接口:1 路 485 接口(接超声波模块),跟主控 UART3 接口对接,输出电源电压 3.3V 或 5V 可选。串口:1 路 232 串口与上位机通讯,4 路 TTL 电平串口备用,其中 UART2兼容 5V,其余工作电压 3.3V。CAN 总线:1 路。从 USB 接口:1 路;SPI 接口:2 路,工作电压 3.3V; I2C 接口:1 路,工作电压 3.3V;IO 口:预留 32 个IO口,其中8路兼容5V输出,2路可作DA输出;其余AD输入模式、电平输入模式、电平输出模式可自行通过软件配置定义。备用继电器:2 路,接口预留。备用温度传感器:1 路 DS18B20。蜂鸣器:1 个,用于各种交互反馈。指示灯:一个绿色电源指示灯,一个蓝色主控 3.3V 电源指示灯,一个蓝色主控程序正常运行指示灯,16 个红外传感器蓝色指示灯。
- 下图为主控芯片引脚规划图。

图2.7 主控芯片引脚规划图
- 控制系统架构如下图所示。控制器起着与上位机有着相互的交互,又有着驱动各个模块的重要作用,控制器在中间连接层就起着至关重要的作用。

图2.8 控制系统架构示意图
3.自抗扰控制技术介绍
(1)无人车动力学模型
定义坐标系
为固定在地面上的全局坐标系.在
坐标系下的车辆模型如图1所示.

图3.1 无人车运动学模型
无人车通过左右车轮的差速运动实现转向,转向中心为
,以
点为车辆的坐标参考点,两侧车轮之间的距离为
,驱动轮的半径为
,车辆的角速度和线速度分别为
和
,车辆的航向角为
.两个前轮独立驱动为车辆提供动力,后轮为万向轮仅对车辆提供支撑作用,车辆模型涉及到的物理参数如下表所示。
表3.1无人车动力学参数
| 参数 | 物理含义 | 单位 |
|---|---|---|
![]() |
绕无人车重心的转动惯量 | kg·m^2^ |
![]() |
无人车总质量 | kg |
![]() |
驱动轮的转动惯量 | kg·m^2^ |
,![]() |
左右驱动轮的线速度 | m/s |
![]() |
轮胎与地面摩擦系数 | kg·m^2^/s |
,![]() |
左右轮的驱动力 | N |
,![]() |
左右驱动轮的旋转角度 | rad |
![]() |
电机与传动机构驱动增益 | Nm/V |
,![]() |
左右电机的驱动电压 | V |
无人车的动力学特性具体描述如下,根据力矩平衡原理,车辆的加速转矩等于两侧驱动轮主动力矩之差,即
(1)
由牛顿第二运动定律得
(2)
则车辆两侧车轮的动态特性为
(3)
(4)
其中:下标
,
分别表示左右车轮,
表示驱动轮与路面之间的滚动摩擦系数,
表示驱动电机以及减速齿轮间的传动增益,
的具体计算式为
(
为减速齿轮的减速比,
为电机的电磁力矩常数,
表示为电机的电枢电阻).
根据差速型无人车的运动原理可得车辆的线速度和角速度分别为
(5)
(6)
综合式(1)~ (6)可得车辆的线速度和角速度的变化率分别为
(7)
(8)
在实际运行中,由于电机的减速箱齿轮存在空回、车身摇摆、重心不稳定等现象,会对车身造成一定干扰.定义外部因素对车辆造成的总扰动为
,
、
分别表示车辆线速度和角速度受到的干扰,则无人车的动力学模型可表示为
(9)
其中:
,
,
,
,
,
,
,
.
(2)控制器设计
通过线性自抗扰(LADRC)的控制方法设计航向角控制器,使车身的实际航向角
快速跟随期望航向角
.所设计的线性自抗扰控制器由跟踪微分器(TD)、线性扩张状态观测器(LESO)和非线性反馈(NLSEF)组成.把期望航向角
作为控制器输入,期望角速度
作为控制器的输出.由线性自抗扰方法设计的航向角控制器的结构如下图所示.

图3.2 自抗扰控制器
在线性自抗扰中跟踪微分器的功能是对输入信号做初步滤波处理并获取其微分值的.线性扩张状态观测器的设计只依赖对象状态的估计.非线性反馈是按对积分器串联型的控制要求来设计,因此这三部分分别予以单独设计.
1)跟踪微分器(TD)
在保证快速性的同时减少跟踪信号的超调和振荡.跟踪微分器的方程如式(16)所示。
(16)
其中:
为跟踪目标航向角,
为输出目标航向角的微分,
为跟踪因子,
为滤波因子,
是最速综合函数.
2)航向角的线性扩张状态观测器(LESO)设计
为了估计控制过程中存在各类扰动,建立线性扩张状态观测器为
(17)
其中:
表示航向角观测值和实际值之间的误差.
表示对航向角
的观测值.
表示对航向角
一阶导的观测值.
表示航向角控制系统中观测到的总扰动.
、
、
,
为LESO的带宽.
3)航向角的非线性反馈(NLSEF)
在非线性状态误差反馈中,系统的状态误差用
和
描述,根据误差计算控制器的输出
.非线性误差反馈为
(18)
其中:
、
、
、
和
为可调参数,
是非线性函数
.
4)仿真验证和实车道路测试


图3.3 无人车自主行驶控制效果


图3.4 基于ROS的无人车未知环境自主导航

图3.5 无人车实验室


图3.6 外场无人车测试平台
实验报告要求
需要学生在实验报告中反映的工作(如:实验需求分析、实现方案论证、理论推导计算、设计仿真分析、电路参数选择、实验过程设计、数据测量记录、数据处理分析、实验结果总结等等),如:
该实验案例是一个完整的工程开发与实践项目,按照完整工程项目全过程流程管理模式进行实验教学,项目完成时需要撰写项目总结报告(含技术报告),项目总结报告需要反映但不限于以下内容:
-
项目需求分析(功能需求,指标、时间和经济成本等要求等);
-
总体方案设计(含控制原理设计、系统架构设计等);
-
系统架构设计(外部传感器选型,控制器选型、BOM表等);
-
软件仿真研究(含理论推导以及计算、ROS或Matlab软件仿真等);
-
实验测试(含无人车直线行驶、已知既定轨迹跟踪控制、未知环境无人车自主导航控制等);
-
实验数据记录(重复性实验数据、稳定性实验数据等);
-
数据处理分析(测量误差及误差分析等);
-
实验结果总结(结果的正确性、合理性分析等)。
考核要求与方法(限300字)
考核的节点、时间、标准及考核方法。
该实验案例是一个完整的工程开发设计项目,按照完整工程项目全过程流程管理模式进行实验教学,每个环节均有考核,考核环节如下所示:
-
项目需求分析:该阶段考核上交的项目需求分析报告;
-
方案设计:该阶段考核上交的设计方案;
-
系统架构设计:该阶段考核上交传感器、控制器等硬件设计方案;
-
软件仿真研究:该阶段考核上交的仿真程序及仿真实验报告;
-
实验测试:该阶段现场考核;
-
实验报告:该阶段考核上交的实验报告(项目总结报告);
-
路演与PPT报告:该阶段现场考核;
-
项目规划及工程伦理:该阶段全程定性考核。
考核要求如下所示:
1) 实验质量:系统架构的合理性,系统装配质量、算法有效性;
2) 自主创新:功能构思、控制系统设计的创新性(感知算法、控制算法及控制策略等),自主思考与独立实践能力;
3) 仿真验证:独立思考、独自完成、具有一定的创新思维;
4) 实验数据:感知数据、规划路径数据、行驶数据及其数据处理、控制误差及其分析;
5) 实验报告:实验报告的规范性与完整性;
6) 实物验收:功能与性能指标的完成程度(如行驶速度、控制精度、避障效率等),完成时间;
7) 项目规划:团队组织有效性、项目规划合理性、是否具有一定的工程伦理意识和规范能力。
项目特色或创新(可空缺,限150字)
项目的特色在于:项目背景的工程性,知识应用的综合性,实现方法的多样性。
该课程的特色在于按照完整工程项目全过程开发流程管理实验教学模式进行设计,整个实验过程体现全流程(一个完整项目开发设计全流程,从需求到实物的全过程设计)、多维度(技术(理论与实践)、沟通协调、工程伦理意识等多种能力的培养)、进阶式(不同层次的实验任务要求及方案选择、进阶式能力的培养及提高)以及高层次(兼具系统性、创新性和挑战性,解决复杂工程问题的综合能力和高级思维的培养)的特点。
充分结合“以赛促学、以赛促教、学赛结合”的教学理念,将竞赛作为本课程的后续拓展,充分调动学生参与实践的积极性和主动性。让学生在掌握基础知识的前提下学会自主探究,激发学生的学习兴趣、提高学生的研究能力、培养学生的创新思维、加深对基础理论的理解、实现知识的迁移,更进一步提升学生在无人系统开发项目中的项目思维、系统思维、闭环思维以及工程伦理素养,真正提高学生解决复杂工程问题的实践能力和工程伦理意识及规范。



,

,
,

,