今天继续总结CLI 工具章的学习
参数是一个节点的配置值,可以把参数看成是节点的配置。节点可以存储整型,浮点型,布尔型,字符串型,列表型的参数。每个节点维护自己的参数。
此命令用于显示所有节点的参数。
每个节点都有use_sim_time
此命令用于显示一个参数的类型和当前值。
ros2 param get <node_name> <parameter_name>
此命令在运行时改变参数的值。
ros2 param set <node_name> <parameter_name> <value>
此命令查看所有节点的参数值。
ros2 param dump <node_name>
默认打印到标准输出,可以将参数值打印到文件中,比如:
ros2 param dump /turtlesim > turtlesim.yaml
此命令可以把保存在文件中的参数加载到正在运行的节点中。
ros2 param load <node_name> <parameter_file>
注意:只读参数只能在启动时修改,所以执行此命令时只读参数会打印失败信息。
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
注意:在启动时加载参数文件所有参数包括只读参数都将被更新。
动作是ROS 2一种通信类型,用于长时间运行的任务。它包含三部分:一个目标,反馈,一个结果。动作是基于话题和服务构建的。动作的功能除了可以取消外,和服务很类似。与服务返回一个单一的回应不同,动作也提供持续的反馈。动作使用客户端-服务器模式,一个“动作客户”节点发送一个目标给一个“动作服务”节点,“动作服务”确认这个目标并且返回一个反馈流和一个结果。
此命令用来查看一个节点提供的动作列表。
注意:/turtlesim节点的/turtle1/rotate_absolute
动作是在Action Servers下面的,这意味着/turtlesim为/turtle1/rotate_absolute动作,响应和提供反馈。
注意:/teleop_turtle节点的/turtle1/rotate_absolute
动作是在Action Clients下面的,这意味着他将为这个动作发送目标。
此命令发现ROS图中所有的动作。
此命令可以将类型也显示出来。如下:
此命令可以获取动作的相关信息。
在发送或者执行动作目标之前,你需要的另一个信息是动作类型的具体结构。参数为ros2 action list -t
输出的类型。
第一个—上面是目标的结构(数据类型和名字),第二个—上面是结果的结构,最后是反馈的结构。
此命令可以发送一个动作目标。
ros2 action send_goal <action_name> <action_type> <values>
需要使用YAML格式。
所有的目标都有一个唯一的ID,会在返回的消息里显示。也会显示出结果。可以在后面加上--feedback
参数查看反馈信息。
你将会持续接收到反馈,指导目标完成。
一个机器人系统可能使用动作用于导航。动作目标可以告诉机器人前往位置。当机器人导航到该位置时,它可以沿途发送更新(即反馈),然后一旦到达目的地,就可以发送最终结果消息。
rqt_console是ROS 2中用于自查日志消息的可视化工具。通常日志消息在终端打印。使用rqt_console,您可以随着时间的推移收集这些消息,以更有条理的方式查看它们,过滤,保存它们,甚至将保存的文件重新加载到不同的时间内。
节点以各种方式输出日志关于事件和状态的消息。对用户而言,通常是蕴含信息的。
ROS 2日志级别按严重程度顺序排列如下:
Fatal
Error
Warn
Info
Debug
Fatal消息表示系统将要终止以保护自己不受伤害。
Error消息表示不是必然会损害系统的重大错误,但会组织系统正常运行。
Warn消息表示意外的活动或非理想结果,可能代表更深层次的问题,但不会彻底损坏功能。
Info消息表示事件或状态更新,可以看到系统正在稳定运行。
Debug消息详细说明系统执行的整个逐步过程。
默认日志级别是Info,您只会看到默认严重程度级别和更高级别级别的消息。
通过–ros-args --log-level参数设置执行的日志级别。
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
使用命令行工具一次启动多个节点。
启动文件允许你同时启动和配置多个包含ROS 2节点的可执行程序。
ros2 launch
ros2 bag
是一个命令行工具,用于记录系统中发布的话题数据。它累积了通过的任何数量的话题数据,并将其保存在数据库中。然后,您可以重播数据以重现测试和实验的结果。录制话题也是分享您的作品并允许其他人重新创建它的好方法。
ros2 bag record <topic_name>
此命令会在运行命令的当前目录下创建 rosbag文件。
ros2 bag record -o subset /turtle1/cmd_vel /turtle1/pose
-o选项用来定义一个独特名字的bag文件,然后在后面以空格隔开每一个话题。
-a选项用来记录系统里的所有话题。
此命令用于查看记录文件的详情。
此命令用来播放记录文件。