学习openpolit差不多半个多月了,对整个项目也有了一定的了解。openpolit主要基于python语言编写。
OP进程之间通过ZMQ进行通信,使用订阅者和发布者模式,进程订阅其他进程的信息,进程一系列处理,将得到的结果发布出
去,让其他进程获取其处理结果。OP存储数据使用cap'n proto数据存储格式,可以进行快速读写。
分析OP整个项目可以分为以下几个模块:感知、决策、控制。其他的都是围绕支撑这个进行的。OP感知分为两块,一个是
视觉,一个是毫米雷达。视觉图像处理这块是闭源的,在vision模块中,雷达是开源的。在处理雷达数据中,融合了视觉模块返
回的模组数据,得带刹车和加速信息。控制系统,通过发生CAN信号对汽车进行控制,接受CAN信号实时查看汽车目前状态,对
汽车控制进行调整,分为启动、停车、人控、OP控车,根据不同的状态设置进行调整。控制分为横向控制和纵向控制,横向控制
通过CAN信号改变转向轴距(转向角度),对车进行左右方向控制。纵向控制分为两种,一种是控制刹车、油门系统进行加减
速,第二种是控制汽车里面的加速器进行加减速。决策系统主要是路径规划(plannerd),确认如何控制汽车,返回控制车辆计
划然后在控制系统中执行plan计划。目前更新最新的OP系统还是使用PID算法进行控制,通过雷达信息和汽车控制实时给路径规
划进行反馈修正汽车控制计划。此外图像和雷达数据处理后返回50个坐标点,然后将这50个坐标点计算出一条规划路径。通过这
三个模块向外延伸学习,学习CAN信号发送接受,进程之间的交互等。