RViz 用户指南

故障排除

如果您遇到问题并且没有看到下面的答案,请尝试搜索`答案<https://answers.ros.org>`_。

安装

请参阅`ROS 2 文档<https://docs.ros.org/en/rolling/Installation.html>`_ 中 ROS 2(包括 RViz)的安装说明。

启动

要启动可视化工具:

ros2 运行 rviz2 rviz2

当 rviz 首次启动时,您将看到一个空视图:

_images/empty-rviz.png

带有网格的中央区域是 3D 视图。 左侧是显示列表,将显示您已加载的任何显示。 目前它只包含全局选项和时间视图,稍后将对此进行解释。 右侧是下面介绍的一些其他面板。

显示

显示是在 3D 世界中绘制某些东西的东西,并且可能在显示列表中有一些可用的选项。 例如点云、机器人状态等。

添加新显示

要添加显示,请键入“control-N”(表示“new”)或单击底部的添加按钮:

_images/add-button.png

这将弹出新的显示对话框:

_images/add-display-dialog.png

顶部的列表显示可用的显示类型,按提供它们的插件分组。 中间的文本框提供所选显示类型的描述。 底部可以为显示的新实例指定名称,默认为类型名称。

显示属性

每个显示都有自己的属性列表。例如:

_images/display-properties.png

显示状态

每个显示都有自己的状态来显示一切是否正常。 状态将是以下之一:正常、警告、错误或已禁用。 状态通过显示标题中的文本颜色和图标以及在显示展开时可见的状态类别来指示:

_images/display-statuses.png

状态类别也会展开以显示特定状态信息。 此信息对于不同的显示器是不同的,并且消息应该是不言自明的。 显示器的顶级状态级别是根据最差的子状态设置的。

组织显示器

可以通过使用鼠标左键拖动显示器在列表中上下移动显示器。 可以选择多个显示器并将其拖动在一起。 还可以创建“组”显示器,用作其他显示器的容器。 可以与组的复选框一起启用和禁用组中的显示器。 在此示例中,“传感器数据”组已被禁用,而“计划”组已启用:

_images/grouped-displays.png

命名显示

在上面的例子中,“组”和“路径”显示已被赋予有意义的名称。 这可以在创建时在新显示对话框中完成(如上所述),也可以在以后的任何时间通过选择显示并键入“control-R”(表示“重命名”)或单击“重命名”按钮来完成。

配置

不同的显示配置通常对可视化器的不同用途有用。 例如,对完整 PR2 有用的配置不一定对测试车有用。 为此,可视化器可以加载和保存不同的配置。

配置包含:

  • 显示及其属性

  • 工具及其属性

  • 查看控制器类型和初始视点的设置,以及已保存的视图

  • 窗口布局和面板列表

RViz 将配置视为编辑器中的文件。 当打开配置文件、进行更改并触发“保存”菜单 (或控制键)时,原始配置文件将被覆盖。

当未指定配置文件时,rviz 会加载文件 ~/.rviz/default.rviz,如果不存在则创建该文件。

当使用默认配置文件以外的配置文件时,RViz 会在窗口标题栏中包含文件名。 文件名旁边的星号(“*”)表示自上次加载或保存配置以来已进行更改。 配置文件格式为 YAML。

视图面板

“视图”面板显示当前正在使用的视图控制器的属性,以及可选的已保存视图列表:

_images/views-panel.png

单击已保存的视图(上方的“顶视图”和“侧视图”)将其复制到“当前视图”条目并激活它。

当前视图的属性会随着视点在 3D 显示中使用鼠标移动而发生变化,但也可以通过键盘直接编辑它们以实现精确控制。

在视图面板顶部有一个标记为“类型”的组合框控件。 这可用于更改当前视图控制器的类型。

它的右侧是“零”按钮。 这会重置当前视图控制器以从短距离查看点“0, 0, 0”。 如果视点“丢失”,这对于返回已知位置很有用。 “零”的键盘快捷键是“z”。

内置视图类型

RViz 中的“视图”是视图控制器。 它们控制视点和相机投影。 有 4 种内置类型,但可以通过插件添加更多类型。

轨道(默认)

轨道相机只是围绕焦点旋转,同时始终 注视该点。 移动相机时,焦点会显示为一个小圆盘:

_images/focal-point.png

控件:

  • 鼠标左键:单击并拖动以围绕焦点旋转。

  • 鼠标中键:单击并拖动以在由相机的上下矢量形成的平面中移动焦点。移动的距离取决于焦点 - 如果焦点上有一个物体,并且您单击它,它将停留在鼠标下方。

  • 鼠标右键:单击并拖动以放大/缩小焦点。向上拖动放大,向下拖动缩小。

  • 滚轮:放大/缩小焦点

  • “f”键:将焦点移动到鼠标下方的任何 3D 对象。

XYOrbit

“XYOrbit”视图控制器与 Orbit 类似,但焦点 被限制为仅在 XY 平面中移动。 此外,焦点在窗口中保持较低位置,颜色为青色。

