早在半个多月前,华为诺亚方舟举办的DAI2020 SMARTS自动驾驶挑战赛已经结束了,一直没写总结,一方面是想等前五名的汇报ppt发出来,可是官方一直没有公布ppt,我也就拿当时参加DAI会议的录制视频作参考写了总结。
虽然比赛结果很可惜,没有拿到前五获奖,只取得了第七,但好歹也花费了2个月时间,不写点总结都对不起自己2个月的努力。
比赛介绍
比赛背景
为了推动自动驾驶的前沿研究,激发对驾驶中多智能体交互的研究,在今年的分布式人工智能大会(DAI 2020)上,华为诺亚方舟实验室和上海交通大学APEX数据与知识管理实验室联合举办自动驾驶挑战赛(DAI-2020 Autonomous Driving Competition),旨在以自动驾驶中的交互难题,激励人工智能算法和模型创新,助力强化学习(RL)在自动驾驶领域的应用,提升自动驾驶的决策性能。
比赛环境
基于华为自主研发的SMARTS (Scalable Multi-agent Reinforcement Learning Training School) 自动驾驶仿真平台。SMARTS作为首个支持MARL的自动驾驶仿真平台,将提供Simulator Core(快速且灵活地创建RL模拟环境)、Algorithm Library(集成主流的强化学习算法)、Multi-Agent Trainer(支持大多数多智能体训练范式)、Policy Zoo(支持对社会车辆的实例化)和 Scenario Studio(支持灵活的场景设置),方便参赛者在比赛过程中实现对车辆动力学行为的真实建模,并利用丰富的交通场景进行研究和应用。
华为诺亚方舟实验室在比赛后也开源了环境代码,有兴趣的可以去查看他们的官方github
以及他们的论文SMARTS: Scalable Multi-Agent Reinforcement Learning Training School for Autonomous Driving
比赛内容
我参加的是单智能体赛道,在单智能体赛道中,聚焦单智能体多车道巡航,参赛者需要训练模型控制一辆车完成复杂城市道路和车流下的智能驾驶。场景中包含直行道、路口、匝道、环岛等。车辆需要遵循预设的路线,在保证安全的前提下,尽可能快的从起点出发达到终点。比赛总共给出了9张地图,作为训练集,最后的提交结果还会有不同的测试地图,每张地图用4个不同的随机种子进行测试。
以下是官方demo给的状态空间和动作空间设计
状态空间
# To make car follow the waypoints
# distance from lane center
"distance_from_center": gym.spaces.Box(low=-1e10, high=1e10, shape=(1,)),
# relative heading angle from 10 waypoints in 50 forehead waypoints
"heading_errors": gym.spaces.Box(low=-1.0, high=1.0, shape=(10,)),
# Car attributes
# ego speed
"speed": gym.spaces.Box(low=-1e10, high=1e10, shape=(1,)),
# ego steering
"steering": gym.spaces.Box(low=-1e10, high