RViz 用户指南

目标 了解 RViz

辅导水平: 中级

时间 25 分钟

背景介绍

RViz 是机器人操作系统(ROS)框架的三维可视化器。

安装或构建 rviz

按照 安装说明 操作系统来安装 RViz。

启动

不要忘记为设置文件提供源代码。

消息来源 /opt/ros/jazzy/setup.bash

然后启动展示台

玫瑰2 运行 rviz2 rviz2

首次启动 RViz 时,您将看到此窗口:

.././././././_images/initial_startup.png

中间的黑色大窗口是 3D 视图(空的,因为什么都看不到)。左侧是 "显示 "列表,会显示已加载的任何显示。现在它只包含全局选项和一个网格,我们稍后再讨论。右侧是其他一些面板,具体介绍如下。

显示屏

显示屏是在三维世界中绘制某样东西的设备,在显示屏列表中可能有一些可用的选项。例如点云、机器人状态等。

添加新的显示屏

要添加显示屏,请单击底部的添加按钮:

.././././././_images/add-button.png

这样就会弹出新的显示对话框:

.././././././_images/add-display-dialog.png

顶部的列表包含显示类型。该类型详细说明了该显示屏将可视化哪类数据。中间的文本框给出了所选显示类型的描述。最后,必须为显示屏命名。例如,如果您的机器人上有两个激光扫描仪,您可以创建两个 激光 扫描 显示屏名为 "激光底座 "和 "激光头"。

显示属性

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

.././././././_images/display-properties.png

显示状态

每个显示屏都有自己的状态,以帮助您了解一切是否正常。状态可以是 好的, 警告, 错误残疾.状态会通过背景颜色显示在显示标题中,并在状态类别中显示(如果显示已展开):

.././././././_images/display-status.png

"(《世界人权宣言》) 现状 类别也会扩展,以显示特定的状态信息。这些信息在不同的显示屏上会有所不同,而且信息应该是不言自明的。

内置显示屏类型

名称

说明

使用的信息

显示一组坐标轴

努力

显示机器人每个旋转接头所承受的力

sensor_msgs/msg/JointStates

照相机

从摄像机的角度创建一个新的渲染窗口,并在其上叠加图像。

传感器_msgs/msg/图像, sensor_msgs/msg/CameraInfo

网格

沿平面显示二维或三维网格

网格单元

从网格中绘制单元格,通常是从成本图中的障碍物绘制单元格。 导航 一叠

nav_msgs/msg/GridCells

图片

用图像创建一个新的渲染窗口。与相机显示屏不同,该显示屏不使用 CameraInfo

传感器_msgs/msg/图像

互动标记

显示来自一个或多个交互式标记服务器的 3D 物体,并允许鼠标与之交互

visualization_msgs/msg/InteractiveMarker

激光扫描

显示激光扫描数据,并提供不同的渲染模式、累积等选项。

sensor_msgs/msg/LaserScan

地图

在地平面上显示地图。

nav_msgs/msg/OccupancyGrid

标记

允许程序员通过主题显示任意原始图形

visualization_msgs/msg/Marker, visualization_msgs/msg/MarkerArray

路径

显示从 导航 一叠

nav_msgs/msg/Path

将点绘制成一个小球体。

geometry_msgs/msg/PointStamped

姿势

将姿势绘制成箭头或轴线。

geometry_msgs/msg/PoseStamped

姿势阵列

绘制箭头 "云",姿势数组中的每个姿势对应一个箭头

geometry_msgs/msg/PoseArray

点云(2)

显示点云数据,并提供不同的渲染模式、累积等选项。

sensor_msgs/msg/PointCloud, sensor_msgs/msg/PointCloud2

多边形

用线条绘制多边形的轮廓。

几何_msgs/msg/多边形

测距

累积一段时间内的测距姿势。

nav_msgs/msg/Odometry

范围

显示代表声纳或红外测距传感器测距结果的锥形。版本:电+

传感器_msgs/msg/范围

机器人模型

显示机器人的正确姿势(由当前 TF 变换定义)。

TF

显示 tf2 转换等级。

扳手

将扳手画成箭头(力)和箭头+圆圈(扭矩)

geometry_msgs/msg/WrenchStamped

扭转

以箭头(线性)和箭头 + 圆圈(角度)的形式绘制扭曲图像

geometry_msgs/msg/TwistStamped

配置

不同的显示器配置通常适用于展示台的不同用途。例如,对完整的 PR2 有用的配置并不一定对测试车有用。为此,展示台允许你加载和保存不同的配置。

配置包含

  • 显示屏及其属性

  • 工具属性

  • 三维可视化的视角和设置

意见小组

展示台中有多种不同类型的摄像机。

.././././././_images/camera-types.png

摄像机类型包括不同的摄像机控制方式和不同的投影类型(正射与透视)。

轨道相机(默认)

轨道相机只需围绕一个焦点旋转,同时始终注视该点。当你移动相机时,焦点会被想象成一个小圆盘:

.././././././_images/focal-point.png

控制装置

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

  • 鼠标中键:单击并拖动可在摄像机的上下矢量形成的平面内移动焦点。移动的距离取决于焦点--如果焦点上有一个物体,您点击它的顶部,它就会停留在您的鼠标下方。

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

  • 滚轮:放大/缩小焦点

FPS(第一人称)摄像机

