首先第一篇初入Carla请见:https://blog.csdn.net/qq_39537898/article/details/115921745 第二篇深入Carla时间设置见:https://blog.csdn.net/qq_39537898/article/details/117190371
交通管理器(简称TM),其实感觉叫车辆管理器比较好,就是控制仿真世界里所有的车辆的。根据官方的介绍是:写在CARLA C++底层API里的。主要的功能目标呢就是为了构建像真实世界里的交通情况【我寻思着这也没法说真实就真实呀,比如超车 别车 等 再看看】用户可以设置自己的想要的行为方式,例如set specific learning circumstances [这里的学习环境是指场景设置吧 吧 吧] 每一个车辆管理器可以将其他车辆设置为自动模式,并添加进入自己的管理列表中
TM呢 是写在client这边的,也就是说如果你要设置在某个python的client中调用就行,这样直接能覆盖掉server那边的自动驾驶方式,因为TM这边是你可以进行设置的 这边的execution flow is divided in stages with independent operations and goals. [这里估计在说内核那边C++的设计了] 主要是这样好对应phase-related functionalities and data structures 以此提高计算的效率。每一个stage都是在不同的线程上运行的,通过我们上次说到的同步管理来进行stage之间的消息同步,注意此处的消息流是单方向的不是双向的
用户需要设置一些其他参数 以此实现控制自己的traffic flow方式,类似于车辆的行为模式,比如:
TM车辆管理的目的呢,也就是使得自己可以设置车辆的行为方式,以进行场景测试 [我默认就场景测试了]
这一块主要是前面引用参考中官方的英文翻译和知乎里的翻译摘取了 [更为详细的建议查看官方文档 里面有更多的超链],首先是这幅图,配合下面文字可能更清楚点
Vehicle Registry. 首先Server端的Lifecycle管理器(ALSM)会扫描simulation里所有的汽车、行人的信息,删除掉已经died的物体,然后Traffic Manager会把部分车辆注册到自己旗下(至于哪些会被选中是由用户决定的), 这些被选中的车辆的行为从此以后就会被该traffic manager控制了!(可以有多个Traffic manager同时存在,后面会详细讲述)
Related .cpp files: MotionPlannerStage.cpp