山东大学 · 人工智能学院
课程资料下载
本课程以移动机器人为主要实验平台,围绕 ROS2 开展感知、定位、规划、控制与系统集成实践。
COURSEWARE
每周课件
Ubuntu 与 ROS2 环境
02
环境配置与 ROS2 基础
Ubuntu 与 Linux 基础
完成实验环境配置,熟悉目录、终端命令与权限管理。
查看 7 份分课实验手册
实验课 1任务
实验目标:完成 Ubuntu 实验环境配置,掌握 Linux 的基本操作,为后续 ROS2 实验准备可用环境。
- 根据自己的电脑选择一种虚拟机方案,安装 Ubuntu 并完成软件源配置。不需要同时安装多种虚拟机;修改磁盘或虚拟化设置前,请先备份重要文件。
- 完成目录结构、常用终端命令和权限管理练习,保存关键命令与运行结果。遇到问题时,记录报错画面、系统与软件版本以及已经完成的步骤。
- 使用普通账户和
sudo执行需要管理员权限的操作,不要启用 root 登录,也不要修改实验室公共设备的账户密码。
提前完成实验的同学:请进入第一次论文选读页面开始阅读。
第一周作业:选择一篇或多篇论文完成阅读报告,使用 Overleaf 和 LaTeX 编写并导出 PDF。报告应说明研究问题、主要方法、实验结果和个人理解,不要只翻译摘要。提交方式与截止时间以课堂通知为准。
Docker 与 ROS2 基础
先完成核心操作,再根据进度阅读拓展章节;无需在一节课内逐页完成全部手册。
查看手册内容与建议阅读顺序
Docker 手册
核心:介绍与安装、hello-world、容器使用、硬件与数据交互、Docker 中安装 ROS。
拓展:镜像发布、容器日常管理与 Docker 仓库。
ROS2 手册
核心:安装、命令行、工作空间、功能包、节点、话题、服务与动作。
拓展:参数、DDS、Launch、TF2、URDF、Gazebo、Rviz 与 RQT。
实验课 2任务
实验目标:理解容器化开发环境的基本思路,完成 ROS2 工作空间与基础通信实验。
- Docker 基础:完成 Docker 安装与
hello-world测试,练习镜像、容器和目录映射等基本操作,并尝试在容器中运行 ROS2 环境。 - ROS2 基础:创建工作空间和功能包,运行节点、话题发布/订阅以及服务或动作示例;使用相应的
ros2命令检查节点和通信状态。 - 实验记录:保留关键命令、运行结果和必要截图。遇到问题时记录完整报错、ROS2 版本、运行环境及已经尝试的解决方法。
拓展任务:完成较快的同学可以继续练习 Launch、TF2、URDF、Rviz 或 RQT,也可以进入第一次论文选读页面继续阅读论文。
ROS2 自主导航与视觉应用
03
ROS2 编程与移动机器人基础实验
完成第 3 章至第 6 章项目
从节点与通信开始,逐步完成运动控制、激光雷达和 IMU 实验,并同步准备实验报告材料。
实验范围与要求
实验范围:按照第二周《第 1–7 章合并课件》,完成第 3 章至第 6 章(合并课件中的第 3 至第 6 部分)的项目,主要包括 ROS2 节点与功能包、机器人运动控制、激光雷达和 IMU。
建议项目:建议按照课件使用 WPR 系列机器人 ROS2 仿真工具。该项目面向 Ubuntu 22.04 与 ROS2 Humble,请先确认自己的环境版本。
其他平台:可以选择其他仿真机器人或真实机器人,但需要完成与课件相对应的功能,并在报告中说明机器人型号、ROS2 版本、主要话题名称以及与课件项目的差异。
实验建议:逐项运行课件示例,先确认工作空间能够编译、节点能够启动和通信,再开展运动控制、雷达与 IMU 实验。真机程序建议先在仿真中验证,运行时保持低速并确保可以随时停止。
实验报告需要保存的材料
- 工作空间成功编译及节点正常启动的截图。
- 节点、话题及通信关系的检查结果。
- 机器人运动控制的运行画面或结果记录。
- RViz 中激光雷达数据的显示效果。
- IMU 数据输出及关键字段的观察记录。
- 关键代码、参数配置或命令,以及必要的说明。
- 实验中出现的问题、完整报错信息和解决过程。
截图应能看清命令、窗口标题和关键结果;不要只保留最终成功画面。
实验报告建议结构与提交
- 实验目的:说明本次实验要掌握的 ROS2 知识与机器人功能。
- 实验环境:记录 Ubuntu、ROS2、仿真平台或机器人型号等信息。
- 实验过程:按第 3 章至第 6 章依次说明操作步骤、关键命令与代码。
- 实验结果:配合截图展示各项功能的运行结果。
- 问题与解决:记录调试过程、原因分析及解决方法。
- 分析与总结:总结各节点、话题和传感器数据之间的关系,以及个人理解。
提交形式:使用 Overleaf 和 LaTeX 编写,导出 PDF 后提交;具体提交方式与截止时间以课堂通知为准。
车辆动力学控制
04
基础实验完善与拓展尝试
先完成基础任务,再自主选择拓展内容
本周不设置统一的高难度完成目标,请根据自己的实验进度安排任务。
基础任务
尚未完成第二周《第 1–7 章合并课件》中第 3 章至第 6 章项目的同学,请继续完成相关实验,并整理实验报告所需的代码、命令、运行结果和截图。
基础任务重点包括 ROS2 工作空间与功能包、节点与话题通信、机器人运动控制、激光雷达和 IMU 数据读取,以及基本的调试与问题记录方法。
请优先保证基础程序能够编译和运行,并能够说明各节点、话题及传感器数据之间的关系。实验报告的具体提交方式与截止时间以课堂通知为准。
自主尝试内容
已经完成基础任务的同学,可以从第三周《第 8–10 章合并课件》中任选一个感兴趣的项目进行尝试。
- 不要求完成全部内容,也不统一要求最终运行成功。
- 可以按照课件使用原有机器人,也可以选择其他仿真机器人或自己的项目。
- 如果虚拟机性能不足、依赖配置失败或项目不适合当前环境,可以记录问题、分析可能原因后停止。
- 建议至少理解所选项目的节点组成、输入输出话题和整体运行流程。
这部分用于熟悉更完整的机器人应用流程,并帮助大家发现后续希望继续学习的方向,不作为统一的强制完成项目。
记录建议
如果进行了拓展尝试,可以记录所选项目、运行环境、已经完成的步骤、主要节点和话题、运行结果或报错信息,并把这些内容作为实验报告的拓展部分。没有完成拓展项目不会影响基础任务的评价。
所有运动控制程序应优先在仿真环境中验证。使用真实机器人时,请保持低速运行并确保能够随时停止。