规划部分
1、DependencyInjector类代码:
modules\planning\common\dependency_injector.h实现,无.cc文件。
planning模块依赖的输入数据的注入类。从代码来看DependencyInjector类主要是实现:将planning所有涉及到的相关信息都集中存放到这个类里车辆状态,规划历史数据,障碍物历史状态信息等。
DependencyInjector类
2、CanBus模块
根目录下的Canbus模块,其实是Chassis底盘控制模块,主要的作用是反馈车当前的状态(速度、航向、yaw_rate等信息),并且发送控制命令到车线控底盘,其底层实现基于 ’ drivers/canbus驱动模块。此处的Canbus模块是车和自动驾驶软件之间的桥梁,通过canbus驱动(drivers/canbus)来实现车身信息发送给apollo上层软件,同时接收控制命令,发送给汽车线控底盘实现对车的控制。
CanBus模块
3、std::lock_guard和std::mutex 的用法
功能介绍
二者均属于C++11的特性:
std::mutex属于C++11中对操作系统锁的最常用的一种封装,可以通过lock、unlock等接口实现对数据的锁定保护。
std::lock_guard是C++11提供的锁管理器,可以管理std::mutex,也可以管理其他常见类型的锁。
std::lock_guard的对锁的管理属于RAII风格用法(Resource Acquisition Is Initialization),在构造函数中自动绑定它的互斥体并加锁,在析构函数中解锁,大大减少了死锁的风险。
C++ RAII典型应用之lock_guard和unique_lock模板
3.1 std::any_of 、std::all_of和std::none_of
C++11新特性之十二:std::all_of, std::any_of, std::none_of
4、PlanningComponent/PlanningBase/NaviPlanning/OnLanePlanning
OnLinePlanning
5、论文部分代码
避障仅在路径DP中确定节点的代价函数时考虑,路径QP仅仅是平滑DP的路径(得到l,dl,ddl)
Apollo EM Planner(DP决策+QP优化)
Baidu Apollo代码解析之EM Planner中的DP Path Optimizer
路径规划的动态规划DP过程
Apollo 6.0的EM Planner (1):路径规划的动态规划DP过程
Apollo 6.0的EM Planner (2):路径规划的二次规划QP过程
Apollo planning之PiecewiseJerkPathOptimizer
Apollo 6.0的EM Planner (3):速度规划的动态规划DP过程
Baidu Apollo代码详细解析——EM Planner中的DP Speed Optimizer
Apollo 6.0 速度规划算法解析
Apollo路径-速度规划轨迹生成方法
Planning-Apollo速度决策规划
EM规划器:EMPlanner
Apollo中Lattice轨迹碰撞检测
Apollo 6.0的EM Planner (4):速度规划的二次规划QP过程
Baidu Apollo代码解析之轨迹规划中的轨迹评估代价函数
Apollo\modules\planning\common\ReferenceLineInfo类代码详解
apollo 二次规划算法解析(PiecewiseJerkPathOptimizer) :有趣的数学问题(二次规划的海塞矩阵构建成上三角/下三角,还是构建成对称矩阵比较好求解???)
apollo 二次规划算法解析(PiecewiseJerkPathOptimizer):在此文章结尾,从泰勒展开解读状态方程
如何解读 Apollo 6.0 QP(二次规划)算法?
6、五次多项式
百度apollo planning代码学习-Apollo\modules\planning\math\curve1d\QuinticPolynomialCurve1d类代码详解
7、轨迹的代价计算
TrajectoryCost类,cost怎么计算
TrajectoryCost类
8、笛卡尔坐标系和Frenet坐标系转换
Cartesian与Frenet坐标系转换公式推导
9、碰撞检测
【自动驾驶】碰撞检测算法
是否碰撞
10、Apollo common math模块解读
Apollo common math模块解读
11、叉积的含义
什么是叉积
向量点乘与叉乘的概念及几何意义
12、右手系转左手系、旋转矩阵转四元数、四元数的两种表达(Hamilton/JPL)
四元数
四元数运算与姿态变换
Eigen四元数的坐标变换和坐标系变换
13、判断点是否在多边形内
算法 - PNPoly处理点和多边形