学习笔记13--Autoware开发平台

本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。
此专栏是关于《自动驾驶汽车平台技术基础》书籍的笔记.



2.Autoware开发平台

Autoware是日本名古屋大学开发的用于自动驾驶汽车的"一体化"开源软件;Autoware使用场景主要适用于城市道路,但可以涵盖高速公路等路况;

Autoware的系统技术框架如下图所示:
1

  1. 传感器模块

    • Autoware支持摄像头、LiDAR、IMU和GPS作为主要传感器;
    • 从技术上讲,只要提供了传感器驱动程序软件,几乎所有类型的摄像头,LiDAR、IMU和GPS都可用于Autoware;
  2. 计算模块

    1. 感知部分

      Autoware感知由定位、检测和预测组成;通过三维地图和SLAM算法结合GNSS和IMU传感器实现定位;检测部分基于摄像头和LiDAR数据利用融合算法和深度神经网络进行处理;预测是在定位和检测结果上完成;

      • 定位

        定位部分利用激光雷达扫描的点云数据及预先获取的三维地图信息计算车辆全局坐标系下的 ( x , y , z , r o l l , p i t c h , y a w ) (\rm{x,y,z,roll,pitch,yaw}) (x,y,z,roll,pitch,yaw)定位;使用正态分布变换(NDT)算法或最近点迭代(ICP)算法实现LiDAR扫描数据与三维地图的匹配;GNSS定位将NMEA消息从GNSS接收器转换为 ( x , y , z , r o l l , p i t c h , y a w ) (\rm{x,y,z,roll,pitch,yaw}) (x,y,z,roll,pitch,yaw)位置;dead_reckoner主要使用IMU传感器来预测车辆的下一帧位置,并插入lidar_localizer和gnss_localize的结果;

      • 检测

        • LiDAR检测:从三维激光雷达读取点云数据,并提供基于LiDAR的物体检测功能;该功能主要基于欧几里得聚类算法,该算法在地面上找到LiDAR扫描的聚类;
        • 图像检测:从摄像头读取图像数据,并提供基于图像的对象检测功能;主要算法包括R-CNN、SSD和Yolo,旨在执行单个DNN以实现实时功能;
        • 图像跟踪:为图像检测的结果提供跟踪功能;该算法基于Beyond Pixels,投影在图像平面上的结果通过融合工具投影并与三维空间中的雷达监测结果相结合;
        • 融合检测:读取激光扫描仪的点云数据和相机图像数据,从而在三维空间中实现更精确的物体检测;该过程必须先融合校准激光雷达和摄像头的位置;
        • 融合工具:将激光雷达检测结果与图像跟踪结果进行融合,具体是将图像检测部分的分类信息加入激光雷达检测到的点云的聚类结果中;
        • 目标跟踪:该部分预测基于上述目标检测来识别对象的运动;跟踪的结果可以进一步用于预测对象行为和估计对象速度;跟踪算法基于卡尔曼滤波器,同时支持粒子滤波算法;
      • 预测

        扫描二维码关注公众号,回复: 14537059 查看本文章
        • 运动预测:使用上述目标跟踪的结果来预测附近移动物体的未来轨迹;
        • 碰撞预测:使用运动预测的结果来预测本车是否会与周围移动物体发生碰撞;除了目标跟踪的结果,还需要历史轨迹和本车的速度信息作为输入数据;
        • 行为预测:使用与碰撞预测相同的输入信息来预测周围车辆是否会在本车前方超车或换道;
    2. 决策部分

      根据感知结果,Autoware进行驾驶行为决策,由有限状态机表示,以便选择适当的规划功能;

    3. 规划部分

      该模块的作用是根据感知和决策模块的结果制订全局任务和局部运动规划;全局任务通常在自动驾驶车辆启动或重启时制订,局部运动则根据状态变化随时进行更新;

      规划模块中主要包含以下任务:

      • 路由寻径:搜索到目的地的全局路径;该路线由道路网络中的一组交叉点表示;
      • 道路规划:结合路由寻径的结果搜索可行路径;这些路径由一组路径点表示,即多个路径点,每个路径点对应一条车道;
      • 路径点规划:可以用于生成目的地的一系列轨迹点;
      • 路径点制作:用于保存和加载手动制作的路径点;记录的路径点可以从指定的文件加载,以便运动规划模块订阅,并遵循该路径;

      运动规划主要包括:

      • 速度规划:从道路规划、路径点规划及路径点制作中订阅路径点以更新速度规划,从而根据周围的车辆和道路要素,进行加减速处理;
      • A ∗ {\rm A^*} A规划:实现混合状态 A ∗ {\rm A^*} A搜索算法,该算法生成从当前位置到指定位置的可行轨迹;
      • 轨迹规划:实现轨迹规划算法,该算法基于样条曲线、预定义参数表和ADAS Map信息在当前位置前方生成多个可行轨迹,主要用于避障和车道变换;
      • 路径点跟随:实现Pure Pursuit算法,该算法生成一组扭曲速度和角速度,以通过均匀的圆周运动将车辆移动基于给定路径点运动到目标路径点;扭曲速度和角速度将由车辆控制器或线控接口读取,最后自动控制车辆行进;
  3. 执行模块

    执行模块计算输出是一组速度、角速度、车轮角度、曲率;这些信息作为命令通过车辆接口发送给线控控制器;由线控控制器来控制车辆转向和加减速;

猜你喜欢

转载自blog.csdn.net/qq_39032096/article/details/127269341