电脑基础 · 2023年4月19日

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

目录

  • 1 自动驾驶驶向何处?
  • 2 什么是运动规划?
  • 3 运动规划实战教程
  • 4 加入我们
  • 5 订阅需知

1 自动驾驶驶向何处?

自动驾驶,又称无人驾驶,是依靠计算机与人工智能技术在没有人为操纵的情况下,完成完整、安全、有效驾驶的一项前沿科技。

自动驾驶技术能够协调出行路线与规划时间,从而大程度提高出行效率,因此成为各国近年的一项研发重点。

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法
自动驾驶分为五个等级

  • L1辅助驾驶
    依靠自适应巡航释放双脚但双手不能离开方向盘驾驶员仍需操控汽车
  • L2半自动驾驶
    驾驶员需要持续监控汽车行驶情况
  • L3高度自动驾驶
    驾驶员无需持续监控汽车但遇到一些情况驾驶员需根据系统要求介入车辆行驶
  • L4更高级别的自动驾驶
    在例如开高速或进入停车场的情况下系统自动控制汽车驾驶员无需监控汽车
  • L5最高级别的自动驾驶
    无人驾驶,此时无需驾驶员

百度创始人、董事长兼CEO李彦宏在2022世界人工智能大会上指出,目前L2级自动驾驶技术已经可以实现大规模商业化,接下来将继续向L3、L4发力。

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

自动驾驶这项前沿技术的底层逻辑是什么呢?在自动驾驶技术栈中,主要分为感知决策规划控制三个模块。

感知模块就像是人的眼睛和耳朵,负责对外部环境进行感知,包含定位、建图、传感器融合等技术;控制模块就像人的手脚,负责将指令传达到电机、引擎,包含鲁棒控制、模型预测控制等技术;决策规划模块就像人的大脑,基于接收到的感知信息进行行为预测、决策,并生成指令传达给控制模块。

在决策规划中,有一类技术称为运动规划,那么什么是运动规划呢?

2 什么是运动规划?

运动规划(Motion Planning)以最优性为核心,在环境中给定起点和终点的条件下,规划机器人无冲突行进的状态序列。运动规划框架如下所示,主要包含路径规划与轨迹规划两大组件。

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法
那路径规划和轨迹规划有什么区别和联系呢?

  • 路径规划(Path Planning)

    以可达性为核心,基于路径约束(如障碍物),规划机器人首末位置间无冲突行进的最优路径序列。

  • 轨迹规划(Trajectory Planning)以稳定性和快速性为核心,基于运动学、动力学约束和路径序列,规划运动状态 以逼近全局路径。

一般地,路径规划的输入是全局静态环境,也称为全局规划(Global Planning);轨迹规划的输入是全局路径、动态环境和模型约束,通常在局部范围内进行动态避障和路径跟踪,也称为局部规划(Local Planning)

本专栏将重点介绍路径规划和轨迹规划技术,并且采用工程上常用的ROS C++以及仿真中常用的Python/Matlab三种语言对常见的规划算法进行实现,帮助读者理解原理。同时,辅以部分控制原理、传感技术、常见机器人运动学与动力学建模,弥补一些运动规划的底层知识,具体大纲如下

3 运动规划实战教程

🔥 专栏地址:运动规划实战精讲

🚀 第零章——自动控制原理

  • 控制原理 | Matlab控制系统仿真常用功能合集
  • 控制原理 | 图文详解PID控制算法(附Matlab仿真实验)
  • 控制原理 | 你真的分得清系统误差、随机误差和偶然误差吗?(含例题)
  • 控制原理 | 深刻理解傅里叶级数与傅里叶变换的关系
  • 控制原理 | 详细总结卡尔曼滤波原理+具体案例分析

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

🚀 第一章——常见机器人建模

  • 建模分析 | 图文详解D-H法(以SCARA机器人为例)
  • 建模分析 | 仿人机器人(五连杆、七连杆)拉格朗日动力学建模
  • 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真)
  • 建模分析 | 轮式移动机器人运动学建模(附Matlab仿真)

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

🚀 第二章——全局规划之图搜索

  • 路径规划 | 图解A*、Dijkstra、GBFS算法的异同(附C++/Python/Matlab仿真)
  • 路径规划 | 图解跳点搜索JPS算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解动态A*(D*)算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解LPA*算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解D* Lite算法(附ROS C++/Python/Matlab仿真)

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

🚀 第三章——全局规划之采样搜索

  • 路径规划 | 图解概率路图PRM算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解RRT算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解RRT-Connect算法(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解Informed RRT*算法(附ROS C++/Python/Matlab仿真)

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

🚀 第四章——智能算法

  • 路径规划 | 图解蚁群算法ACO(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解粒子群算法PSO(附ROS C++/Python/Matlab仿真)
  • 路径规划 | 图解遗传算法GA(附ROS C++/Python/Matlab仿真)

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

🚀 第五章——局部路径规划

  • 轨迹规划 | 图解动态窗口算法DWA(附ROS C++/Python/Matlab仿真)
  • 轨迹规划 | 图解人工势场APF算法(附ROS C++/Python/Matlab仿真)
  • 轨迹规划 | 图解TEB算法(附ROS C++/Python/Matlab仿真)

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

🚀 第六章——曲线与轨迹优化

  • 轨迹规划 | 图解直线插补、圆弧插补与多项式插补
  • 轨迹规划 | 图解贝塞尔曲线原理(Bezier)
  • 轨迹规划 | 图解B样条曲线原理(B-Spline)

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

🚀 第七章——趣味应用

  • 趣味应用 | 硬核,你见过机器人玩“密室逃脱”吗?(附代码)
  • 趣味应用 | 硬核,机器人只需5秒就跟踪上了爱心曲线
  • 趣味应用 | 硬核,这年头机器人都开始自学“倒车入库”了
  • 趣味应用 | 工程师的浪漫:用机械臂画一个爱心

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

4 加入我们

目前博主正在组建机器人技术交流群,群中成员是有明确共同目标,共同愿景的,这样才能共同成长。所以如果苦于闭门造车、无人交流,就请加入我们(下方名片),让我们一起从理论到实践攻克运动规划,为从事相关工作或科研打下基础!

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法
当然群里也配套长期更新的资源福利等你领取!

图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

5 订阅需知

  • 上面给出的是教程的大致大纲,后面可能会有顺序和内容的调整,但可以保证内容量只增不减
  • 各个算法基本都提供C++/Python/Matlab三个版本的实现,便于应对各种需求;但同时工程量较大,故后期会涨价
  • 更新频率为两周1更,篇篇精品

🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