RViz 用户指南
目标: 了解 RViz
教程级别: 中级
时间: 25 分钟
背景
RViz 是机器人操作系统 (ROS) 框架的 3D 可视化工具。
安装或构建 rviz
按照适用于您的操作系统的 安装说明 安装 RViz。
启动
不要忘记获取安装文件。
source /opt/ros/rolling/setup.bash
然后启动可视化工具
ros2 run rviz2 rviz2
当 RViz 首次启动时,您将看到此窗口:
中间的大黑色窗口是 3D 视图(因为什么都看不到所以是空的)。 左侧是显示列表,其中将显示您已加载的所有显示。 现在它只包含全局选项和网格,我们稍后会介绍。 右侧是其他一些面板,如下所述。
显示
显示是在 3D 世界中绘制某些东西的东西,并且可能在显示列表中有一些可用的选项。 例如点云、机器人状态等。
添加新显示
要添加显示,请单击底部的添加按钮:
这将弹出新的显示对话框:
顶部的列表包含显示类型。 类型详细说明了此显示将可视化哪种数据。 中间的文本框给出了所选显示类型的描述。 最后,您必须为显示指定一个唯一的名称。 例如,如果您的机器人上有两个激光扫描仪,您可以创建两个名为“激光底座”和“激光头”的“激光扫描”显示。
显示属性
每个显示器都有自己的属性列表。 例如:
显示状态
每个显示都有自己的状态,以帮助您了解一切是否正常。 状态可以是以下之一:“正常”、“警告”、“错误”或“已禁用”。 状态通过显示标题的背景颜色指示, 以及在显示展开时您可以查看的状态类别:
“状态”类别也扩展以显示特定状态信息。
此信息对于不同的显示器是不同的,并且消息应该是不言自明的。
内置显示类型
Name |
Description |
Messages Used |
---|---|---|
Axes |
Displays a set of Axes |
|
Effort |
Shows the effort being put into each revolute joint of a robot |
|
Camera |
Creates a new rendering window from the perspective of a camera, and overlays the image on top of it. |
|
Grid |
Displays a 2D or 3D grid along a plane |
|
Grid Cells |
Draws cells from a grid, usually obstacles from a costmap from the navigation stack. |
|
Image |
Creates a new rendering window with an Image. Unlike the Camera display, this display does not use a CameraInfo |
|
InteractiveMarker |
Displays 3D objects from one or multiple Interactive Marker servers and allows mouse interaction with them |
|
Laser Scan |
Shows data from a laser scan, with different options for rendering modes, accumulation, etc. |
|
Map |
Displays a map on the ground plane. |
|
Markers |
Allows programmers to display arbitrary primitive shapes through a topic |
visualization_msgs/msg/Marker, visualization_msgs/msg/MarkerArray |
Path |
Shows a path from the navigation stack. |
|
Point |
Draws a point as a small sphere. |
|
Pose |
Draws a pose as either an arrow or axes. |
|
Pose Array |
Draws a “cloud” of arrows, one for each pose in a pose array |
|
Point Cloud(2) |
Shows data from a point cloud, with different options for rendering modes, accumulation, etc. |
|
Polygon |
Draws the outline of a polygon as lines. |
|
Odometry |
Accumulates odometry poses from over time. |
|
Range |
Displays cones representing range measurements from sonar or IR range sensors. Version: Electric+ |
|
RobotModel |
Shows a visual representation of a robot in the correct pose (as defined by the current TF transforms). |
|
TF |
Displays the tf2 transform hierarchy. |
|
Wrench |
Draws a wrench as arrow (force) and arrow + circle (torque) |
|
Twist |
Draws a twist as arrow (linear) and arrow + circle (angular) |
配置
不同的显示器配置通常适用于可视化器的不同用途。 例如,对完整 PR2 有用的配置不一定对测试车有用。 为此,可视化器允许您加载和保存不同的配置。
配置包含:
显示器 + 其属性
工具属性
3D 可视化的视点和设置
视图面板
可视化器中有多种不同类型的相机。
相机类型包括不同的相机控制方式和不同类型的投影(正交与透视)。
轨道摄像机(默认)
轨道摄像机只是围绕焦点旋转,同时始终注视该点。 移动摄像机时,焦点会显示为一个小圆盘:
控制:
鼠标左键:单击并拖动以围绕焦点旋转。
鼠标中键:单击并拖动以在由相机的上下矢量形成的平面中移动焦点。移动的距离取决于焦点——如果焦点上有一个物体,并且您单击它上面,它将停留在鼠标下方。
鼠标右键:单击并拖动以放大/缩小焦点。向上拖动放大,向下拖动缩小。
滚轮:放大/缩小焦点
FPS(第一人称)相机
FPS 相机是第一人称相机,因此它会像您用头看一样旋转。
控制:
鼠标左键:单击并拖动以旋转。按住 Control 键单击以选择鼠标下方的物体并直接查看它。
鼠标中键:单击并拖动以沿由相机的上下矢量形成的平面移动。
鼠标右键:单击并拖动以沿相机的前向矢量移动。向上拖动向前移动,向下拖动向后移动。
滚轮:向前/向后移动。
自上而下的正交
自上而下的正交相机始终沿 Z 轴向下看(在机器人框架中), 并且是正交视图,这意味着物体不会随着距离变远而变小。
控制:
鼠标左键:单击并拖动以围绕 Z 轴旋转。
鼠标中键:单击并拖动以沿 XY 平面移动相机。
鼠标右键:单击并拖动以缩放图像。
滚轮:缩放图像。
XY 轨道
与轨道相机相同,焦点限制在 XY 平面上。
控件:
参见轨道相机。
第三人称跟随者
相机保持朝向目标框架的恒定视角。 与 XY 轨道相反,如果目标框架偏航,相机就会转动。 例如,如果您正在对有角落的走廊进行 3D 映射,这可能会很方便。
控件:
参见轨道相机。
自定义视图
视图面板还允许您创建不同的命名视图,这些视图会被保存并可在它们之间切换。 视图由目标框架、相机类型和相机姿势组成。 您可以通过单击视图面板的“保存”按钮来保存视图。
视图由以下部分组成:
视图控制器类型
视图配置(位置、方向等;可能因视图控制器类型而异。)
目标框架
视图按用户保存,而不是保存在配置文件中。
坐标框架
RViz 使用 tf 变换系统将数据从其到达的坐标框架转换为全局参考框架。
在可视化工具中,有两个坐标框架很重要,即目标框架和固定框架。
固定框架
这两个框架中更重要的是固定框架。 固定框架是用于表示“世界”框架的参考框架。 这通常是“地图”或“世界”或类似的东西,但也可以是您的里程表框架。
如果错误地将固定框架设置为机器人的底座,那么机器人曾经见过的所有物体都会出现在机器人前面,相对于检测到它们的机器人的位置。 为了获得正确的结果,固定框架不应相对于世界移动。
如果更改固定框架,则当前显示的所有数据都将被清除,而不是重新转换。
目标框架
目标框架是相机视图的参考框架。 例如,如果您的目标框架是地图,您将看到机器人在地图上行驶。 如果您的目标框架是机器人的底座,机器人将保持在同一位置,而其他一切都相对于它移动。
工具
可视化工具在工具栏上有许多您可以使用的工具。 以下部分将简要介绍这些工具。 您可以在帮助 -> 显示帮助面板下找到更多信息。
交互
此工具可让您与可视化环境进行交互。 您可以单击对象,并根据其属性简单地选择它们、移动它们等等。
键盘快捷键:“i”
移动相机
移动相机工具是默认工具。 选择该工具并单击 3D 视图内部时,视点会根据您在“视图”面板中选择的选项和相机类型而变化。有关更多信息,请参阅上一节“视图面板”。
键盘快捷键:“m”
选择
选择工具允许您选择 3D 视图中显示的项目。 它支持单点选择以及单击/拖动框选择。 您可以使用 Shift 键添加到选择中,并使用 Ctrl 键从选择中删除。 如果您想在选择时移动相机而不切换回移动相机工具,您可以按住 Alt 键。 “f”键将使相机聚焦于当前选择。
键盘快捷键:s
对焦相机
对焦相机可让您在可视化工具中选择一个位置。 然后,相机将通过改变其方向(但不改变其位置)来对焦该点。
键盘快捷键:c
测量
使用测量工具,您可以测量可视化工具中两个点之间的距离。 激活工具后,第一次单击将设置测量的起点,第二次单击将设置测量的终点。 结果距离将显示在 RViz 窗口的底部。 但请注意,测量工具仅适用于可视化工具中实际渲染的对象,您不能在空白处使用它。
键盘快捷键:n
2D 姿势估计
此工具可让您设置初始姿势以播种定位系统(在 initialpose
ROS 主题上发送)。
单击地面上的某个位置并拖动以选择方向。
可以在``工具属性``面板中更改输出主题。
此工具与 navigation 堆栈配合使用。
键盘快捷键:p
发布点
发布点工具可让您在可视化器中选择一个对象
并且该工具将根据框架发布该点的坐标。
结果像测量工具一样显示在底部,但也发布在 clicked_point
主题上。
键盘快捷键:u
时间
时间面板在模拟器中运行时非常有用,因为它可以让您看到 ROS 时间已经过去了多少,以及``挂钟``(又称真实时间)已经过去了多少。 时间面板还允许您重置可视化器的内部时间状态,这将重置所有显示以及 tf 的内部数据缓存。
如果您没有在模拟中运行,时间面板几乎毫无用处。 在大多数情况下,它可以关闭,您可能甚至不会注意到(除了为 rviz 的其余部分提供更多的屏幕空间)。