论文部分内容阅读
自动驾驶是当前的研究热点,许多研究人员开始投入到自动驾驶算法的研究中。自动驾驶中一个核心的问题是自动驾驶车辆在各种环境下的可靠性,这与人身财产安全密切相关,因此对自动驾驶软件进行大量测试无疑是十分重要的。而鉴于上路测试高昂的经济和时间成本,一般在开发初期会采用仿真测试的方法,这可以有效提高算法软件开发的效率。现今市面上大多数交通仿真软件,是单机版本,难以灵活地接入不同驾驶算法,会削弱同机运行的驾驶软件的运算效率,还存在跨平台跨语言支持度不高、大规模仿真运算力不足、更换仿真软件代价大等问题,作为测试环境无法很好地满足研究人员的需求。为了解决这种现状,本文将交通仿真封装成网络服务,提出了一种基于C/S架构的仿真测试平台。在服务器搭建仿真环境,并以网络接口的形式接受客户端车辆仿真。考虑自动驾驶算法的需求,设计一套服务器与客户端的网络协议。本文的服务系统具有以下功能:1.驾驶客户端能通过网络协议在仿真环境中增加、删除和修改车辆,这样能允许不同的自动驾驶算法同时接入,且与开发平台和语言无关。2.服务器允许从红绿灯客户端接入交通信号控制逻辑。3.可以控制时间和天气的用户界面,具有稳定数量的服务器SUMO车辆。4.客户端控制服务器仿真流程的接口,满足强化学习客户端的训练需求。5.可视化客户端能连接服务器,在可视化客户端呈现交通画面,方便对测试结果的观察和监控。本文的服务系统有以下优势:1.通过将自动驾驶算法接入仿真测试平台,研究人员可以专注在算法研究上,不需要管理仿真环境的搭建,同时跨语言的特性使得研究人员可以使用任意语言进行研究代码开发而不受仿真软件的限制。2.从总体上看,C/S架构把计算力分布在不同机器上,使得进行大规模仿真时候,不会影响机器学习算法的运算效率。3.同时该仿真测试平台具有灵活性,能轻松地在同一仿真环境中接入多种不同自动驾驶车辆同时进行交互,无须每次接入新的驾驶算法都要修改代码。4.而且从整体系统而言具有计算伸缩性,无论服务器进行任何升级,例如更换仿真软件、更换编程语言、使用分布式仿真、仿真容量增长、地图规模加大等,服务器的接口是固定的,驾驶算法和客户端就不需要进行任何修改,大大减少了代码修改的时间和错误出现的可能。