Jazzy ROS2入门指南系列04-如何在ROS2中创建工作空间,怎么编译ROS2项目

📺 配套视频:Jazzy ROS2入门指南系列04-如何在ROS2中创建工作空间,怎么编译ROS2项目

ROS 2 工作空间创建与编译基础

在 ROS 2 开发体系中,工作空间(Workspace)是组织机器人软件的核心目录结构。它集中管理项目所需的所有源代码、数据文件及配置脚本,确保开发环境的整洁与可维护性。理解并正确创建工作空间,是进行任何 ROS 2 项目开发的第一步。

创建工作空间目录结构

工作空间的建立始于标准的 Linux 目录操作。通常,我们将工作空间命名为 ros2_ws(也可根据个人喜好命名),并在其中创建一个名为 src 的子目录,用于存放所有的功能包源码。

打开终端,执行以下命令创建目录结构:

bash 复制代码
mkdir -p ~/ros2_ws/src

这里 -p 参数确保如果父目录不存在则自动创建,且不会因目录已存在而报错。~ 代表用户的主目录。此时,src 文件夹即为后续放置机器人代码的位置。

接下来,需要进入工作空间的根目录,因为后续的构建命令必须在此路径下执行:

bash 复制代码
cd ~/ros2_ws/

小结 :工作空间的标准结构至少包含根目录和 src 源码目录。所有构建操作均需在根目录下进行。

使用 Colcon 构建系统

colcon 是 ROS 2 默认的构建工具,负责将分散的代码模块整合成可执行的机器人软件。即使 src 目录下暂时为空,我们也可以运行构建命令来初始化环境。

在根目录下执行:

bash 复制代码
colcon build

由于当前没有源代码,终端会显示"0 个包完成"。但这一步至关重要,因为它会生成三个关键的基础文件夹:

  • build:构建过程中的临时存储区,存放中间编译文件。
  • install:存放最终构建完成、可直接运行的二进制文件和库。
  • log:记录构建过程的日志,用于排查编译错误和问题。

每次修改或添加代码后,都需要重新运行 colcon build 以更新 install 目录中的内容。

配置环境变量

构建完成后,为了让系统能够识别新安装的包,必须加载 install 目录下的设置脚本。如果每次打开新终端都手动输入 source 命令会非常繁琐,因此我们需要将其写入 Bash 配置文件。

执行以下命令,将环境设置追加到 ~/.bashrc 文件中:

bash 复制代码
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc

这条命令的作用是将 source 指令写入配置文件,确保每次启动新终端会话时自动执行。为了使当前终端立即生效,需刷新配置:

bash 复制代码
source ~/.bashrc

你也可以通过打开一个新的终端窗口来验证配置是否成功。若需检查内容,可使用文本编辑器查看:

bash 复制代码
gedit ~/.bashrc

在文件末尾,你应该能看到刚才添加的 source 行。这保证了工作空间的环境变量在所有会话中持久有效。

易错点 :务必确认 source 的路径指向正确的 install/setup.bash。如果路径错误,终端将无法找到自定义的功能包。

速查表

  • 目录创建 :使用 mkdir -p ~/ros2_ws/src 一键创建工作空间及源码目录。
  • 构建命令 :始终在工作空间根目录运行 colcon build 以编译代码。
  • 核心文件夹build(临时)、install(成品)、log(日志)由构建自动生成。
  • 环境持久化 :通过 echo "source ..." >> ~/.bashrc 避免每次手动加载环境。
  • 生效配置 :修改 .bashrc 后,需运行 source ~/.bashrc 或重启终端使更改生效。
相关推荐
Jay-r9 分钟前
手势粒子特效系统 Gesture Particle FX(附源码下载)
python·ai·编程·pygame·百度云·手势控制
南方程序猴1 小时前
2026年7月最新国内 Codex 安装教程和使用教程:GPT-5.6 完整指南
人工智能·gpt·ai·ai编程
Kevinten102 小时前
OpenOctopus:领域原生 AI 家庭助手系统,Summon 功能将实体转化为智能 Agent
人工智能·ai·开源·开发工具·智能体
神奇霸王龙2 小时前
跨厂商大模型接入实战:5大基座性能对比
人工智能·ai·aigc·dubbo·claude·qwen·ai金融
小白跃升坊14 小时前
倒反天罡!DeepSeek V4-Flash 正式版悄然上线:130亿激活参数,把自家1.6万亿旗舰「以下克上」
ai·大模型·agent·deepseek·v4
天天有money16 小时前
API中转站在社媒矩阵里的价值:多平台文案如何统一改写
gpt·线性代数·ai·chatgpt·矩阵
希艾席帝恩18 小时前
数字孪生赋能智慧物流:物流行业转型升级新路径
大数据·人工智能·低代码·ai·数字化转型
这是谁的博客?18 小时前
【中阶·融合】如何隔离多租户 AI 推理平台的 GPU 资源:从 Namespace 到 MIG/Kata 的五层纵深防御
人工智能·ai·云原生·kubernetes·gpu·多租户·ai安全
神奇霸王龙21 小时前
Coze 3.0多Agent协作:5国产基座实测对比
人工智能·python·gpt·ai·ai编程·glm
DQQzero1 天前
《小蓝灯之死:从车企“智能标识“到“光污染“——GB 4785修订背后的智驾合规升级》
人工智能·ai·智能驾驶