【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
相关推荐
tedcloud1235 分钟前
ppt-master部署教程:快速搭建智能演示文稿系统
服务器·人工智能·系统架构·游戏引擎·powerpoint
Irene19916 分钟前
(课堂笔记)Linux 基础命令:文件增删改、重命名、压缩等
linux
go不是csgo31 分钟前
s01 搭建第一个对话智能体
服务器·网络·python·ai
脆皮炸鸡7551 小时前
库制作与原理~动态链接
linux·开发语言·经验分享·笔记·学习方法
小王C语言1 小时前
Windows和Linux之间文件互传
linux·运维·服务器
fiveym2 小时前
二层核心网络技术通俗解析(VLAN/Access/Trunk/LACP/ARP)
服务器·网络·网络协议
magic_now2 小时前
Linux 内核启动流程详解(基于 5.15.119 源码)
linux·运维·服务器
2401_840192272 小时前
k8s的crd、operator、cr分别是什么?
运维·分布式·kubernetes·prometheus
草木深雨纷纷2 小时前
mt管理器手机版下载2026最新版更新下载分享
linux·运维·网络·智能手机
扛枪的书生2 小时前
ELK 学习总结
linux