待整理的杂项内容

来自MDCS wiki
Artheru讨论 | 贡献2023年12月28日 (四) 01:41的版本
跳到导航 跳到搜索

Simple

Simple现在允许多个小车可以发到互相冲突的终点,只要指定一个Escape路径。该Escape路线不会执行,只是用于告诉交管至少保留哪条路径来保证场景不会卡死。使用方法:carprogram的.Forecast方法增加了一个参数,可以传入EscapePlan

代码示例

此外小车调用AbstractCar.Reset方法时,也可以给一个escape路径(escape可选参数)。这样可以防止其他车因为不知道该小车后续如何运行而把刚初始化的小车堵死。举个例子而言:刚初始化的小车A在长巷道内,另外一台车B要进入巷道更深的地方。希望小车A初始化后立刻出来取货,那么应该给小车A附加一个escape路径去任意一个取货点,这样初始化后,即便上层业务还没有下发取货指令,B车也不会提前进入巷道导致A车堵死在巷道里。

Simple的站点交管方式:

交管计算时,会以以下顺序设置站点的计算方式:

  1. terminal:表示一个停靠终点站;定义为:入站和出站路线绝对不会冲突。该站点只能被一台车占用。
  2. sink:表示该站点无视交管通行矩阵中的冲突。(注:若同时具有terminal标记,仍然只能被一台车占用)
  3. mustFree:若某台车要占用该站点,那么mustFree里列举的站点必须不被占用。
  4. mutexes:若某台车要占用该站点,那么所有“包含至少一个相同mutexes数字”的站点都必须不被占用。
  5. carProgram规定的冲突:包络、优先级等。

Detour

Medulla

Clumsy