命题背景

自动驾驶汽车(Autonomousvehicles;Self-pilotingautomobile)又称无人驾驶汽车、电脑驾驶汽车、或轮式移动机器人,是一种通过电脑系统实现无人驾驶的智能汽车。在20世纪已有数十年的历史,21世纪初呈现出接近实用化的趋势。自动驾驶汽车依靠人工智能、视觉计算、雷达、监控装置和全球定位系统协同合作,让电脑可以在没有任何人类主动的操作下,自动安全地操作机动车辆。汽车自动驾驶技术是物联网技术应用之一。

世界各国政府都在积极推动无人驾驶技术的发展,有实力的公司也在纷纷进入这一市场。谷歌自动驾驶汽车于2012年5月获得了美国首个自动驾驶车辆许可证,预计于2015年至2017年进入市场销售。2017年12月,北京市交通委联合北京市公安交管局、北京市经济信息委等部门,制定发布了针对自动驾驶车辆道路测试的《指导意见》与《实施细则》,规范推动自动驾驶汽车的实际道路测试。2018年4月12日,公安部网站发出了“工业和信息化部、公安部、交通运输部关于印发《智能网联汽车道路测试管理规范(试行)》的通知”,向国内各省市区正式印发了自动驾驶汽车路测的总体规定。2018年5月14日,深圳市向腾讯公司核发了智能网联汽车道路测试通知书和临时行驶车号牌。

全球知名经济咨询机构IHS环球透视(以下简称IHS)汽车部门预测,截至2035年全球将拥有近5400万辆自动驾驶汽车,而全自动化汽车的推出速度会相对较慢。预计至2035年自动驾驶汽车全球总销量将由2025年的23万辆上升至1180万辆,而无人驾驶的全自动化汽车将于2030年左右面世。研究还预测,到2050年之后,几乎所有汽车或将是自动驾驶汽车或自动驾驶商务汽车。预测至2025年全球自动驾驶汽车销量将占汽车总销量的0.2%。至2035年,随着无人驾驶变成现实,这一数字将上升到9.2%。2025年自动驾驶汽车电子技术将使汽车售价上升7000美元至1万美元(约合人民币42373元至60533元)不等,至2030年和2035年则会分别回落至5000美元和3000美元。

硬件平台

参赛队伍利用当下流行的硬件平台自行搭建赛车。

1.1.控制

当前比较流行的开源智能硬件平台有Arduino、树莓派(RaspberryPi)、ESP8266等。

Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduinoIDE).她适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境( donProcessing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash,Processing,MaxMSP)来实现。你可以自己自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载.硬件参考设计(CAD文件)也是遵循availableopen-source协议,你可以非常自由地根据你自己的要求去修改它们。

树莓派是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一个10/100以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。树莓派可采用系统基于Linux的Raspbian系统或者微软公司的Windows10IoT系统。

ESP8266芯片使用了3.3V的直流电源,体积小,功耗低,支持透传,通讯稳定,而且价格超低,其中包括ESP8266-01、ESP8266-02,ESP8266-03等等。它们使用的核心芯片都是相同的,不同之处就是引出的引脚不同,而且有的系列对核心芯片还加了金属屏蔽壳,有的可外接陶瓷天线等。ESP8266官方提供的rom主要有两个,一个是支持at命令修改参数的at系列rom,使用此rom时,可以使用at命令来设置芯片的大部分参数,同时也可将芯片设置为透传模式,这样ESP8266就相当于在互联网和UART之间架起了一座桥梁。另一个就是物联网的rom了,此rom可以通过命令来控制ESP的部分GPIO,而且ESP8266也可以采集一些温湿度传感器的数据,然后发送到网络。ESP8266真正魅力在于允许用户自己编写rom,不仅可以实现数据传输功能,还可控制建立wifi热点,或者作为wifi客户端连接到某指定路由器,同时还可编程控制所以的gpio,作为物联网数据传输模块的极佳选择。

1.2.电机驱动

赛车的动力+驱动采用L298N电机驱动板模块+直流电机(例如:TT直流减速电机)

1.3.传动系统

自行设计

1.4.转向系统

自行设计

1.5.传感器

各参赛队伍根据自身的硬件和软件算法选择安装光感、距离传感器、激光雷达等。

软件平台

根据选用的硬件平台各参赛队伍自行选择软件开发平台。如下列举几个开发平台(不限于以下平台)。

1.使用Arduino硬件平台构建的智能赛车,可以使用Arduino编程语言进行开发;

2.使用树莓派构建的赛车,可以在Raspbian系统下使用Python进行开发;

3.支持Linux操作系统的硬件平台可以使用ROS(RobotOperationgSystem);

4.使用ESP8266模块构建的智能赛车,可以采用RaaS(Robotasaservice)的方式进行控制;

5.使用STM32构建的智能赛车,既可以采用本地控制,也可以采用RaaS的方式进行控制。

智能赛车的软件开发范围广泛,可以采用多种嵌入式开发或者专用的开发环境(如图形化编程工具),从而简化智能赛车控制的复杂度。当软件功能非常复杂时,需要采用通用编程语言(如VIPLE,C/C++,Java,Python等)去实现。

因此,智能赛车软件开发既可以从简单的图形化编程入手,也可以从基础的编程语言入手。既可以使用真实的智能赛车为平台,也可以使用虚拟化的智能赛车为运行平台。本命题的智能赛车方向综合考虑各类开发方式,制定了合理快捷的开发途径,可有效提高参赛者机器人软件开发的水平。

命题方向及设计要求

4.1.比赛方式

比赛要求各参赛队伍独立设计、开发、制造一款智能赛车,在比赛的规定赛道(如下图)上进行追逐赛。两队参赛赛车分别从各自出发区出发,逆时针行驶。赛车必须是基于算法或者人工智能自主驾驶,不能借助人力遥控。

4.2.评比方式

比赛采取两两淘汰制,最终决出名次。每场比赛由裁判判决胜负,判决依据以下:

1.任何一方追上(车头触碰到对方)另一方即判定获胜。

2.任何一方冲出赛道(触碰内围墙或者外围墙)即判定对方获胜。

3.如果三分钟内参赛双方的智能赛车都没有追上对方而且没有冲出赛道,则由裁判根据智能赛车的软硬件设计、赛场表现、创新程度等方面判决某方胜利。

4.3.比赛场地

赛道上画有方便光感识别的线条。内外赛道建有围墙,可以为距离传感器提供帮助。

Copyright © 2020-2023 山东省大学生软件设计大赛 版权所有