ROS2中解决rqt_graph不显示系统结构以及interface不能查看数据类型具体的数据结构问题

本文记录了在使用ROS2过程中遇到的两个问题:rqt_graph无法正常显示网络形态和使用interface查看数据类型时的报错。作者提供了详细的解决步骤和可能的原因分析。
摘要由CSDN通过智能技术生成

背景:


在上篇博客中,详细介绍了安装ROS的过程,参考链接:https://blog.csdn.net/zhangzhangshu/article/details/135701875

安装完成后,跟着古月大佬学习ROS2,在这个过程中,遇到了不少问题,今天这篇博客主要介绍其中的两个,以及对应的解决方案。


遇到问题及解决办法

先放上两个问题的报错内容:
问题一:rqt_graph可视化工具不能正常显示网络形态
显示空白
问题二:使用interface查看数据类型具体的数据结构报错
报错内容:

Traceback (most recent call last):
  File "/opt/ros/humble/bin/ros2", line 33, in <module>
    sys.exit(load_entry_point('ros2cli==0.18.7', 'console_scripts', 'ros2')())
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2cli/cli.py", line 89, in main
    rc = extension.main(parser=parser, args=args)
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2interface/command/interface.py", line 35, in main
    return extension.main(args=args)
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2interface/verb/show.py", line 201, in main
    _show_interface(
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2interface/verb/show.py", line 148, in _show_interface
    for line in _get_interface_lines(interface_identifier):
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2interface/verb/show.py", line 116, in _get_interface_lines
    yield InterfaceTextLine(
  File "/opt/ros/humble/lib/python3.10/site-packages/ros2interface/verb/show.py", line 43, in __init__
    msg_spec = parse_message_string(
  File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/parser.py", line 544, in parse_message_string
    msg = MessageSpecification(pkg_name, msg_name, fields, constants)
  File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/parser.py", line 388, in __init__
    self.base_type = BaseType(
  File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/parser.py", line 205, in __init__
    raise InvalidResourceName(
rosidl_adapter.parser.InvalidResourceName: 'Spawn.srv' is an invalid message name. It should have the pattern '^[A-Z][A-Za-z0-9]*$'

问题一:rqt_graph可视化工具不能正常显示网络形态

在“理解话题”这篇教程中,教程地址:https://www.guyuehome.com/10560 ,在终端输入下面指令可以启动小海龟仿真器,

ros2 run turtlesim turtlesim_node

运行结果:
启动小海龟程序
ctrl + alt + t 打开一个新的终端,输入下面命令可以控制小海龟的移动。

ros2 run turtlesim turtle_teleop_key

运行结果:
控制小海龟运动
下面我们希望通过rqt_graph这个可视化工具来查看整个系统的状态。 但是在终端中输入指令后,并没有看到系统的状态。

rqt_graph

运行结果如下图:
可视化界面是空白

解决办法

在终端中输入下列命令:

ros2 run rqt_gui rqt_gui

运行结果:
运行界面还是空白
发现这时候运行界面还是空白,此时把Node Graph 这个窗口关掉,然后根据下图依次选择。
选择系统图
执行结果:
只看节点图
通过选择不同的选项,可以看到不同层次的系统图,如下图:
只看节点和话题


问题二:使用interface查看数据类型具体的数据结构报错

在“理解服务”这篇教程中,https://www.guyuehome.com/10721,我们希望查看数据类型具体的数据结构,执行教程上的命令后,会报错。如下图:
报错分析
通过报错: rosidl_adapter.parser.InvalidResourceName: 'Spawn.srv' is an invalid message name. It should have the pattern '^[A-Z][A-Za-z0-9]*$', 可以看出来报错的原因是:无效的消息名字,Spawn.srv 不符合后面的正则表达式要求的形式。解决方案:
解决方案图片
我猜想版本更新之后,不需要.后缀来表示文件的类型,ROS应该有自己的区分办法(一点不成熟的猜想)。
类似的问题,在后面理解动作的教程中也出现了,https://www.guyuehome.com/10898
如下图:
理解动作中的报错
解决之后的结果图:
解决之后的结果图


小结:

在学习的过程中,总会遇到这样那样的问题,不要气馁,仔细分析,总是可以解决的,大家一起加油!

  • 31
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值