FPS 摄像头是第一人称摄像头,因此它的旋转效果就像你在用头观看一样。

控制装置

  • 鼠标左键:点击并拖动旋转。按住 Control 键可选中鼠标下的物体并直接观察。

  • 鼠标中键:点击并拖动,沿着摄像机的上下矢量形成的平面移动。

  • 鼠标右键:单击并拖动可沿着摄像机的前向矢量移动。向上拖动向前移动,向下拖动向后移动。

  • 滚轮:前进/后退。

自顶向下正字法

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

控制装置

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

  • 鼠标中键:单击并拖动摄像机沿 XY 平面移动。

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

  • 滚轮:缩放图像。

XY 轨道

与轨道相机相同,聚焦点仅限于 XY 平面。

控制装置

参见轨道照相机。

第三人称追随者

摄像机对目标帧保持恒定的视角。与 XY Orbit 相反,如果目标帧偏移,摄像机就会转向。例如,在对有拐角的走廊进行 3D 贴图时,这将非常方便。

控制装置

参见轨道照相机。

自定义视图

通过视图面板还可以创建不同的命名视图,这些视图可以保存并在不同视图之间切换。视图由目标帧、摄像机类型和摄像机姿态组成。单击视图面板上的 "保存 "按钮即可保存视图。

.././././././_images/views.png

视图包括

  • 查看控制器类型

  • 视图配置(位置、方向等;每种视图控制器类型可能不同。)

  • 目标框架

视图是按用户保存的,而不是保存在配置文件中。

坐标框架

RViz 使用 tf 变换系统将数据从到达时的坐标框架变换到全局参考框架。在可视化工具中,有两个坐标框架需要了解,即目标框架和固定框架。

固定框架

这两个框架中更重要的是固定框架。固定框架是用来表示 世界 框架。这通常是 地图世界或类似的东西,但也可以是你的里程测量框架。

如果错误地将固定框架设置为机器人的基座,那么机器人所看到的所有物体都会出现在机器人的前方,与机器人的相对位置一致。为了获得正确的结果,固定框架不应相对于世界移动。

如果更改固定框架,当前显示的所有数据将被清除,而不是重新转换。

目标框架

目标帧是摄像机视图的参考帧。例如,如果您的目标帧是地图,您将看到机器人在地图上行驶。如果目标帧是机器人的底座,那么机器人将停留在原地,而其他物体则相对于机器人移动。

工具

展示台的工具栏上有许多工具可供使用。下文将简要介绍这些工具。你可以在帮助 -> 显示帮助面板中找到更多信息。

.././././././_images/tool.png

互动

通过该工具,您可以与可视化环境进行交互。您可以点击对象,然后根据其属性简单地选择它们、移动它们等等。

键盘快捷键 i

移动摄像机

移动摄像机工具是默认工具。选择该工具并在 3D 视图中单击后,视角会根据您在 "移动摄像机 "选项中选择的选项和摄像机类型发生变化。 意见 面板。参见前一节 意见 小组 了解更多信息。

键盘快捷键 m

选择

选择工具允许您选择 3D 视图中显示的项目。它支持单点选择以及单击/拖动框选择。您可以使用 Shift 键添加选区,使用 Ctrl 键删除选区。如果想在选择的同时移动摄像机,而不切换回移动摄像机工具,可以按住 Alt 键。移动 f 键将镜头对准当前选择。

.././././././_images/selection_highlight.png .././././././_images/selection_selected.png

键盘快捷键 s

对焦相机

聚焦摄像机可让您在显像器中选择一个位置。然后,摄像机将通过改变方向而非位置来对焦该点。

键盘快捷键 c

测量

使用测量工具,您可以测量可视化界面中各点之间的距离。激活工具后的第一次点击将设置测量的起点,第二次点击将设置测量的终点。测量得出的距离将显示在 RViz 窗口的底部。但请注意,测量工具仅适用于可视化窗口中实际渲染的对象,无法在空白空间中使用。

.././././././_images/measure.png

键盘快捷键 n

二维姿势估计

通过该工具,您可以设置一个初始姿态,为定位系统播种(发送到 初始提案 ROS 主题)。点击地平面上的某个位置并拖动以选择方向。输出主题可在 工具 属性 面板。

.././././././_images/set_pose.png

该工具与 导航 一叠

键盘快捷键 p

二维导航目标

该工具可让您设定一个目标,发送到 目标 ROS 主题。点击地平面上的某个位置并拖动以选择方向。输出主题可在 工具 属性 面板。

该工具与 导航 一叠

键盘快捷键 g

发布点

通过发布点工具,您可以在可视化窗口中选择一个对象,该工具会根据框架发布该点的坐标。结果会像测量工具一样显示在底部,但也会发布在 点击点 主题。

键盘快捷键 u

时间

在模拟器中运行时,时间面板非常有用,因为它可以让您查看 ROS 时间的流逝情况,以及与之相对的 墙壁 时钟 (又称真实)时间已过。时间面板还可以重置展示台的内部时间状态,从而重置所有显示屏和 tf 的内部数据缓存。

.././././././_images/time.png

如果不是在模拟中运行,时间面板基本上没有什么用处。在大多数情况下,可以关闭时间面板,您可能根本不会注意到(除了为 rviz 的其他部分增加了一些屏幕空间)。