CommonRoad介绍与安装

CommandRoad是德国慕尼黑大学开发了一个自动驾驶motion planning算法的Benchmark。其提供了环境、车辆动力学模型等,可以对motion planning算法进行测评,同时可以进行强化学习训练。文章根据论文《CommonRoad Composable Benchmarks for Motion Planning on Roads》和其官网信息对其进行介绍和安装说明。

1. CommonRoad介绍

motion planning需要车辆动力学模型、路网、动静态障碍物、测评函数等,但是提供这字额信息需要很长的篇幅,因此发表的文章只提供一些关键信息,导致很难对这些方法进行复现,然而可复现性对科学研究至关重要。CommonRoad可以提供motion planning所需要的信息,帮助研究者提升工作效率。其中场景信息有真实数据,也有人工制作的危险场景数据。
结果的可复现性是科学的基石。然而由于篇幅限制或者作者认为没有必要,许多发表文章没有提供道路上的障碍物细节等,对于这些方法的复现带来了很多困难,因此一个Benchmark非常重要。CommonRoad的重要性表现在:

  • 之前的benchmark是为室内机器人抓取的,而CommonRoad是为自动驾驶设计的;
  • 不同研究组的数据格式不同,一些数据集不公开,有些数据集数据不全;
  • 一些规划算法库不是针对自动驾驶做了benchmark;
  • 自动驾驶方面有视觉的KITTI和定位的Open SLAM,没有决策规划方面的benchmark;

CommonRoad的优势表现在:

  • 可复现;
  • 模块化;
  • 覆盖典型工况以及各种复杂工况;
  • 轻量化,多平台;
  • 开源;
  • 与算法解耦;

1.1 Benchmark ID

CommonRoad benchmark由车辆模型、评价函数和场景组成,可以方便地组合构造。benchmark的ID可以用下面的形式表示:
B = M : C : S (1) B = M : C : S \tag{1} B=M:C:S(1)
benchmark ID = 车辆模型 : 评价函数 : 场景。开发者可以添加模型、测评函数和场景,此时添加的模块名称会变为IND,也可以修改commonroad提供的模块,此时模块名称会增加前缀M-。
当采用多车协同决策规划时,ID是 n × n n \times n n×n维的,可以对不同的被控车辆选择不同的车辆模型和测评函数,形式如下:
B = [ M 1 , ⋯   , M n ] : [ C 1 , ⋯   , C n ] : C − S (2) B = [M_1, \cdots, M_n ] : [C_1, \cdots, C_n] : C-S \tag{2} B=[M1,,Mn]:[C1,,Cn]:CS(2)

1.2 车辆模型

纵向动力学模型没有特殊的,但是提供了四种横向动力学模型:质点模型,不考虑滑移角的二自由度自行车模型,考虑滑移角的二自由度自行车模型和考虑簧上质量、簧下质量等轮胎垂向载荷的魔术公式的二自由度自行车模型。四个模型依次越来越复杂,且复杂模型中包含了简单模型的,模型精度也越来越高。

1.3 评测指标(cost function)

CommonRoad提供了标准的,常见的可以加权组合的评测指标,根据前文的描述,user可以添加新的cost function,论文没有介绍。
CommandRoad提供的标准的测评函数有:

  • 规划时间;
  • 加速度;
  • 加加速度;
  • 车辆转向角;
  • 车辆转向角速率;
  • 能量消耗;
  • 车辆航向变化率;
  • 车道偏离距离;
  • 巡航速度偏离;
  • 航向偏离;
  • 碰撞安全;
  • 规划路径长度;
  • 与规划终点的偏离;

1.4 场景

Scenario包含路网、障碍物和ego vehicle等信息,使用XML格式,数据结构如下图。

CommonRoad介绍与安装_第1张图片

路网由左边界(点和车道线类型)、右边界、前序、后序、左侧相邻车道、右侧相邻车道和交通规则(通行方向、限速等)组成。采用笛卡尔坐标。需要注意的是不提供车道中心线。
CommonRoad介绍与安装_第2张图片

动态障碍物除了提供运动轨迹外,还根据障碍物行驶的不确定性提供box、概率分布。
CommonRoad介绍与安装_第3张图片

  • 确定性行为的occupancy是每个预测时刻的box;
  • 不确定性行为的occupancy是使用SPOT算法计算每个预测时刻的box,由于行为的不确定性,随着预测时刻增大,box增大;
  • 不确定随机行为可以看作是提供多个不确定行为,同时提供他们的概率;

1.5 Ego Vehicle

Ego Vehicle包含初始状态和一个或者多个目标,目标可以是点、区域或者lanelet,如果有多个目标,则隐式的假设必须达成其中的一个目标,从而可以实现超车或者跟车等。

2. CommonRoad安装

2.1 Ubuntu20.04

如果您的电脑系统是Ubuntu20.04,那么您可以执行下面命令安装CommonRoad的基础模块,不包括强化学习模型。

pip3 install commonroad-all

2.2 Ubuntu18.04

如果您的电脑系统是Ubuntu18.04,那么您可以执行上面命令安装CommonRoad的基础模块,您可能会遇到一些问题。
如果您遇到问题:

Could not find a version that satisfies the requirement sumocr>=2022.1 (from commonroad-all) (from versions: 2021.1, 2021.2, 2021.3, 2021.4, 2021.5)
No matching distribution found for sumocr>=2022.1 (from commonroad-all)

这里是引用

您需要单独安装各个模块:

pip3 install commonroad-io
pip3 install commonroad-drivability-checker
pip3 install commonroad-vehicle-models
pip3 install commonroad-route-planner
pip3 install sumocr

如果您遇到下面问题:

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-izjldkk1/pyproj/

您可以执行命令:

sudo python3 -m pip install --upgrade --force pip
sudo pip install setuptools==33.1.1

如果您遇到下面问题:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
launchpadlib 1.10.6 requires testresources, which is not installed.

您可以执行:

python3 -m pip install launchpadlib

你可能感兴趣的:(Auto,Driving,人工智能,机器学习,算法)