文章目录


🧩 一、基础准备

在研究路径规划前,需要具备以下基础:

1. 数学基础

  • 线性代数(矩阵运算、齐次变换)
  • 微积分(曲线、梯度)
  • 概率与统计(用于不确定性环境)
  • 优化理论(梯度下降、凸优化)

推荐:

  • 《线性代数及其应用》(David C. Lay)
  • 《最优化理论与方法》(吴赣昌)

2. 机器人学基础

掌握运动学与动力学模型:

  • 刚体运动(SE(3)、旋转矩阵、四元数)
  • 正/逆运动学
  • 里程计、差速模型、Ackermann模型

推荐教材:

  • 《Introduction to Robotics: Mechanics and Control》— John Craig
  • 《Modern Robotics: Mechanics, Planning, and Control》— Kevin Lynch(配套Coursera课程)

🚗 二、路径规划与避障算法体系

可以按层次逐步掌握(从经典到智能算法):

1. 经典确定性算法

适用于静态、已知地图:

  • 图搜索类算法

    • Dijkstra、A*、D*、D* Lite
  • 采样类算法

    • PRM(Probabilistic Roadmap)
    • RRT / RRT*(快速随机树)
  • 优化类算法

    • Potential Field(势场法)
    • Elastic Band / CHOMP / TrajOpt

重点理解:

  • 各算法的原理、优缺点、时间复杂度
  • 连续空间 vs 离散空间

2. 动态环境与避障算法

  • 动态窗口法(DWA, Dynamic Window Approach)
  • TEB(Timed Elastic Band)
  • VFH(Vector Field Histogram)
  • MPC(Model Predictive Control)避障

这些多用于移动机器人(如ROS导航)。


3. 智能与学习型算法

(当环境复杂或非结构化时)

  • 进化算法(遗传算法、粒子群算法)

  • 强化学习(RL)路径规划

    • DQN、PPO、SAC 等方法
    • 在Gym/ROS中训练自主导航智能体
  • 深度强化学习 + 模拟器

    • Gazebo + ROS + RL
    • PyBullet / Isaac Gym / Webots 等仿真平台

🧠 三、仿真与工具平台

1. ROS(Robot Operating System)

  • ROS 1 / ROS 2 基础(Publisher-Subscriber、TF、rviz、Gazebo)
  • Navigation Stack(move_base、costmap、local planner)
  • 可实践算法:A*、DWA、TEB、AMCL定位

资源:

  • 官方教程:wiki.ros.org
  • B站搜索「ROS导航教程」或「古月居ROS」

2. 仿真平台

工具 特点
Gazebo ROS官方推荐,功能全面
Webots 轻量、跨平台、支持Python/C++
CoppeliaSim (V-REP) 支持多机器人仿真
MATLAB/Simulink 适合算法原型验证

建议:

  • 初学者先用 MATLAB 或 Python (matplotlib + numpy + shapely) 实现 A*、RRT。
  • 然后在 Gazebo + ROS 中集成实际机器人模型仿真。

🔬 四、系统学习路线建议

阶段 目标 推荐资源
阶段1:数学与基础机器人学 理解坐标变换与运动学 《Modern Robotics》教材与课程
阶段2:经典规划算法 掌握A*、RRT等算法原理并编程实现 Python + matplotlib仿真
阶段3:动态避障与ROS导航 掌握DWA/TEB在ROS中的实现 ROS Navigation Stack
阶段4:智能算法与强化学习 用RL解决非结构化场景路径规划 PyTorch + Gym + Gazebo
阶段5:综合项目实践 实现完整的自主移动机器人 SLAM + 路径规划 + 控制

🧰 五、推荐资料与项目

  • 📘 《Planning Algorithms》— Steven M. LaValle(强烈推荐)

  • 📘 《Probabilistic Robotics》— Sebastian Thrun(SLAM + 规划)

  • 🧠 课程:

  • 💻 开源项目:

    • ROS Navigation Stack
    • OMPL(Open Motion Planning Library)
    • MoveIt!(机械臂规划)
    • Navigation2(ROS2版本)

🚀 学习策略

  1. 理论 + 实践并行:学完一个算法就立刻写代码或仿真。
  2. 从2D → 3D → 真实机器人:逐步扩展。
  3. 多看他人项目:GitHub 搜 “ROS Navigation”、“RRT path planning”。
  4. 定期总结算法间的差异与适用场景

ROS + Python + 移动仿生机器人

🧭 总体目标

最终目标:

