【ROS2】常用命令

1、目录结构

在 ROS 2 包中,launchurdfrviz(通常指 RViz 配置文件)、config 等文件夹应直接放在包的根目录 下(与 robot_arm/ Python 模块目录同级)。这是 ROS 2 社区的通用约定,便于工具(如 ros2 launchrviz2)自动查找资源。


推荐目录结构

复制代码
ros2_ws/src/robot_arm/
├── config/                  # 配置文件(如 YAML 参数、控制器配置)
├── launch/                  # Launch 文件(.launch.py 或 .xml)
├── rviz/                    # RViz 配置文件(.rviz)
├── urdf/                    # URDF/XACRO 机器人模型文件
├── robot_arm/               # Python 模块目录(核心代码)
│   ├── __init__.py
│   └── robot_arm.py         # 主节点
├── package.xml
├── setup.py
└── ...                      # 其他默认文件

编译后install结构:

复制代码
ros2_ws/install/
├── robot_arm/                  # 与包同名的根目录
│   ├── lib/                    # 存放编译生成的库和可执行文件
│   │   ├── python3.10/         # Python 模块目录(Python 版本可能不同)
│   │   │   └── site-packages/
│   │   │       └── robot_arm/ # Python 模块代码(与包同名)
│   │   │           ├── __init__.py
│   │   │           └── robot_arm.py  # 节点入口文件
│   │   └── robot_arm/          # C++ 可执行文件(如果存在)
│   │       └── robot_arm_node  # C++ 编译生成的可执行文件
│   ├── share/                  # 存放资源文件和配置
│   │   ├── robot_arm/          # 包资源目录
│   │   │   ├── config/         # 配置文件(如 YAML 参数)
│   │   │   │   └── robot_params.yaml
│   │   │   ├── launch/         # Launch 文件
│   │   │   │   └── arm_control.launch.py
│   │   │   ├── rviz/           # RViz 配置文件
│   │   │   │   └── arm_display.rviz
│   │   │   └── urdf/           # URDF/XACRO 文件
│   │   │       └── robot_arm.urdf.xacro
│   │   └── ament_cmake_core/  # CMake 构建元数据(自动生成)
│   └── setup.bash              # 环境变量脚本(局部生效)
├── setup.bash                  # 全局环境变量脚本(激活工作空间)
└── local_setup.bash            # 局部环境变量脚本(仅当前包)

2、编译:

复制代码
colcon build --packages-select robot_arm --symlink-install

--packages-select 只编译更新指定的包,并将编译结果保存到install文件夹中

--symlink-install 是可选但推荐的,它会创建符号链接,修改 Python 文件后无需重新构建。

开发建议:如何让修改立即生效?

第一次构建时使用:

复制代码
colcon build --symlink-install

效果:

  • install/robot_arm/share/robot_arm/launch/display.launch.py 会是一个符号链接(symlink) ,指向 src/robot_arm/robot_arm/launch/display.launch.py
  • 你修改 src 中的文件,install 中的内容自动更新
  • 无需每次 colcon build,改完就能运行

ROS 2 不会自动安装 rviz/launch/urdf/ 等目录下的文件!

即使你用了 --symlink-install也必须通过 setup.py 明确告诉 ROS 2 哪些文件需要安装

否则,colcon build 只会安装 Python 包、可执行脚本等默认内容,而不会安装 rviz/launch/meshes/ 等资源文件。


正确解决方案:修改 setup.py

你需要编辑你的 robot_arm 包中的 setup.py 文件,添加 data_files 配置,告诉 colconrviz/launch/urdf/meshes/ 等目录复制到 install/

3、清理

复制代码
colcon clean workspace

4、检查

复制代码
# 检查 rviz 文件是否存在
ls $(ros2 pkg prefix robot_arm)/share/robot_arm/rviz/robot_arm.rviz

# 检查是否是符号链接,且指向 src
ls -l $(ros2 pkg prefix robot_arm)/share/robot_arm/rviz/robot_arm.rviz
相关推荐
爱喝水的鱼丶9 小时前
SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇)第三篇:SAP接口对接开发:实现数据的实时/批量校验交互
运维·数据库·学习·性能优化·sap·abap·经验交流
糖果店的幽灵9 小时前
Claude Code 完全实战指南 - 第四章:Skill 怎么写
java·服务器·前端
難釋懷9 小时前
Nginx扩容
运维·nginx
土星云SaturnCloud9 小时前
基于边缘计算的商场智慧运营架构设计与AI落地实践
服务器·人工智能·ai·边缘计算
落羽的落羽10 小时前
【算法札记】练习 | Week5
linux·服务器·c++·人工智能·计算机网络·算法·哈希算法
绿虫光伏运维10 小时前
光伏监控运维系统哪家靠谱?
运维·光伏管理·光伏运维
小手指动起来10 小时前
重装系统教程(微PE+无捆绑+驱动完美修复)
服务器·开源软件
木雷坞10 小时前
Docker Hub、GHCR、Quay 混在一起后,镜像源要分开测
运维·docker
Evan_ZGYF丶10 小时前
【开发工具】【perf】Linux下性能分析工具(perf)的使用
linux·嵌入式·开发工具·perf
LT101579744411 小时前
2026年物流RPA选型指南:物流供应链自动化场景适配
运维·自动化·rpa