简 介: 通过学习机器人结构相关专业基础知识,通过使用 ROS(Robot Operation system)平台,运用了SLAM、组合导航、路径规划等技术, 还与人工智能领域相关的NLP、深度学习、机器视觉等内容融合,还原了现实生 活的场景,并且模拟满足了现实生活中的迫切需求。

关键词智慧餐厅信号与系统小论文

贾宇飞 自 93 2019011394
闫泽 自 96 2018011682
谭跳 自 93 2019010840

§01 引言:项目背景及意义


  近年来,人工智能这一科技浪潮正在深刻改变着世界,智能机器人作为人工智能的一个综合性载体已经开始渗透进日常生活的方方面面。 2020年新冠疫情席卷全球,让人们意识到无接触配送的重要性。对配送过程的速度、安全、卫生要求都较高的餐饮配送引起了我们的注意,在大规模推广无接触配送的过程中,智能移动服务机器人将扮演重要角色。

  我们的项目旨在基于 ROS开发平台,利用 AI识别算法寻找到一条最 “便捷 ”的配送路径,再以车辆模型模拟配送餐车,达到从指定起始点到达指定目标点的任务。通过地形和障碍来模拟现实场景的环境,不断优化算法获得最速配送时间。

  创新点:我们团队通过学习机器人结构相关专业基础知识,通过使用 ROS(Robot Operation system)平台,运用了 SLAM、组合导航、路径规划等技术,还与人工智能领域相关的 NLP、深度学习、机器视觉等内容融合,还原了现实生活的场景,并且模拟满足了现实生活中的迫切需求。

§02 方案设计


1、赛事的规则和任务.

  • 根据赛事条件:嵌入式计算平台,智能车预装Ubuntu18.04 系统,预装软件包括但不限于Pytorch、TensorRT、ROS。
  • 赛题任务:围绕比赛主题——餐厅配送,进行多段子任务。

▲ 图2.1.1 塞到地图

▲ 图2.1.2 赛道地图参数说明

  需要完成的子任务:决赛任务分为多段子任务。

  • 子任务1:智能车从出发区离开,移至B 区。B 区存在多个雪糕筒作为障碍物,每个雪糕筒均有不一样的标识。
  • 子任务2:智能车抵达任务领取区C 区。C 区的两张挡板分别标有两种垃圾的图标,中间放置一张二维码,二维码包含了需要运送垃圾的种类信息。
  • 子任务3:扫描二维码获得需要运送垃圾的种类信息。
  • 子任务4:识别C 区两张挡板上的垃圾。
  • 子任务5:智能车离开C 区,停泊在指定区域。若所需要运送的垃圾在C1 区,则智能车最终需要停泊在D1 区;若所需要运送的垃圾在C2 区,则智能车最终需要停泊在D3 区; 若不存在需要运送的垃圾,则智能车最终需要停泊在D2 区。
  • 子任务6:通过语音播报出障碍物的数量。

  比赛使用的智能车套件如下:

▲ 图2.2.1 科大迅飞只能车模套件

▲ 图2.2.2 智能车性能参数表

  智能驾驶小车上的软件层面的实现集中在嵌入式计算平台上,其实现了包括传感器数据处理、构图、定位、导航、决策规划、目标检测、图像分类、语音处理在内的诸多核心功能。

2、实现任务的方案

  使用ubuntu 系统运行相关串口协议,管理底层硬件、摄像头、下位机STM32、运动底盘、雷达等硬件。使用Ros 作为各传感器和操作系统的统一通讯架构。

  使用相关的软件包,调用了激光雷达、IMU,完成导航任务。视觉部分包括openCV,语音的合成与播放使用了ros 的sound_play 包。使用opneCV 和深度学习模型完成标识的识别,针对赛题中人物图片的长\短头发特征进行识别,根据赛题规则规划智能车的终点。

§03 项目算法功能


  我们对于这种拓扑的迷宫,可以考虑贴着一侧墙壁走,最终可以到达终点。但明显这种算法效率极低,并且无法保证隔离墙壁的碰撞和子任务的完成。由于比赛中我们都有整个的地图信息,我们不妨利用地图先规划好路线,再控制小车沿着路线走。

  比赛中的智能车在获得目的地信息后,首先经过全局路径规划规划出一条大致可行的路线,我们的导航算法基于Move_base 框架,全局规划器采用Dijkstra算法。然后调用局部路径规划器根据这条路线及costmap 的信息规划出机器人在局部时做出具体行动策略,我们使用的局部规划器采用DWA 算法。在ROS 中每当move_base 处于规划状态就调用DWA 算法计算出一条最佳的速度指令,发送给方针车的运动执行机构执行。

  路径规划基于DWA 算法(dynamic window approach),其原理主要是在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,再通过一个评价函数对这些轨迹打分,运动控制空间(小车四个轮子是麦克纳姆轮,运动控制包括横向、纵向两个加速度和y 轴的角加速度,通过发布cmd_vel 话题来进行控制)的最优解被选择出来发送给下位机。

  算法实现采用了ros 的move_base 导航包。算法的优化思路主体上是对dwa_local_planner 各项参数的调整,使用比较准确的全局地图。