能独立在 ROS 环境中,用 Python 实现机器人路径规划与避障(如 A*、RRT、DWA、TEB),并在 Gazebo 仿真中运行一个移动仿生机器人模型(四足或轮足)。


🪜 阶段一:打牢基础(1–1.5 个月)

🎯 目标:

理解机器人运动模型,掌握 ROS 基础操作,用 Python 做简单仿真。

📘 学习内容:

1. 机器人学与运动学基础
  • 机器人坐标变换(齐次变换矩阵)
  • 差速模型与 Ackermann 模型(车式机器人)
  • 四足机器人的运动特性(步态与姿态)

推荐资源:

  • Kevin Lynch《Modern Robotics》前3章(有Coursera免费课程)
  • Python实现小车运动仿真:PythonRobotics

2. ROS & Gazebo 入门(Python接口)
  • ROS 文件系统、Publisher/Subscriber、TF、launch 文件
  • Gazebo 仿真环境搭建
  • RViz 可视化、机器人URDF模型加载
  • 简单控制节点编写(订阅cmd_vel、发布odom)

练习项目:

  • 控制仿真机器人在Gazebo中按指定路径移动
  • 了解TF坐标变换和激光雷达(LaserScan)数据

资源:


🧮 阶段二:路径规划核心算法(1.5–2个月)

🎯 目标:

用 Python 实现并理解路径规划的主流算法,并能在仿真中运行。

📘 主要算法路线:

类型 算法 特点
图搜索 Dijkstra、A*、D* Lite 网格环境下最短路径
采样 PRM、RRT、RRT* 复杂连续空间
优化 Potential Field、Elastic Band 平滑避障路径

🧠 学习顺序建议:

  1. A*:从最基础的路径搜索开始(Python绘制网格+障碍物)
  2. RRT / RRT*:学习采样法,解决连续空间路径规划
  3. Potential Field:理解避障思想
  4. 路径平滑(B样条 / Bezier曲线)

💻 实践练习:

  • 在 Python 中使用 matplotlib 可视化路径规划
  • 结合 Gazebo 地图测试A*结果(用 ROS 的 nav_msgs/Path 发布)
  • 在 ROS + Python 节点中调用算法进行实时路径规划

推荐仓库:


🚧 阶段三:动态避障与 ROS Navigation(1.5 个月)

🎯 目标:

让机器人在 ROS 中实现自主导航与动态避障。

📘 学习内容:

1. ROS Navigation Stack
  • move_base 框架
  • 全局规划器(global_planner)
  • 局部规划器(DWA / TEB)
  • costmap、amcl 定位
2. 避障算法原理
  • DWA(Dynamic Window Approach):局部速度空间采样避障
  • TEB(Timed Elastic Band):轨迹优化避障
  • 传感器融合(激光雷达 + 里程计)

练习项目:

  • 在 Gazebo 中加载 TurtleBot3 / 自定义仿生机器人模型
  • 使用 move_base 完成自动导航(指定目标点)
  • 修改 DWA 参数,观察避障效果变化

资源:

  • 官方导航教程:Navigation Stack
  • B站搜索 “ROS DWA 教程”、“TEB Planner 教程”

🧠 阶段四:进阶与仿生机器人扩展(2–3 个月)

🎯 目标:

理解更高级算法与强化学习路径规划,拓展到仿生机器人。

📘 可选方向:

1. 智能算法
  • 强化学习 (DQN, PPO) 做路径决策
  • 用 PyBullet / Isaac Gym 进行训练
2. 仿生机器人控制
  • 四足机器人步态规划(中央模式生成器 CPG)
  • 结合视觉导航(OpenCV + SLAM)
3. 项目实践方向

可选项目例子:

  • “四足机器人在复杂地形中自主导航”
  • “强化学习路径规划+避障”
  • “ROS2 + Gazebo 机器人群体协同路径规划”

⚙️ 阶段性成果目标

阶段 实践成果
阶段1 在Gazebo中控制机器人移动
阶段2 Python中实现A*、RRT仿真可视化
阶段3 ROS中运行DWA/TEB完成自主导航
阶段4 设计一个仿生机器人导航项目(科研或比赛级别)

💡 额外建议

  1. 每学完一个算法,就画图+仿真可视化。
  2. 多看GitHub项目(搜索“path planning ROS Python”)。
  3. 多参与比赛(如RoboMaster、ROS竞赛)巩固实战经验。
  4. 写总结笔记:算法公式、优缺点、参数调优记录。

📚 入门教材 → 🧠 系统课程 → 💻 实践代码资源。


