Ubuntu 22.04 下 ROS 2 Humble:环境搭建、编译与文档生成
说明:LTS 版本为 22.04(非 22.4)。以下命令默认使用
jammy与 ROS 2 Humble,与当前工作区ros2_humble一致。
1. 系统与基础依赖
1 | sudo apt update && sudo apt install -y \ |
设置 UTF-8 区域(ROS 2 官方建议):
1 | sudo locale-gen en_US en_US.UTF-8 |
2. 安装 ROS 2 Humble(二进制)
按 官方文档 添加源并安装。典型最小开发环境可用 Desktop(含 rviz 等)或 ROS-Base(更轻):
1 | sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \ |
每次新开终端加载环境:
1 | source /opt/ros/humble/setup.bash |
(可写入 ~/.bashrc。)
3. 编译本工作区 ros2_humble
在已 source /opt/ros/humble/setup.bash 的前提下:
1 | cd /path/to/ros2Learn/ros2_humble |
编译完成后:
1 | source install/setup.bash |
常见注意点:
- 全量源码树体量大,可先只编关心的包:
colcon build --packages-up-to rclcpp - 内存不足时可限制并行:
colcon build --parallel-workers 2
4. 「生成文档」的几种含义与做法
4.1 本仓库 doc/ 下的 Markdown(含 Mermaid)
这些是静态说明,无需编译;若需要 HTML/PDF 或统一站点:
| 方式 | 用途 |
|---|---|
| VS Code / Cursor 预览 | 直接打开 .md,安装 Mermaid 插件可看图 |
MkDocs + mkdocs-material + mermaid 插件 |
生成静态站点 |
| mdBook | 适合书式文档,可集成 mermaid |
示例(MkDocs,在项目根或 doc/ 下自建 mkdocs.yml 后):
1 | pip install mkdocs mkdocs-material pymdown-extensions |
(当前仓库若未配置 mkdocs.yml,需自行添加;不属于 ROS 核心工作区的一部分。)
4.2 从 C/C++ 源码生成 API 文档(Doxygen)
适用于阅读 rcl / rmw / rclcpp 等 API:
1 | sudo apt install -y doxygen graphviz |
在单个包里若存在 Doxyfile 或 CMake 里启用了 doxygen_add_docs,则在该包 build 目录执行对应 target;很多上游包默认不打开 Doxygen,可自行在包根目录生成配置:
1 | cd /path/to/some_package |
生成结果一般在 html/index.html,用浏览器打开即可。
4.3 官方 ROS 2 手册(Sphinx,独立仓库)
若目标是生成与 docs.ros.org 同风格的 Humble 手册(非你本地 ros2_humble/src 的 API 站):
1 | sudo apt install -y python3-pip |
分支需选 humble(克隆后 git checkout humble)。
4.4 包内自带的文档目标(若存在)
部分包会定义 doc 或 docs 的 CMake target。可在编译后尝试:
1 | cd ros2_humble |
有则例如:cmake --build build/SOME_PACKAGE --target doc。
5. 建议小结
| 目标 | 推荐做法 |
|---|---|
| 能编译、运行本工作区 | Ubuntu 22.04 + ros-humble-desktop + colcon build + source install/setup.bash |
| 维护架构说明 Markdown | 继续放在 doc/,编辑器预览;需要站点时用 MkDocs/mdBook |
| 啃 C API | apt install doxygen graphviz,对目标包生成或自建 Doxyfile |
| 啃用户级教程与概念 | 克隆 ros2_documentation,humble 分支,make html |
若你后续把「文档」限定为某一种(例如只要 MkDocs 站点或只要 rcl 的 Doxygen),可以在 doc/ 里再拆一篇专用步骤并配上仓库内的配置文件。
正在加载留言…