ROS2学习笔记(九)— ROS2命令行操作常用指令总结(二)

简介:在第六、七、八章节中介绍了自定义消息(Message)、服务(Service)、动作(Action)的实现过程,另外还介绍了参数的应用,在学习过程中我们穿插了部分命令行操作用来调试或者验证相关功能,这一节详细介绍这些内容相关的命令行操作,通过虚拟仿真环境下已经实现的功能来验证。

消息、服务、动作在ROS2中统一称之为接口(interface),关于接口的命令行操作在第五节中已经有介绍,我们自定义的接口,可以通过ros2 interface list查看,因为我把所有接口都统一到同一个包内,所以也可以通过ros2 interface package命令查看所有创建的接口,或者用ros2 interface show查看接口内容。

除此之外,服务、动作、参数还有独有的操作命令。

1、服务操作工具 ros2 service

1.1 ros2 service list

命令功能:列出域内服务列表,-t可同时列出服务消息类型

命令格式:ros2 service list <-t>

1.2 ros2 service type

命令功能:列出指定服务的数据类型

命令格式:ros2 service type

1.3 ros2 service find

命令功能:列出域内使用指定数据类型的服务

命令格式:ros2 service find

1.4 ros2 service call

命令功能:通过命令行同步请求服务

命令格式:ros2 servie call

命令示例:$ ros2 service call /change_map_name duckietown_interface/srv/ChangeMap “{map_name: ‘4way’}”

2、动作操作工具 ros2 action

2.1 ros2 action list

命令功能:列出域内可用动作列表,-t可同时显示动作消息类型

命令格式:ros2 action list <-t>

2.2 ros2 action info
命令功能:查看指定action信息,可以看到服务端和客户端情况

命令格式:ros2 action info

2.3 ros2 action send_goal

命令功能:模拟客户端发起动作请求

命令格式:ros2 action send_goal <—feedback>

命令示例:$ ros2 action send_goal /crossing_acton duckietown_interface/action/Crossing “{speed: 0.2, direction: ‘right’}” —feedback

注:—feedback指定是否显示反馈主题信息

3、参数操作工具 ros2 param

3.1 ros2 param list

命令功能:列出域内可用参数列表

命令格式:ros2 param list

3.2 ros2 param get

命令功能:查看指定参数当前的值

命令格式:ros2 param get

3.3 ros2 param set

命令功能:设置指定参数的值

命令格式:ros2 param set

3.4 ros2 param delete

命令功能:删除参数(一般不用)

命令格式:ros2 param delete

3.5 ros2 param describe

命令功能:显示有关已声明参数的描述性信息,声明参数时添加描述性信息可查看

命令格式:ros2 param describe

3.6 ros2 param dump

命令功能:所有当前参数值“转储”到文件中保存以供以后使用

命令格式:ros2 param dump —output-dir <保存路径>

命令示例:$ ros2 param dump /line_detect_node —output-dir ~/ros2_ws/src/line_detect/line_detect/

将参数保存到与源码文件相同目录,文件名称与节点名称一致,文件为yaml格式,保存后内容如下:

/line_detect_node:
  ros__parameters:
    color_select: white
    red_h_high: 10
    red_h_low: 156
    red_s_high: 255
    red_s_low: 43
    red_v_high: 255
    red_v_low: 46
    use_sim_time: false
    white_h_high: 180
    white_h_low: 0
    white_s_high: 50
    white_s_low: 0
    white_v_high: 255
    white_v_low: 100
    yellow_h_high: 34
    yellow_h_low: 26
    yellow_s_high: 255
    yellow_s_low: 43
    yellow_v_high: 255
    yellow_v_low: 46

3.7 ros2 param load

命令功能:加载已有参数到节点中

命令格式:ros2 run —ros-args —params-file

命令示例:$ ros2 run line_detect line_detect_node —ros-args —params-file src/line_detect/line_detect/line_detect_node.yaml