🧩 一、核心学习目标(你需要掌握的内容)

机器人学与运动学基础主要包括:

  1. 坐标系与位姿表示

    • 齐次变换矩阵
    • 旋转矩阵 / 四元数 / 欧拉角
  2. 运动学

    • 正运动学(Forward Kinematics, FK)
    • 逆运动学(Inverse Kinematics, IK)
    • 雅可比矩阵(Jacobian)与速度关系
  3. 差速驱动与仿生运动模型

    • 差速小车模型、Ackermann转向
    • 四足/多足机器人腿部运动几何
  4. 动力学(可选进阶)

    • 拉格朗日方程、牛顿-欧拉法
  5. 轨迹规划(关节空间/笛卡尔空间)


📘 二、推荐教材与课程(循序渐进)

📗 1. 《Modern Robotics: Mechanics, Planning, and Control》

💡 这是当前国际上最系统、最易懂的机器人学教材之一,强烈推荐!


📙 2. 《Introduction to Robotics: Mechanics and Control》(John Craig)

  • 更传统的教材,公式推导严谨。

  • 内容覆盖运动学、动力学、控制。

  • 推荐阅读章节:

    • 第2章:坐标变换
    • 第3章:正运动学
    • 第4章:逆运动学
    • 第5章:雅可比矩阵

📘 适合想系统理解数学推导的同学。


📘 3. 《Robotics, Vision and Control》(Peter Corke)

🚀 特点:非常适合想“边学边做仿真”的人。


🎥 三、优质课程与视频(中文/英文)

🧠 中文教程

来源 内容 推荐理由
B站:古月居《现代机器人学》系列 跟Kevin Lynch教材同步讲解 中文版+代码示例
B站:古月居《ROS机器人学基础》 ROS中的坐标变换、TF、URDF 理论+工程结合
B站:王亮老师《机器人学导论》 北航课程录像 讲解透彻、含例题推导

🌍 英文课程

平台 课程 说明
Coursera Modern Robotics Specialization 北西大学官方课程(Kevin Lynch本人讲授)
MIT OpenCourseWare Robotics: Science and Systems 偏研究导向,适合进阶
ETH Zurich Robotics: Perception and Control 高质量课程视频+配代码

💻 四、实战练习建议(Python方向)

练习 1:运动学基础

  • 实现 2R / 3R 机械臂的正运动学
  • 输入关节角 → 输出末端坐标
  • 使用 numpy 实现齐次变换
  • 可视化工具:matplotlibroboticstoolbox-python

练习 2:逆运动学

  • 实现简单几何逆解
  • scipy.optimize 做数值求解
  • 检查多解与奇异性

练习 3:雅可比矩阵

  • 推导并验证速度映射关系:

    x ˙ = J ( q ) q ˙ \dot{x} = J(q) \dot{q} x˙=J(q)q˙

  • 在 Python 中验证不同姿态下的雅可比变化。

练习 4:ROS + TF 实践

  • 使用 tf2_ros 发布坐标变换
  • 在 RViz 中可视化基座、机械臂、末端坐标系变化。

🧠 五、学习顺序建议(3步打牢)

阶段 内容 工具 目标
1️⃣ 理论入门 阅读《Modern Robotics》前3章 + 视频 理解SE(3)、运动学基础
2️⃣ 编程实践 使用 roboticstoolbox-python 实现2R/3R机械臂 Python + matplotlib 实现正/逆运动学仿真
3️⃣ 工程应用 在 ROS + Gazebo 建立 URDF 模型 + TF ROS + RViz 将运动学模型嵌入机器人仿真

Python + ROS + 移动仿生机器人


🤖 机器人运动学入门学习计划表(4周)

🎯 总体目标

4周后,你将能够:

  • 理解机器人运动的数学基础(旋转矩阵、齐次变换、正/逆运动学)
  • 掌握机械臂和移动机器人的基础运动模型
  • 用 Python 实现运动学仿真(含可视化)
  • 在 ROS 中构建简单 URDF 模型并用 TF 发布坐标变换

📆 第1周:坐标变换与位姿表示基础

🎯 目标

理解机器人运动的“语言”——坐标系、旋转与平移。

📘 理论学习

  • 《Modern Robotics》第2章(Configuration Space, SE(3))

  • 内容要点:

    • 坐标系与向量变换
    • 旋转矩阵、欧拉角、四元数
    • 齐次变换矩阵 T = [ R ∣ p ] T = [R|p] T=[Rp]
    • 位姿复合与逆变换

