【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
相关推荐
hehelm12 分钟前
IO 多路复用 — Reactor
linux·服务器·网络·数据库·c++
浅止菌42 分钟前
嵌入式项目Makefile越写越乱?一张万能模板+5个技巧,告别重复劳动
linux
BerryS3N1 小时前
Cursor+GitOps:AI驱动的自动化运维新范式
运维·人工智能·自动化
Sagittarius_A*1 小时前
Web 渗透实战:服务器系统识别、端口与中间件全量探测
服务器·网络安全·中间件·渗透测试
FREEDOM_X2 小时前
嵌入式Linux摄像头采集与图像处理
linux·图像处理·ubuntu
studytosky2 小时前
OpenClaw 入门与 Skill 开发
linux·服务器·ai编程
kaoa0002 小时前
Linux入门攻坚——82、kvm虚拟化-2
linux·运维·服务器
OsDepK2 小时前
Windows快速部署Docker
运维·docker·容器
2601_954706492 小时前
云虚拟化终端架构解析:ARM 云端集群部署与自动化运维实践
运维·arm开发·架构
zandy10113 小时前
地址解析厂商推荐:分行业地址服务能力选型与技术分析
大数据·运维·人工智能