配套代码实践
AL-iLQR Pro 配套代码实践
面向《时空联合规划》专栏的进阶工程版本,帮助你从"看懂文章"进一步走到"真正把求解器搭起来"。
演示视频
实时求解、可视化交互、闭环仿真效果展示
适合谁
如果你已经在阅读专栏,并希望配合更完整的工程代码一起实践,这一版本会更合适。
面向教程专栏配套的完整工程实践版本
更系统的模块组织,便于直接对照文章落地
覆盖约束建模、求解流程与工程化细节
适合作为继续迭代自己规划器的基础工程
功能模块一览
42 个源文件,三大核心模块完整覆盖算法到工程。每一项都有对应可运行的 demo。
LinearPointMassModel最简动力学,state 2 / ctrl 1,验证框架基础设施
dynamicsUnicycleModel单轮车运动学,state 3 / ctrl 2(v, ω)
dynamicsKinematicBicycleModel核心
state [x,y,ψ,v],ctrl [a,δ],后轴规划原点
dynamicsQuadraticCost½(x-xᵣ)ᵀQ(x-xᵣ) + ½(u-uᵣ)ᵀR(u-uᵣ),通用二次型
costCompositeCostFunction多项代价求和,各代价独立建模后统一接入
costControlBoxConstraint控制量盒形约束 u∈[lb,ub],输出 2×ctrl_dim 个不等式
constraintTerminalGoalConstraint终端状态等式约束 x_N = x_goal
constraintFiniteHorizonLQRSolver倒序 Riccati 递推,LDLT 分解反馈增益 K_k
solverILQRSolver核心
差分展开 → Backward Pass(Cholesky 正则化)→ Forward Pass(Armijo 线搜索)
solverAugmentedLagrangianKnotCostAL 罚项:等式 λᵀc+½μ‖c‖²,不等式投影拉格朗日
solverAugmentedLagrangianProblemConstrainedOCP → 无约束子问题,管理全部 ALKnotCost
solverALILQRSolver核心
外层循环:固定 λ,μ → 驱动 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
配套专栏文章
《AL-iLQR:时空联合规划》专栏共 6 篇,代码实践与文章章节一一对应
购买流程说明
- 填写你的 GitHub 用户名
- 选择支付方式并完成付款
- 系统自动邀请你到代码仓库
- 前往 GitHub 接受邀请即可访问
用户评价