ros2 doctor快速排查工具

举报
Hermit_Rabbit 发表于 2022/11/29 22:09:47 2022/11/29
【摘要】 0. 简介在面对ROS环境配置时,我们会发现,有的时候非常难查的问题有时候是因为ROS的CMakeList和package配置文件写的不对导致的。ROS1的时候就很无能为力,需要熟练地了解每个模块与配置。而ROS2中就提供了一个可以检测ros2的方方面面,包括平台,版本,网络,环境,运行系统等等的工具ros2 doctor。ros2 doctor仅在Eloquent及更高的版本中可以使用。...

0. 简介

在面对ROS环境配置时,我们会发现,有的时候非常难查的问题有时候是因为ROS的CMakeList和package配置文件写的不对导致的。ROS1的时候就很无能为力,需要熟练地了解每个模块与配置。而ROS2中就提供了一个可以检测ros2的方方面面,包括平台,版本,网络,环境,运行系统等等的工具ros2 doctor。ros2 doctor仅在Eloquent及更高的版本中可以使用。同时ros2 doctor是ros2cli包的一部分。只要我们安装了ros2cli,我们就能够使用ros2 doctor,通常我们安装ros2的时候就安装了这个包。

1. 常用的命令指令

首先我们先来看一下ros2 docter的报告信息,这个ros2 docter显示了当前ROS2中所有的系统版本以及各个软件的版本和网络信息等。

ros2 doctor --report

   NETWORK CONFIGURATION
inet         : 192.168.227.128
inet4        : ['192.168.227.128']
ether        : 00:0c:29:b7:a6:2e
inet6        : ['fe80::4d41:28e0:7924:a3ab']
netmask      : 255.255.255.0
device       : ens33
flags        : 4163<UP,BROADCAST,RUNNING,MULTICAST> 
mtu          : 1500
broadcast    : 192.168.227.255
inet         : 127.0.0.1
inet4        : ['127.0.0.1']
inet6        : ['::1']
netmask      : 255.0.0.0
device       : lo
flags        : 73<UP,LOOPBACK,RUNNING> 
mtu          : 65536

   PACKAGE VERSIONS
ament_pep257                              : required=0.9.6, local=0.9.6
examples_rclcpp_minimal_action_client     : required=0.9.4, local=0.9.4
rviz2                                     : required=8.2.2, local=8.2.2
rosbag2_storage                           : required=0.3.8, local=0.3.8
diagnostic_msgs                           : required=2.0.4, local=2.0.4
intra_process_demo                        : required=0.9.3, local=0.9.3
sros2                                     : required=0.9.4, local=0.9.4
examples_rclcpp_minimal_subscriber        : required=0.9.4, local=0.9.4
examples_rclcpp_minimal_service           : required=0.9.4, local=0.9.4
console_bridge_vendor                     : required=1.2.4, local=1.2.4
tf2_tools                                 : required=0.13.11, local=0.13.10
ament_cmake_gmock                         : required=0.9.9, local=0.9.8
rosbag2_cpp                               : required=0.3.8, local=0.3.8
ament_cmake_export_interfaces             : required=0.9.9, local=0.9.8
rqt_gui                                   : required=1.1.2, local=1.1.1
ros2cli                                   : required=0.9.9, local=0.9.9
launch_testing_ros                        : required=0.11.3, local=0.11.2
quality_of_service_demo_py                : required=0.9.3, local=0.9.3
launch_ros                                : required=0.11.3, local=0.11.2
ament_cmake_test                          : required=0.9.9, local=0.9.8
rosidl_generator_cpp                      : required=1.2.1, local=1.2.1
ament_cmake_export_include_directories    : required=0.9.9, local=0.9.8
class_loader                              : required=2.0.2, local=2.0.2
examples_rclcpp_minimal_composition       : required=0.9.4, local=0.9.4
ament_cmake_python                        : required=0.9.9, local=0.9.8
ament_cmake_target_dependencies           : required=0.9.9, local=0.9.8
lifecycle                                 : required=0.9.3, local=0.9.3
zstd_vendor                               : required=0.3.8, local=0.3.8
examples_rclcpp_multithreaded_executor    : required=0.9.4, local=0.9.4
ament_cmake_export_targets                : required=0.9.9, local=0.9.8
ros2topic                                 : required=0.9.9, local=0.9.9
ament_cmake_pep257                        : required=0.9.6, local=0.9.6
visualization_msgs                        : required=2.0.4, local=2.0.4
ament_cmake_libraries                     : required=0.9.9, local=0.9.8
control_msgs                              : required=2.5.1, local=2.5.1
desktop                                   : required=0.9.2, local=0.9.2
tf2_geometry_msgs                         : required=0.13.11, local=0.13.10
rclcpp_lifecycle                          : required=2.3.1, local=2.3.1
rqt_action                                : required=1.0.1, local=1.0.1

....

   PLATFORM INFORMATION
system           : Linux
platform info    : Linux-5.11.0-27-generic-x86_64-with-glibc2.29
release          : 5.11.0-27-generic
processor        : x86_64

   RMW MIDDLEWARE
middleware name    : rmw_fastrtps_cpp

   ROS 2 INFORMATION
distribution name      : foxy
distribution type      : ros2
distribution status    : active
release platforms      : {'ubuntu': ['focal']}

   TOPIC LIST
topic               : none
publisher count     : 0
subscriber count    : 0

如果要检查保是否有问题,可以输入ros2 doctor来检测大概的ros2整体配置。具体操作为,先在终端source一下ros2环境变量,输入下面指令

ros2 doctor

这会检查所有的配置模块,并且返回警告和报错。如果你的系统是没有问题的,你会看见类似消息:

All <n> checks passed

然而,有一些警告返回是挺正常的.一条UserWarning消息并不意味着你的配置不可用的。它更可能仅是一个指导,(提醒)有些东西的配置方式并不理想。如果你使用了一个不稳定ros2版本的,ros2doctor会找到并返回警告:

UserWarning: Distribution <distro> is not fully supported or tested. To get more consistent features, download a stable version at https://index.ros.org/doc/ros2/Installation/

如果在你配置文件里面发现有一个奇怪的报错,UserWarning: ERROR:开头的,这个检查很可能被认为是有错的。

1/3 checks failed
Failed modules:  network

…详情请参照古月居

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。