待补充
Robotisim/mobile_robotics_engineer
机器人
3/5
🧩 软硬件结合
已发布
项目简介
LEARNING PATH for Robotics Software Engineer . Theory , Programming and Research
Mobile Robotics Software Engineer 是一个面向机器人软件工程领域的系统性开源课程项目,由 robotisim 团队维护。该项目提供了一套从基础到进阶的完整学习路径,核心围绕 ROS2 和 C++ 展开,旨在帮助学习者掌握现代移动机器人开发中的关键技能。项目内容涵盖了移动机器人的创建、基于传感器的决策系统、目标驱动的控制算法、二维激光雷达的 SLAM 建图与定位、路径规划以及完整的导航堆栈。所有课程模块均支持在仿真环境和真实硬件上实践,源代码完全开源,并配有详细的讲解和作业任务,适合希望从理论走向实战的开发者。该项目解决了当前机器人教育中理论与实践脱节的问题,尤其适合那些希望系统学习 ROS2 并具备实际动手能力的工程师、研究人员或学生。通过结构化的模块设计和清晰的成果导向,学习者可以循序渐进地理解机器人如何感知环境、做出决策并执行运动。技术栈方面,项目以 ROS2 为核心框架,结合 C++ 进行底层算法实现,同时涉及传感器数据处理、控制理论、SLAM 算法和导航规划等关键技术。适用场景包括高校机器人课程教学、个人自学进阶、以及企业新员工的技能培训。项目采用 Creative Commons 非商业许可,鼓励学习者在非商业用途下自由使用和改编,但需保留原作者署名并采用相同许可发布衍生作品。
标签
项目特点
**系统性学习路径**:从移动机器人创建到完整导航堆栈,覆盖现代机器人开发全流程。
**ROS2 + C++ 核心栈**:所有课程模块基于 ROS2 和 C++ 实现,紧跟行业主流技术。
**仿真与真实硬件双支持**:代码可直接在 Gazebo 等仿真环境运行,也支持移植到真实机器人平台。
**开源且附带作业**:源代码完全开放,每部分配有讲解和作业任务,方便自测与巩固。
**解决理论与实践脱节**:强调动手实践,帮助学习者在真实场景中应用算法。
**社区维护持续更新**:由 robotisim 团队长期维护,项目活跃度较高。
技术规格
| 编程语言 | C++ (主要), Python (辅助) |
|---|---|
| 中间件 | ROS2 (Humble 或更新版本) |
| 仿真环境 | Gazebo (经典版或 Ignition) |
| 传感器支持 | 二维激光雷达 (LiDAR) |
| 建图算法 | SLAM (Gmapping / Cartographer) |
| 定位算法 | AMCL (自适应蒙特卡洛定位) |
| 路径规划 | Nav2 堆栈 (A* / DWA 等) |
| 控制算法 | PID 控制器, 目标驱动控制 |
| 操作系统 | Ubuntu 22.04 (推荐) |
| 硬件平台 | 支持差速驱动移动机器人 |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| Ubuntu 22.04 | 1 | — | 推荐操作系统 |
| ROS2 Humble | 1 | — | 机器人中间件 |
| Gazebo | 1 | — | 仿真环境 |
| C++ 编译器 (g++) | 1 | — | 编译工具 |
| CMake | 1 | — | 构建系统 |
| 差速驱动移动机器人底盘 | 1 | — | 可选,用于真实硬件实践 |
| 二维激光雷达 (LiDAR) | 1 | — | 可选,用于 SLAM 与导航 |
| 单板计算机 (如 Raspberry Pi) | 1 | — | 可选,运行 ROS2 节点 |
3D 模型
能力画像
**记忆与知识检索**:3/5 — 需要查阅 ROS2 文档和 API,但课程本身提供了详细讲解,降低检索负担。
**动手与操作**:4/5 — 大量仿真和硬件实操环节,需要动手搭建环境、调试机器人。
**编程与算法**:5/5 — 核心编程语言为 C++,涉及 SLAM、路径规划、PID 控制等算法实现。
**设计与建模**:3/5 — 需要设计机器人模型和传感器配置,但主要基于现有模板修改。
**实验与调试**:4/5 — 仿真和真实硬件上反复调试参数、排查错误,实验性强。
**协作与分享**:2/5 — 项目以个人学习为主,但可通过 GitHub 提交 Issue 或 PR 参与社区。
**学习与研究**:5/5 — 系统性课程设计,从基础到进阶,适合深度学习与研究。
**系统集成**:4/5 — 需要将 ROS2、传感器、控制算法、导航堆栈等集成到完整系统中。
项目图库
视频
所需技能
基础 C++ 编程能力(指针、类、STL)
了解 Linux 基本操作(命令行、文件系统)
熟悉 Git 版本控制基础
对机器人学基础概念有了解(坐标变换、运动学)
愿意阅读英文技术文档
有 ROS1 或 ROS2 基础更佳,但不是必需
适用场景
想系统学习移动机器人软件开发的在校学生或转行者
正在从 ROS1 迁移到 ROS2 的机器人工程师
需要快速搭建移动机器人导航原型的研发团队
对 SLAM、路径规划、自主导航感兴趣的爱好者
高校机器人相关课程的实践教学补充材料
准备参加机器人竞赛(如 RoboCup)的团队培训