待补充 Robotisim/mobile_robotics_engineer

机器人 3/5 🧩 软硬件结合 已发布
Robotisim 172 Stars 未知 BOM 完整度: 0/5 教程完整度: 0/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 模型

模型名称文件名文件
底座 - Base Base.stl
底座 - UpperBase UpperBase.stl
lidar standoff lidar_standoff.stl
rpi standoff rpi_standoff.stl

能力画像

**记忆与知识检索**: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)的团队培训