§04 项目实施过程


1、导航

  为了加速小车到达终点的速度,我们对导航的以下几个参数进行优化:

(1)地图膨胀

  由于车模本身的物理尺寸,在进行路径规划时,需要考虑墙体与车子之间的距离,在此使用地图边缘膨胀。既要保证膨胀尺寸不能过小,与墙壁发生碰撞,又不能过大导致车子无法通过狭小的通道。

(2)整体与局部规划器

  由于全局路径规划器仅是根据整体的地图与起点终点的信息规划出一条几何上的最优路径,而小车作为模拟的实体具有速度、惯性、加速度等物理属性,还需要局部的路径规划器根据车辆的具体物理属性来规划局部的运动姿态。这两者之间存在一定的偏差,如何赋权、设置多大的偏差容限都是需要调整的重要参数。

(3)加速

  在能够避免碰撞和正确行驶的前提下尽可能地快,增大加速度、角加速度、速度上限和角速度上限。

(4)平滑路径

  曲折的路径意味着更多的转弯和减速,使弯道平滑、让小车多走直线。为此引入梯度下降算法,避免直接使用网格格点规划路径。进一步提升速度。同时设置更符合地图弯道半径的避障半径。在使用Rviz 建立出地图之后,经过后期边缘处理使地图更加精确清晰,这可以减少地图的边缘毛刺,让路径变得平滑。

(5)加速转弯

  在过弯时观察到小车速度过慢,规划器采用了过于保守的速度以避免碰撞,因为增大了过弯的速度下限充分利用了小车的加速度实现顺滑的过弯。此外,使用了可视化调参工具rqt_reconfigure,减少了繁琐的改代码调参过程。

2、视觉识别

  为了使得小车获得通过扫描二维码和两个垃圾的标识来获得停靠信息,我们增加了视觉识别的功能。实施的方法如下:

(1)相机标定

  由于智能车车载相机内外部参数的影响,摄像头获取的图像会有一定畸变,需要使用ROS 提供的标定功能包camera-calibration 进行标定消除,否则拍摄的二维码会产生变形而无法识别。

▲ 图4.2.1.1 使用标定板进行标定

▲ 图4.2.1.2 标定获得的相机内外参数矩阵

(2)二维码读取

  在到达任务领取区域后智能车打开摄像头进行拍摄(60fps),对每一帧进行decode,直到扫到二维码后decode 结果barcodeData 不为空,据此进行判断扫码成功。之后关闭二维码扫描,进入垃圾识别模式。由于车载ROS 系统中的OpenCV 版本较低,无法使用QRdecode 函数,于是我们采用了pyzbar 库进行二维码识别。图1.2 中获取的barcodeData 为任务类型。

  需要注意的是,摄像头获取的图像需要事先左右翻转得到image,才是我们正常看到的图像。若不进行翻转,二维码将无法识别成功。

▲ 图4.2.2 二维码读取核心代码

(3)垃圾识别

  在任务领取区摆正方向(用目标点姿态w 控制),使得摄像头正对任务卡片,拍摄待识别垃圾照片后关闭摄像头。处理图像信息读取分别对应的垃圾种类后,根据1.2 识别二维码结果,得到下一步设定的终点(垃圾桶位置)。

(4)颜色阈值方法

  识别垃圾的基本方法是颜色阈值方法,根据不同种类垃圾标识的不同颜色进行统计识别,据此判断垃圾种类,以下为具体识别步骤:

▲ 图4.2.4.0 车载摄像头拍摄原图

  (1)分割

  将拍摄的图片分为左右两半区,分别识别颜色获取垃圾种类信息。由于我们车的摄像头视角比较低,所以我们发现对图片只需截取左上角四分之一、右上角四分之一即可,由此还可以减少地板颜色对识别产生的影响。

▲ 图4.2.4.1 分割功能代码

▲ 图4.2.4.2 原图分割结果

  (2)阈值二值化

  RGB 方法:根据照片,使用画图工具分别采集三种垃圾对应的红、绿、蓝颜色RGB 基准值,设定容差上下限。将不在该范围内的像素过滤掉之后,剩余的像素即为匹配的颜色。

▲ 图4.2.4.3 RGB阈值识别核心代码

  HSV 方法:与RGB 方法原理基本一致,只是换成了HSV 颜色空间,如此可以降低颜色识别对光照的敏感程度,可以更好地适应比赛场地的光照变化。而且在OpenCV 中有现成的inRange 函数进行HSV 阈值过滤,比较方便快捷。

