调试 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 工具#
-
rqt_graph: View 节点交互
在复杂的应用程序中,获得 ROS 节点交互的可视化表示可能会有所帮助.
ros2 run rqt_graph rqt_graph -
rqt_console: 查看消息
rqt_console 是查看 ROS 主题的出色 GUI.
ros2 run rqt_console rqt_console -
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
然后,您可以使用以下方法可视化这些图表:
- Mermaid Live Editor
- Visual Studio Code extension mermaid preview
- JetBrains IDEs with native support
使用 ros2doctor#
当您的 ROS 2 设置没有按预期运行时,您可以使用 ros2doctor 工具检查其设置.
ros2doctor 检查 ROS 2 的所有方面,包括平台、版本、网络、环境、正在运行的系统等,并警告您可能的错误和问题原因.
就像在终端中运行 ros2 doctor 一样简单.
它能够列出系统中所有主题的 Subscribers without publishers .
此信息可以帮助您查找必要的节点是否未运行.
有关更多详细信息,请参阅以下 使用 ros2doctor 识别问题 的官方文档.
使用带断点的调试器#
许多 IDE(例如 Visual Studio Code、CLion)都支持在 linux 平台上使用 GBD 调试 C/C++ 可执行文件.下面列出了使用调试器的一些参考: