ROS 2工具
1. rqt:
掌握rqt可以在命令行不熟悉的情况下高效调试。
比如:service caller和console
在指定位置添加一个小乌龟:
左侧可以看到,直接可以使用图形化界面进行操作。
在右侧,可以查阅消息。
2. logger:
级别:
代码语言:javascript复制Fatal Error Warn Info Debug
每个级别都没有确切的标准,但是可以安全地做出如下假设:
-
Fatal
消息指示系统将终止以尝试保护自身不受损害。 -
Error
消息表示重大问题,不一定会损坏系统,但会阻止其正常运行。 -
Warn
消息表示意料之外的活动或不理想的结果,可能表示更深层次的问题,但不会直接损害功能。 -
Info
消息指示事件和状态更新,可作为视觉验证系统是否按预期运行。 -
Debug
消息详细说明了系统执行的整个分步过程。
默认级别为Info
。仅看到默认严重性级别和更高级别的消息。
默认情况下,debug消息是无法看到的!
修改显示的logger级别:
代码语言:javascript复制ros2 run turtlesim turtlesim_node --ros-args --remap __log_level:=WARN
3. bag
3.1 记录
标准命令格式:
代码语言:javascript复制ros2 bag record <topic_name>
如果需要记录/turtle1/cmd_vel,使用如下命令:
代码语言:javascript复制ros2 bag record /turtle1/cmd_vel
显示如下:
使用Ctrl C终止记录。
记录多个主题保存为subset文件:
代码语言:javascript复制ros2 bag record -o subset /turtle1/cmd_vel /turtle1
如果不想系统崩溃,尽量不要选用参数-a,为啥???
There is another option you can add to the command,
-a
, which records all the topics on your system. However, this might cause a circular dependency and crash your system. It’s better to choose a subset of the topics that you need.
3.2 信息
标准命令格式:
代码语言:javascript复制ros2 bag info <bag_file_name>
3.3 回放
标准命令格式:
代码语言:javascript复制ros2 bag play <bag_file_name>
此处使用:
ros2 bag play rosbag2_2019_12_11-20_47_57
显示:
[INFO] [rosbag2_storage]: Opened database 'rosbag2_2019_12_11-20_47_57rosbag2_2019_12_11-20_47_57_0.db3' for READ_ONLY.
4. ros2doctor
先运行一下看看效果:
代码语言:javascript复制ros2 doctor
报错很正常。
如果开启更多的节点:
有些节点发布和订阅没有对应,会出现:
代码语言:javascript复制UserWarning
如果需要完成版本的报告:
代码语言:javascript复制ros2 doctor --report
ros2doctor
它是任何ROS 2发行版的标准安装中随附的ROS 2命令行界面工具之一。 ros2doctor
与ROS 1 的roswtf
类似。它将检查ROS 2设置,例如发行版,平台,网络接口等,并在ROS 2运行的系统中查找潜在问题。
用法
- 运行
ros2 doctor
或ros2 wtf
(别名)进行检查。 - 运行
ros2 doctor -h/--help
以打印所有可用的命令参数。 - 运行
ros2 doctor -r/--report
以查看所有选中项目的报告。 - 运行
ros2 doctor -rf/--report-fail
以仅查看失败检查的报告。 - 运行
ros2 doctor -iw/--include-warnings
以将警告包括为失败的检查。-iw
并且-rf
可以组合使用。
ros2 -h显示命令全部功能如下:
其他ROS2命令不在过多介绍了,安装好依据帮助文档和官方资料,多实践就能掌握。
之后内容将全部转为代码编写和讲解。
不再涉及基础知识的介绍。
教程适用于Windows/MacOS/Linux,考虑到通用性,以Win10和Ubuntu18.04为主,
所有案例全部通用。