💻 实践任务

  • 使用 Python + NumPy 实现:

    • 向量在不同坐标系间的变换
    • 构建与分解齐次变换矩阵
  • 可视化旋转效果(matplotlib 3D)

参考项目:
👉 PythonRobotics - rigid_body_motion
👉 modern_robotics.py 库中 TransInv()RotInv() 函数

🔧 ROS 练习

  • 在 ROS 中使用 tf2_ros 发布两个坐标系(base_link → sensor_frame)
  • 在 RViz 中可视化坐标系变化

📆 第2周:正运动学(Forward Kinematics)

🎯 目标

理解并能计算给定关节角时末端位姿。

📘 理论学习

  • 《Modern Robotics》第3章(Rigid-Body Motions)
  • Craig 第3章(Forward Kinematics)
  • 学习 D-H 参数(Denavit–Hartenberg Convention)定义
  • 推导 2R、3R 机械臂的正运动学方程

💻 实践任务

  • 用 Python 实现:

    • 输入关节角 → 输出末端坐标
    • 画出机械臂在不同姿态下的连杆位置(matplotlib 3D)
  • 使用 roboticstoolbox-python

    from roboticstoolbox import DHRobot, RevoluteDH
    # 定义机械臂并计算末端位姿
    
  • 理解 D-H 参数与齐次变换的关系。

🔧 ROS 练习

  • 创建一个简单机械臂 URDF 模型(2R)
  • 使用 RViz 显示并验证正运动学变化(Joint State Publisher + RViz)

📆 第3周:逆运动学与雅可比矩阵

🎯 目标

理解如何从目标末端位置计算关节角,以及关节速度与末端速度的关系。

📘 理论学习

  • 《Modern Robotics》第5章:Inverse Kinematics

  • Craig 第4–5章

  • 内容重点:

    • 几何法求逆解(2R/3R)
    • 数值法(使用 scipy.optimize
    • 雅可比矩阵 J ( q ) J(q) J(q) 及奇异性

💻 实践任务

  • 用 Python 实现:

    • 2R机械臂逆解
    • 数值迭代法(牛顿-拉夫森)求解IK
    • 验证雅可比矩阵推导正确性
  • 使用 roboticstoolbox-python 自动求解IK并验证结果。

🔧 ROS 练习

  • 使用 tf2_ros 动态发布机械臂末端坐标(随关节角变化)
  • RViz 可视化“末端跟踪路径”

📆 第4周:移动机器人运动学与综合仿真

🎯 目标

学习移动仿生机器人的运动模型,并在仿真中实现简单运动控制。

📘 理论学习

  • 差速驱动模型(Differential Drive)

    x ˙ = v cos ⁡ θ ,   y ˙ = v sin ⁡ θ ,   θ ˙ = ω \dot{x} = v \cos\theta, \ \dot{y} = v \sin\theta, \ \dot{\theta} = \omega x˙=vcosθ, y˙=vsinθ, θ˙=ω

  • Ackermann转向模型(车式机器人)

  • 四足机器人基本步态(步态规划概念)

参考:

  • 《Probabilistic Robotics》第2章(运动模型)
  • PythonRobotics 仓库中 “kinematics” 目录

💻 实践任务

  • Python仿真差速机器人轨迹:

    • 输入线速度 v、角速度 ω
    • 模拟路径运动轨迹
    • 可视化轨迹(matplotlib)
  • 结合路径规划(简单A*路径点)实现轨迹跟踪。

参考仓库:
👉 PythonRobotics - MotionModel

🔧 ROS 练习

  • 使用 turtlebot3_gazebo 模型
  • 在 Gazebo 中运行差速模型并发布 /cmd_vel 控制
  • RViz 中查看 odom、tf 变化

🧠 补充资源汇总

类型 资源 链接
教材 Modern Robotics modernrobotics.northwestern.edu
视频 古月居《现代机器人学》 B站
工具 Robotics Toolbox for Python GitHub链接
代码 PythonRobotics https://github.com/AtsushiSakai/PythonRobotics
ROS模型 TurtleBot3 模拟环境 https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/

✅ 最终成果(4周后)

  • 能推导和实现正/逆运动学(Python)
  • 能构建简单机器人模型(URDF)
  • 能在ROS + Gazebo中运行差速机器人并验证运动模型
  • 为后续路径规划与避障算法打下坚实数学与编程基础

Logo

助力合肥开发者学习交流的技术社区,不定期举办线上线下活动,欢迎大家的加入

更多推荐