配套代码实践

AL-iLQR Pro 配套代码实践

面向《时空联合规划》专栏的进阶工程版本,帮助你从"看懂文章"进一步走到"真正把求解器搭起来"。

演示视频
实时求解、可视化交互、闭环仿真效果展示
适合谁
如果你已经在阅读专栏,并希望配合更完整的工程代码一起实践,这一版本会更合适。
面向教程专栏配套的完整工程实践版本
更系统的模块组织,便于直接对照文章落地
覆盖约束建模、求解流程与工程化细节
适合作为继续迭代自己规划器的基础工程
功能模块一览
42 个源文件,三大核心模块完整覆盖算法到工程。每一项都有对应可运行的 demo。
LinearPointMassModel

最简动力学,state 2 / ctrl 1,验证框架基础设施

dynamics
UnicycleModel

单轮车运动学,state 3 / ctrl 2(v, ω)

dynamics
KinematicBicycleModel
核心

state [x,y,ψ,v],ctrl [a,δ],后轴规划原点

dynamics
QuadraticCost

½(x-xᵣ)ᵀQ(x-xᵣ) + ½(u-uᵣ)ᵀR(u-uᵣ),通用二次型

cost
CompositeCostFunction

多项代价求和,各代价独立建模后统一接入

cost
ControlBoxConstraint

控制量盒形约束 u∈[lb,ub],输出 2×ctrl_dim 个不等式

constraint
TerminalGoalConstraint

终端状态等式约束 x_N = x_goal

constraint
FiniteHorizonLQRSolver

倒序 Riccati 递推,LDLT 分解反馈增益 K_k

solver
ILQRSolver
核心

差分展开 → Backward Pass(Cholesky 正则化)→ Forward Pass(Armijo 线搜索)

solver
AugmentedLagrangianKnotCost

AL 罚项:等式 λᵀc+½μ‖c‖²,不等式投影拉格朗日

solver
AugmentedLagrangianProblem

ConstrainedOCP → 无约束子问题,管理全部 ALKnotCost

solver
ALILQRSolver
核心

外层循环:固定 λ,μ → 驱动 iLQR → UpdateDuals → 条件性 UpdatePenalties

solver
工程架构
全部类位于 my_al_ilqr 命名空间,清晰分层设计,每层只依赖下层,无循环依赖,任意模块可单独拔出验证。
UI / App
ImGui Frontend·tracker_test_ui
可视化 / 导出
TrajectoryCsv·ObstacleCsv·ALLogCsv
自动驾驶
AutodriveDemoScenario·GlobalGuidancePlanner·SLDPPlanner·PurePursuitTracker·GuidanceTracker·VehicleBicycleConfig·VehicleCircleApproximation·ConvexPolygon
求解器
ALILQRSolver·AugmentedLagrangianProblem·AugmentedLagrangianKnotCost·ILQRSolver·FiniteHorizonLQRSolver
问题建模
ConstrainedOptimalControlProblem·OptimalControlProblem
约束
ConstraintFunction·ControlBox·RoadBoundary·SpeedLimit·MultiCircleObstacle·LSEPolygon·PolygonCollision
代价
CostFunction·Quadratic·LaneTracking·GuidanceTracking·ControlRate·Composite
动力学
DynamicsModel·PointMass·Unicycle·KinematicBicycle
基础类型
Trajectory·Eigen::VectorXd·Eigen::MatrixXd

斜体 = 纯虚基类 · 自上而下为依赖方向 · 层间无循环依赖

C++17·Eigen3·Dear ImGui + OpenGL3·CMake ≥ 3.16

购买流程说明

  1. 填写你的 GitHub 用户名
  2. 选择支付方式并完成付款
  3. 系统自动邀请你到代码仓库
  4. 前往 GitHub 接受邀请即可访问
用户评价