Skip to content

调试 Autoware#

本页提供了一些调试 Autoware 的方法.

打印调试消息#

调试的本质是把程序信息打印清楚,这样可以快速判断程序运行情况,定位问题.Autoware 使用 ROS 2 日志工具打印调试消息,如何设计控制台日志参考教程 Console logging.

使用 ROS 工具调试 Autoware#

使用命令行工具#

ROS 2 包括一套用于内省 ROS 2 系统的命令行工具.这些工具的主要入口点是命令 ros2,它本身有各种子命令,用于内省和处理节点、主题、服务等.如何使用 ROS 2 命令行工具,请参考教程 CLI tools.

使用 rviz2#

Rviz2 是 Rviz 到 ROS 2 的端口.它为用户提供了一个图形界面,用于查看他们的机器人、传感器数据、地图等.您可以通过以下方式轻松运行 Rviz2 工具:

rviz2

当 Autoware 启动模拟器时,默认情况下会打开 Rviz2 工具以可视化 autopilot 图形信息.

使用 rqt 工具#

RQt 是一个图形用户界面框架,它以插件的形式实现各种工具和界面.您可以通过以下方式轻松运行任何 RQt 工具/插件:

rqt

此 GUI 允许您选择系统上的任何可用插件.您还可以在独立窗口中运行插件.例如,RQt 控制台:

ros2 run rqt_console rqt_console

常见的 RQt 工具#

  1. rqt_graph: View 节点交互

    在复杂的应用程序中,获得 ROS 节点交互的可视化表示可能会有所帮助.

    ros2 run rqt_graph rqt_graph
    
  2. rqt_console: 查看消息

    rqt_console 是查看 ROS 主题的出色 GUI.

    ros2 run rqt_console rqt_console
    
  3. rqt_plot: View 数据图

    rqt_plot 是一种实时绘制 ROS 数据的简单方法.

    ros2 run rqt_plot rqt_plot
    

使用 ros2_graph#

ros2_graph 可用于生成 ROS 2 图表的 mermaid 描述,以添加到您的 Markdown 文件中.

它也可以用作 rqt_graph 的彩色替代品,即使它需要一些工具来渲染生成的美人鱼图.

它可以安装:

pip install ros2-graph

然后,您可以使用以下命令生成图形的美人鱼描述:

ros2_graph your_node

# or like with an output file
ros2_graph /turtlesim -o turtle_diagram.md

# or multiple nodes
ros2_graph /turtlesim /teleop_turtle

然后,您可以使用以下方法可视化这些图表:

使用 ros2doctor#

当您的 ROS 2 设置没有按预期运行时,您可以使用 ros2doctor 工具检查其设置.

ros2doctor 检查 ROS 2 的所有方面,包括平台、版本、网络、环境、正在运行的系统等,并警告您可能的错误和问题原因.

就像在终端中运行 ros2 doctor 一样简单.

它能够列出系统中所有主题的 Subscribers without publishers .

此信息可以帮助您查找必要的节点是否未运行.

有关更多详细信息,请参阅以下 使用 ros2doctor 识别问题 的官方文档.

使用带断点的调试器#

许多 IDE(例如 Visual Studio Code、CLion)都支持在 linux 平台上使用 GBD 调试 C/C++ 可执行文件.下面列出了使用调试器的一些参考: