ROS2——文件系统常用指令

声明:(参考自赵虚左老师)

ROS2的文件系统核心是功能包,我们可以通过编译指令colcon和ROS2内置的工具指令ros2来实现功能包的创建、编译、查找与执行等相关操作。

1.创建

新建功能包语法如下:

ros2 pkg create 包名 --build-type 构建类型 --dependencies 依赖列表 --node-name 可执行程序名称

格式解释:

  • --build-type:是指功能包的构建类型,有cmake、ament_cmake、ament_python三种类型可选;

  • --dependencies:所依赖的功能包列表;

  • --node-name:可执行程序的名称,会自动生成对应的源文件并生成配置文件。

2.编译

编译功能包语法如下:

colcon build

colcon build --packages-select 功能包列表

前者会构建工作空间下的所有功能包,后者可以构建指定功能包。

3.查找

ros2 pkg命令下包含了多个查询功能包相关信息的参数。

ros2 pkg executables [包名] # 输出所有功能包或指定功能包下的可执行程序。
ros2 pkg list # 列出所有功能包
ros2 pkg prefix 包名 # 列出功能包路径
ros2 pkg xml # 输出功能包的package.xml内容
4.执行

执行命令语法如下:

ros2 run 功能包 可执行程序 参数

小提示:

可以通过命令 -h命令 --help来获取命令的帮助文档。

### ROS2 常用命令及使用方法 #### 创建功能包 为了创建一个新的ROS2功能包,可以利用`ros2 pkg create`命令。此命令允许指定编译方式以及依赖项等内容。例如,要创建一个名为`example_package`的功能包,并设置其构建类型为Python,则可执行如下命令[^3]: ```bash ros2 pkg create --build-type ament_python example_package ``` #### 克隆特定分支的仓库 当需要从GitHub克隆某个项目并指定期望获取的具体版本或分支时,可以通过附加`-b`参数给`git clone`命令实现这一目标。比如想要下载`examples`库中的`galactic`分支到本地路径下的`src/examples`目录中,应运行下面这条语句[^2]: ```bash git clone https://github.com/ros2/examples src/examples -b galactic ``` #### 启动节点与查看状态 启动单个节点可以直接通过调用该节点对应的可执行文件完成。而监控当前系统内所有活动节点的状态则需要用到`ros2 node list`命令。这有助于开发者了解哪些进程正在运行以及它们之间的通信情况。 对于更详细的节点信息查询,如订阅的话题、发布的服务等,有专门设计好的子命令可供选用,像这样: ```bash ros2 node info /node_name ``` 上述命令会打印出关于指定名称节点的信息概览[^1]。 #### 发布话题消息 如果希望向某话题发布一条测试消息,那么就可以借助于`ros2 topic pub`这个便捷工具来做这件事。它支持多种数据类型的序列化对象发送操作,只需按照提示输入相应字段即可达成目的。举个例子来说,假设有一个叫作`chatter`的标准字符串型话题,现在打算往里面塞入一段文字内容,那么应该这样做: ```bash ros2 topic pub /chatter std_msgs/msg/String "data: 'hello world'" ``` #### 订阅话题监听器 相反地,在另一端设立接收者来捕获来自选定主题的数据流也是十分必要的。为此提供了`ros2 topic echo`指令帮助我们轻松建立这样的连接关系。只要给出感兴趣的主题名就能实时跟踪最新到达的消息体了。 ```bash ros2 topic echo /chatter ``` #### 查看可用的服务列表 除了常规的消息传递机制之外,ROS还定义了一套完善的服务接口体系用于处理请求响应式的交互逻辑。因此有必要掌握如何罗列现有的远程过程调用选项——即运用`ros2 service list`来进行检索工作。 进一步深入探究每一个单独服务的操作细节同样重要,这时就要依靠`ros2 service type`配合具体的service id才能获得完整的签名描述。 ```bash ros2 service type /add_two_ints ``` 最后还可以尝试实际发起一次RPC呼叫看看效果怎样,这就得靠`ros2 service call`加上完整的目标地址连同所需携带的有效载荷一起构成了整个动作表达式。 ```bash ros2 service call /add_two_ints example_interfaces/srv/AddTwoInts "{a: 1, b: 2}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗人在身边

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值