ros2 doctor快速排查工具
【摘要】 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)