▲ 图4.2.4.4 HSV阈值识别核心代码

▲ 图4.2.4.5 识别结果

  (3)统计

  统计剩余像素个数,只要数目大于某一阈值blc,那么认为识别到了这种颜色。

  上述方法原因是:“其他垃圾”的灰色标识与背景颜色过于相近,无法直接识别,我们考虑采用排除法:当识别色块大小不足,无法判定为红、绿、蓝三色块之一时,认定识别结果为灰色。

(5)匹配方法

  上述颜色阈值识别方法的正确性依赖于颜色阈值参数、blc 参数设定,这会随着场地环境改变产生较大影响。后续考虑改进时,我们换用了以下的匹配方法:

  (1)首先采集不同颜色标识的基准图片;

  (2)在获得待识别图片后,将其左右分割;

  (3)与这些基准图片分别进行比对,使用ssim 函数获得两张图片相似度;

  (4)选择相似度最大的基准图片标签作为识别结果。

  这样就进一步减小了光照等环境因素对识别结果的影响,需要调节的阈值参数也很少,效果更优,后续考虑基于这个方法进行改进,保证正确率。

▲ 图4.2.5.1 相似度计算核心代码

▲ 图4.2.5.2 相似度计算与识别结果

§05 项目数据分析


  运行结果如下图所示:

▲ 图5.1 运行结果

§06 项目作品总结


一、主要成果

  首先在线上赛中,通过如第五部分所示的几步优化,虚拟车能够实现自主规划路径、动态避障,以及能够在55s 内到达设定的终点。

  之后在线下赛中,我们在智能车上对算法进行调试,最终完成了全部的子任务,在清华大学校赛中获得决赛一等奖。

二、改进方向

  采用TEB(time eletic band)算法代替DWA 算法:当前给出的小车工作空间相对简单,用优化的方式得到运动参数速度较快,路径较为平滑,同时也不会出现因参数过多得不到最优解情况。

  底层运动控制:在仿真中不便调整小车的底层运动参数,但在实车上可以考虑加入控制算法保证稳定控制。

  目前使用的图标定位方式是简单的按比例分割截取,但是由于每次拍照无法确定小车的位姿和相机的角度,这种简单的方式往往精度较差,且对小车的定位和与目标物的距离角度要求较为苛刻,因此为了解决这个问题,可以考虑在图像的预处理阶段使用图像边缘提取算法,使用二阶边缘提取算子(如Canny 算子)识别出图像的边缘,进而实现有效信息的定位和截取,理论上可以达到提高识别精度,减少运算量的效果。

三、前景预期

  充当救援用机器人:本智能车配备有较完整的传感器,通过激光雷达可对场景建图、摄像头可返回更具体信息。这非常适于在火场等场景使用,为人工救援提供现场信息。

▌参考文献


[1] 陈奕梅, 康雪晶, 徐鹏. 复杂环境下多移动机器人控制算法研究[J/OL]. 电光与控制:1-6[2021-320].
http://kns.cnki.net/kcms/detail/41.1227.TN.20210305.1721.002.html

[2] 《A* , Dijkstra , BFS 算法性能比较及A* 算法的应用》https://blog.csdn.net/qq_34446253/article/details/51427423

[3] 卞永明,季鹏成,周怡和,杨濛.基于改进型DWA 的移动机器人避障路径规划[J].中国工程机械学报,2021,19(01):44-49.


● 相关图表链接:

  • 图2.1.1 塞到地图
  • 图2.1.2 赛道地图参数说明
  • 图2.2.1 科大迅飞只能车模套件
  • 图2.2.2 智能车性能参数表
  • 图4.2.1.1 使用标定板进行标定
  • 图4.2.1.2 标定获得的相机内外参数矩阵
  • 图4.2.2 二维码读取核心代码
  • 图4.2.4.0 车载摄像头拍摄原图
  • 图4.2.4.1 分割功能代码
  • 图4.2.4.2 原图分割结果
  • 图4.2.4.3 RGB阈值识别核心代码
  • 图4.2.4.4 HSV阈值识别核心代码
  • 图4.2.4.5 识别结果
  • 图4.2.5.1 相似度计算核心代码
  • 图4.2.5.2 相似度计算与识别结果
  • 图5.1 运行结果