控件:

  • 鼠标左键:单击并拖动以围绕焦点旋转。

  • 鼠标中键:单击并拖动可在 XY 平面中移动焦点。移动的距离取决于焦点 - 如果焦点上有一个对象,并且您单击该对象,它将停留在鼠标下方。

  • 鼠标右键:单击并拖动可放大/缩小焦点。向上拖动可放大,向下拖动可缩小。

  • 滚轮:放大/缩小焦点

  • “f”键:将焦点移动到鼠标下方的任何 3D 对象。

FPS(第一人称射击游戏)

FPS 相机是第一人称相机,因此它会像您用头看一样旋转。

控制:

  • 鼠标左键:单击并拖动以旋转。按住 Control 键单击以选择鼠标下方的对象并直接查看它。

  • 鼠标中键:单击并拖动以沿由相机的向上和向右向量形成的平面移动

  • 鼠标右键:单击并拖动以沿相机的前向向量移动。向上拖动向前移动,向下拖动向后移动。

  • 滚轮:向前/向后移动

自上而下的正交

自上而下的正交相机始终沿 Z 轴(在机器人框架中)向下看,并且是正交视图,这意味着物体不会随着距离的增加而变小。

控件:

  • 鼠标左键:单击并拖动以围绕 Z 轴旋转

  • 鼠标中键:单击并拖动以沿 XY 平面移动相机

  • 鼠标右键:单击并拖动以缩放图像

  • 滚轮:缩放图像

坐标系

RViz 使用 tf 变换系统将数据从它到达的坐标系转换为全局参考系。 在可视化工具中,有两个坐标系很重要。这里有一个“视频解释了这两个坐标系<http://www.youtube.com/watch?v=rZ0xyzfG-tY>”_。

固定框架

两个框架中更重要的是固定框架。

固定框架是用于表示“世界”框架的参考框架。

这通常是“地图”或“世界”或类似的东西,但也可以是,

比如,里程表框架。

如果错误地将固定框架设置为机器人的底座,

那么机器人曾经见过的所有物体都将出现在机器人的前面,位于相对于机器人检测到它们的位置。

为了获得正确的结果,固定框架不应该相对于世界移动。

如果固定框架发生变化,则当前显示的所有数据都将被清除,而不是重新转换。

目标框架

大多数视图控制器都提供“目标框架”,为相机视图提供参考框架。 例如,如果目标框架是地图,您将看到机器人在地图上行驶。 如果目标框架是机器人的底座,机器人将保持在同一位置,而其他一切都相对于它移动。 内置视图控制器仅使用目标框架进行定位,而忽略其方向, 因此当机器人旋转时,您会看到它旋转,但当它行驶时,它将保持在视图中的同一位置。

工具

可视化器在工具栏上有许多可用的工具:

移动相机

  • 键盘快捷键:m

移动相机工具是默认工具。选择此选项后,当您在 3d 视图内单击时,当前视图将执行其操作。

交互

  • 键盘快捷键:i

交互工具允许使用交互式标记显示。 当鼠标不在交互式元素上时,它的行为类似于移动相机工具。

选择

  • 键盘快捷键:s

选择工具允许您选择 3D 视图中显示的项目。 它支持单点选择以及单击/拖动框选择。

_images/selection-box.png

一旦选择了对象,它们就会被青色的边界框包围,并且可以在“选择”面板中查看有关所选对象的信息。 在这里,您可以看到机器人链接“head_tilt_link”的位置已展开以显示 XYZ 坐标:

_images/selection-properties.png

您可以使用 Shift 键添加到选择中,并使用 Ctrl 键从选择中删除。 如果您想在选择时移动相机而不切换回移动相机工具,您可以按住 Alt 键。

f 键将使相机聚焦于当前选择。

2D 目标姿势

  • 键盘快捷键:g

此工具可让您设置在“/goal_pose”ROS 主题上发送的目标。

单击地面上的某个位置并拖动以选择方向。 可以在“工具属性”面板中更改输出主题。

此工具与导航堆栈配合使用。

2D 姿势估计

  • 键盘快捷键:p

此工具可让您设置初始姿势以播种定位系统(在“/initialpose”ROS 主题上发送)。 单击地面上的某个位置并拖动以选择方向。 可以在“工具属性”面板中更改输出主题。

此工具与导航堆栈配合使用。

时间

时间面板在模拟器中运行时非常有用:它允许您查看 ROS 时间已过去多少,以及“挂钟”(即真实)时间已过去多少。

时间面板还允许您重置可视化器的内部时间 状态 - 这会导致所有显示重置,以及 tf 的内部数据缓存重置。

_images/time-panel.png

如果您没有在模拟中运行,时间面板几乎是无用的。 在大多数情况下,它可以关闭,您可能甚至不会注意到(除了为 rviz 的其余部分留出更多的屏幕空间)。

插件

RViz 的设置使得可以通过插件添加新的显示、工具、视图控制器和面板。 已安装的插件会自动编入索引并在 RViz 中提供。

有关编写您自己的 RViz 插件的信息,请参阅插件教程 the RViz tutorials wiki page.

​ Auto