【ROS2概念】系列(十)——ROS2命令行工具

目录

  • 一、配置环境
    • 1.1 命令概览
    • 1.2 命令解释
      • 1.2.1 设置环境变量
      • 1.2.2 查看ROS2版本
      • 1.2.3 设置DOMAIN ID变量
      • 1.2.4 设置LOCALHOST变量
  • 二、工作空间
    • 2.1 命令概览
    • 2.2 命令解释
      • 2.2.1 创建工作空间
      • 2.2.2 创建功能包
      • 2.2.3 查询包的可执行文件
      • 2.2.4 查看当前目录下所有的包
      • 2.2.5 查看包所在路径的前缀
      • 2.2.6 查看包的清单描述文件
  • 三、启动
    • 3.1 命令概览
    • 3.2 命令解释
      • 3.2.1 启动launch文件
  • 四、Node
    • 4.1 命令概览
    • 4.2 命令解释
      • 4.2.1 运行单个节点
      • 4.2.2 重映射节点名称
      • 4.2.3 查看运行的节点列表
      • 4.2.4 查看节点信息
  • 五、Topic
    • 5.1 命令概览
    • 5.2 命令解释
      • 5.2.1 查看话题列表
      • 5.2.2 打印话题内容
      • 5.2.3 查看话题信息
      • 5.2.4 手动发布话题内容
      • 5.2.5 查看话题发布频率
  • 六、Service
    • 6.1 命令概览
    • 6.2 命令解释
      • 6.2.1 查看服务列表
      • 6.2.2 查看service接口类型
      • 6.2.3 查找使某个接口的service
      • 6.2.4 手动调用服务
  • 七、Parameter
    • 7.1 命令概览
    • 7.2 命令解释
      • 7.2.1 查看参数名称
      • 7.2.2 详细查看一个参数的信息
      • 7.2.3 获取参数的值
      • 7.2.4 设置参数的值
      • 7.2.5 把当前的参数值拍一张快照,然后保存下来,文件被保存成了yaml格式
      • 7.2.6 把参数值恢复成之前的存储
  • 八、Action
    • 8.1 命令概览
    • 8.2 命令解释
      • 8.2.1 查看action列表
      • 8.2.2 查看action信息
      • 8.2.3 手动发布action
  • 九、Bag
    • 9.1 命令概览
    • 9.2 命令解释
      • 9.2.1 录制所有的Topic
      • 9.2.2 录制指定Topic
      • 9.2.3 设置bag的名称
      • 9.2.4 查看bag的信息
      • 9.2.5 播放bag
  • 十、Message
    • 10.1 命令概览
    • 10.2 命令解释
      • 10.2.1 查看消息
      • 10.2.2 查看消息的详细信息
      • 10.2.3 查看消息的详细信息
      • 10.2.4 查看某个包下所有的消息
      • 10.2.5 查询包含msg文件的包
  • 十一、Interface
    • 11.1 命令概览
    • 11.2 命令解释
      • 11.2.1 查看当前运行interface的列表
      • 11.2.2 查看interface信息
      • 11.2.3 查看某一个接口包下所有的接口

ROS2命令行工具(Command Line Interface CLI)

一、配置环境

1.1 命令概览

1.2 命令解释

1.2.1 设置环境变量

终端临时添加ROS2环境变量
source /opt/ros/humble/setup.bash

终端永久添加ROS2环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

1.2.2 查看ROS2版本

检查ROS2的版本及所使用的python版本
printenv | grep -i ROS

1.2.3 设置DOMAIN ID变量

终端临时设置ROS2的DDS Domain变量
export ROS_DOMAIN_ID=

终端永久设置ROS2的DDS Domain变量
echo "export ROS_DOMAIN_ID=" >> ~/.bashrc

1.2.4 设置LOCALHOST变量

终端临时设置ROS2的ROS_LOCALHOST_ONLY变量
export ROS_LOCALHOST_ONLY=1

终端永久设置ROS2的ROS_LOCALHOST_ONLY变量
echo "export ROS_LOCALHOST_ONLY=1" >> ~/.bashrc

默认情况下,ROS 2 通信不限于 localhost。 ROS_LOCALHOST_ONLY环境变量允将 ROS 2 通信限制为仅本地主机。这意味着 ROS 2 系统及其主题、服务和操作对本地网络上的其他计算机不可见。

二、工作空间

2.1 命令概览

2.2 命令解释

2.2.1 创建工作空间

mkdir -p ~/ros2_ws/src

2.2.2 创建功能包

ros2 pkg create --build-type {cmake,ament_cmake,ament_python} --dependencies

--build-type 用来指定该包的编译类型,一共有三个可选项ament_python、ament_cmake、cmake,--dependencies 指的是这个功能包的依赖

举例:
ros2 pkg create example_cpp --build-type ament_cmake --dependencies rclpy

2.2.3 查询包的可执行文件

ros2 pkg executables

举例:
ros2 pkg executables turtlesim

列出turtlesim功能包的所有可执行文件

2.2.4 查看当前目录下所有的包

ros2 pkg list

2.2.5 查看包所在路径的前缀

ros2 pkg prefix

2.2.6 查看包的清单描述文件

ros2 pkg xml turtlesim

三、启动

3.1 命令概览

3.2 命令解释

3.2.1 启动launch文件

ros2 launch

举例:
ros2 launch turtlesim_mimic_launch.py

四、Node

4.1 命令概览

4.2 命令解释

4.2.1 运行单个节点

ros2 run

4.2.2 重映射节点名称

ros2 run --ros-args --remap __node:=my_turtle

举例:
ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

重新映射允许您将默认节点属性(如节点名称、主题名称、服务名称等)重新分配给自定义值。

4.2.3 查看运行的节点列表

ros2 node list

4.2.4 查看节点信息

ros2 node info

五、Topic

5.1 命令概览

5.2 命令解释

5.2.1 查看话题列表

ros2 topic list

5.2.2 打印话题内容

ros2 topic echo

5.2.3 查看话题信息

ros2 topic info

5.2.4 手动发布话题内容

ros2 topic pub

举例:
ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
以1Hz频率发布

ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
只发布一次,--once是一个可选参数,意思是“发布一条消息然后退出”。

Tips:在手动发布话题内容时,填写话题名称后,都可以通过Tab按键补全出来。

5.2.5 查看话题发布频率

ros2 topic hz

六、Service

6.1 命令概览

6.2 命令解释

6.2.1 查看服务列表

ros2 service list

6.2.2 查看service接口类型

ros2 service type

举例:
ros2 service type /add_two_ints

6.2.3 查找使某个接口的service

ros2 service find

举例:
ros2 service find example_interfaces/srv/AddTwoInts

6.2.4 手动调用服务

ros2 service call

举例:
ros2 service call /add_two_ints example_interfaces/srv/AddTwoInts "{a: 5,b: 10}"

七、Parameter

7.1 命令概览

7.2 命令解释

7.2.1 查看参数名称

ros2 param list

7.2.2 详细查看一个参数的信息

ros2 param describe

7.2.3 获取参数的值

ros2 param get

举例:
ros2 param get /turtlesim background_b

7.2.4 设置参数的值

ros2 param set

7.2.5 把当前的参数值拍一张快照,然后保存下来,文件被保存成了yaml格式

ros2 param dump

7.2.6 把参数值恢复成之前的存储

ros2 param load

八、Action

8.1 命令概览

8.2 命令解释

8.2.1 查看action列表

ros2 action list

8.2.2 查看action信息

ros2 action info /turtle1/rotate_absolute

8.2.3 手动发布action

ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "{theta: 1.6}"

九、Bag

9.1 命令概览

9.2 命令解释

9.2.1 录制所有的Topic

ros2 bag record -a

9.2.2 录制指定Topic

ros2 bag record

9.2.3 设置bag的名称

ros2 bag record -o

9.2.4 查看bag的信息

ros2 bag info

9.2.5 播放bag

ros2 bag play

在ROS2中bag的后缀名不再是.bag而是.db3

举例:
-r参数,倍速播放
ros2 bag play rosbag2_2021_10_03-15_31_41_0.db3 -r 10

-l参数,循环播放
ros2 bag play rosbag2_2021_10_03-15_31_41_0.db3 -l

--topics参数,播放单个话题
ros2 bag play rosbag2_2021_10_03-15_31_41_0.db3 --topics

十、Message

10.1 命令概览

10.2 命令解释

10.2.1 查看消息

ros2 msg list

10.2.2 查看消息的详细信息

ros2 msg show

10.2.3 查看消息的详细信息

ros2 msg info

info命令是show的别名

10.2.4 查看某个包下所有的消息

ros2 msg package

10.2.5 查询包含msg文件的包

ros2 msg packages

十一、Interface

Interface是ROS2中话题、服务、动作中定义的msg,srv,action接口的总称。

11.1 命令概览

11.2 命令解释

11.2.1 查看当前运行interface的列表

ros2 interface list

11.2.2 查看interface信息

ros2 interface show

举例:
ros2 interface show std_msgs/msg/String
ros2 interface show example_interfaces/srv/AddTwoInts

11.2.3 查看某一个接口包下所有的接口

ros2 interface package

举例:
ros2 interface package sensor_msgs

你可能感兴趣的:(【ROS2概念】系列(十)——ROS2命令行工具)