全国大学生智能汽车竞赛讯飞 -智慧餐厅技术报告 ——信号与系统课程论文相关推荐

  1. 第十六届全国大学生智能汽车竞赛 讯飞智慧餐厅 全国总决赛竞赛规则

    第十六届全国大学生智能汽车竞赛 讯飞智慧餐厅 全国总决赛竞赛规则 §01 参赛要求及须知 一.参赛要求 1.讯飞创意组比赛作为智能车竞赛的创意比赛面向全国全日制在校研究生.本科生和专科生. 2.每个学 ...

  2. 第十六届全国大学生智能汽车竞赛 讯飞智慧餐厅组别 全国选拔赛成绩公布说明

    第十六届全国大学生智能汽车竞赛 讯飞智慧餐厅组别 全国选拔赛成绩公布说明 简 介: 本文给出了2021年第十六届全国大学生智能车迅飞智慧餐厅分赛区比赛获奖成绩与奖项设置.后面给出进入全国总决赛名单分配 ...

  3. 全国大学生智能汽车竞赛-讯飞智慧餐厅

  4. 大学生智能汽车竞赛-讯飞智慧餐厅组别成绩公示!

    成绩公示   各位同学们好,感谢参加大学生智能汽车竞赛-讯飞智慧餐厅组别,线上赛已进入成绩公示期.   成绩公示期为3月30日-4月9日,代码公示期为4月2日-4月9日.   本赛项在保证在公平公正公 ...

  5. 全国大学生智能汽车竞赛-讯飞赛道线下赛开始报名啦!

    五月将至,迅飞赛道线下赛等你! 01 赛事介绍 「全 国大学生智能汽车竞赛 」是教育部倡导的大学生科技A类竞赛,中国高等教育学会将其列为含金量最高的大学生竞赛之一.比赛每年吸引了包括清华.上交.复旦. ...

  6. 第十七届全国大学生智能汽车竞赛讯飞-家庭服务机器人挑战赛全国总决赛规则

    第十七届全国大学生智能汽车竞赛 讯飞-家庭服务机器人挑战赛 全国总决赛规则 一.赛项简介 1.1 赛事背景   伴随着人工智能技术的不断发展与进步,如何让相关技术再有新的突破,从当前的局部智能,迈向更 ...

  7. 第十八届全国大学生智能汽车竞赛 讯飞-智慧农业挑战赛 全国选拔赛规则

    第十八届全国大学生智能汽车竞赛 讯飞-智慧农业挑战赛 全国选拔赛规则 1. 赛项简介 1.1 赛事背景   伴随着人工智能技术的不断发展与进步,如何让相关技术再有新的突破,从当前的局部智能,迈向更先进 ...

  8. 第十六 届全国大学生智能汽车竞赛 讯飞创意组 全国 选拔赛 竞赛规则

    第十六 届全国大学生智能汽车竞赛 讯飞创意组 全国 选拔赛 竞赛规则 一. 参赛要求及参赛须知 1.1 参赛要求 讯飞创意组比赛作为智能车竞赛的创意比赛面向全国全日制在校研究生.本科生和专科生. 每个 ...

  9. 全国大学生智能汽车竞赛-讯飞赛道规则解读

      「全国大学生智能汽车竞赛」是教育部倡导的大学生科技A类竞赛,中国高等教育学会将其列为含金量最高的大学生竞赛之一.比赛每年吸引了包括清华.上交.复旦.北航等500多所理工类高校,超10万名大学生参加 ...

最新文章

  1. Spark DStream相关操作
  2. SAP UI5 enhancement on resourceBundle
  3. CoreOS上的Fleet,第二部分
  4. scrape创建_确实在2分钟内对Scrape公司进行了评论和评分
  5. Sublime Text 3新建工程
  6. python3 pygame 坦克自动移动
  7. RSS原理和实现[转]
  8. 亿级规模的Feed流推荐系统,如何轻松设计?
  9. session 分布式处理-----https://segmentfault.com/a/1190000013447750?utm_source=tag-newest
  10. 狂野!利用Fastjson注入Spring内存马~
  11. 堆排序 heapsort
  12. 计算机入侵有什么方法,教你个一看就会的入侵方法 -电脑资料
  13. 人工智能重新定义管理
  14. iphone如何显示实时网速和内存空间
  15. Oracle对索引做统计,Oracle收集索引统计信息
  16. Python数据类型之三(列表)
  17. 提示Could not calculate build plan Plugin org.apache.maven.pluginsmaven-resources
  18. 王者荣耀是用什么软件和编程语言开发的
  19. 如何长时间坚持一件事情
  20. DHU deeplearning 深度学习处理文本数据 章节阶测

热门文章

  1. 解决 python用 xlsxwrite 向excel 中写入中文字符串变量 报错
  2. NSSet所有API学习。
  3. 从大数据到安全大数据分析
  4. keepalive实验配置
  5. jdk动态代理和cglib动态代理的区别
  6. linux 日志主服务器 syslog
  7. pythonchallenge_level9
  8. 快学习使用Linux吧,避免勒索病毒大肆入侵
  9. IOS开发:关于performSelectorXXX的延迟的使用
  10. 解决Titanium Tab组件click事件在iOS中不生效的方案