0.rviz介绍

rviz是ROS自带的图形化工具,可以很方便的让用户通过图形界面开发调试ROS。

参考官网 rviz/UserGuide

1.安装

根据自己的版本号,在下面选择对应的命令执行。以ROS melodic版本为例,就运行“

sudo apt-get install ros-melodic-rviz
sudo apt-get install ros-groovy-rviz
# or
sudo apt-get install ros-hydro-rviz
# or
sudo apt-get install ros-indigo-rviz
# or
sudo apt-get install ros-kinetic-rviz
# or
sudo apt-get install ros-melodic-rviz
# or
sudo apt-get install ros-noetic-rviz

2.启动

运行如下命令启动

首先source一下,以免ros指令报错,再开roscore

source /opt/ros/indigo/setup.bash
roscore &

然后运行rviz:

rosrun rviz rviz

当 rviz 第一次启动时,您将看到一个空窗口:

中间的黑框是 3D 视图 (因为现在是空的所以什么也没有) 。左侧是显示元素(Displays)列表,它将显示您已加载的任何显示元素。现在它只是包含全局设置和时间。右侧是一些其他面板。

3.Displays显示元素

显示元素在 3D 世界中绘制物体,并且可能在左侧显示元素列表中提供了一些选项。例如点云、机器人状态等。

3.1 新增一个新的显示元素display

点击界面左下角Add按钮

这将弹出新的对话框:

顶部的列表包含Display type显示类型。中间的description框详细描述你选中的要显示的元素究竟是什么。

最后,您必须给这个显示元素命名display name。例如,如果您的机器人上有两台激光雷达,您可以创建两个名为"底部激光雷达laser base"和"顶部激光雷达laser head",display type显示类型为laser scan(激光雷达)的俩两个显示元素displays。

3.2 Display Properties 显示元素属性

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

3.3 Display Status 显示元素状态

每个显示元素display都有自己的状态,以帮助您知道是否一切正常。状态可以是OKWarningError , Disabled里的一个。显示元素状态通过背景颜色以及状态类别在显示元素标题中表示,如果点开每个显示元素的下拉列表,则可以看到:

Stautus栏可以继续点开下拉列表来显示具体的状态信息。这个信息各个显示元素是不同的,msg消息是能够自动解析的。

3.4 Moving Displays 移动显示元素

你可以在左侧的显示元素列表里上下移动显示元素,通过下方的Add/Remove右侧的箭头。

3.5 Built-in Display Types 内置显示元素类型

名字

描述

使用的消息

轴 Axes

显示一系列坐标轴

Effort

显示机器人每个关节x相关状态信息。

sensor_msgs/JointStates

照相机Camera

从相机的角度创建新的渲染窗口,并将图像叠加在该窗口上。

sensor_msgs/Image, sensor_msgs/CameraInfo

网 格Grid

沿平面显示 2D 或 3D 网格

网格单元格Grid Cells

从网格中提取单元格,通常是从导航中costmap中的障碍物。

nav_msgs/GridCells

图像Image

使用"图像"创建新的渲染窗口。与相机显示元素不同,此显示元素不使用相机信息。

sensor_msgs/Image

交互式标记

InteractiveMarker

从一个或多个交互式标记服务显示 3D 对象,并允许鼠标与它们进行交互。

visualization_msgs/InteractiveMarker

激光雷达

Laser Scan

显示来自激光扫描的数据,具有不同的渲染模式、聚集等选项。

sensor_msgs/LaserScan

地图

Map

在地平面上显示地图。

nav_msgs/OccupancyGrid

标记

Markers

使得程序员可以通过特定话题topic显示任意物体原始形状

visualization_msgs/Marker, visualization_msgs/MarkerArray

路径

Path

显示从导航模块传来的路径。

nav_msgs/Path

Point

将一个点绘制为小球体。

geometry_msgs/PointStamped

姿态

Pose

用箭头或轴表示一个姿态。

geometry_msgs/PoseStamped

姿势阵列

Pose Array

用箭头绘制姿态阵列中每一个姿态

geometry_msgs/PoseArray

点云 (2)

Point Cloud(2)

显示来自点云的数据,具有不同的渲染模式、聚集等选项。

sensor_msgs/PointCloud, sensor_msgs/PointCloud2

多边形

Polygon

将多边形的轮廓绘制为线条。

geometry_msgs/Polygon

里程计坐标Odometry

时间上累计的里程计坐标

nav_msgs/Odometry

范围

Range

显示表示声纳或红外范围传感器测量的圆锥形范围

sensor_msgs/Range

机器人模型

RobotModel

以正确的姿势显示机器人的3D模型(由当前 TF 转换定义)。

TF

显示tf转换层次结构。

手部动作

Wrench

绘制圆形箭头代表扭矩,直线箭头代表力

geometry_msgs/WrenchStamped

眼视图

Oculus

将 RViz 场景渲染为 眼视图?

4. 配置 Configurations

可视化显示元素以及界面相关设置被称为配置?

不同的显示元素的配置configuration通常适用于可视化工具的不同用途。为此,可视化工具允许您加载和保存不同的配置。

配置包含:

  • 显示元素+ 其属性                         Displays + their properties
  • 工具属性                                       Tool properties
  • 相机类型 + 初始视点的设置          Camera type + settings for the initial viewpoint

5. Views Panel 视图面板

rviz右侧views面板

可视化工具中有许多不同的相机类型可用

这里的相机指的是可视化显示的视角?

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

5.1 The different camera types 不同的相机类型

5.1.1 轨道相机(默认)Orbital Camera (default)

轨道相机只是围绕一个焦点旋转,同时总是看着那个点。当您移动相机时,焦点被可视化为一个小圆盘:

就是你的视角只能绕着一个中心点旋转?

控制

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

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

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

  • 滚轮:放大/缩小焦点

5.1.2 第一人称视角摄像机 FPS (first-person) Camera

FPS相机是第一人称相机,因此它可以旋转,就像你用头看一样。

控制

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

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

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

  • 滚轮:向前/向后移动

5.1.3 自上而下的正交视图

自上而下的正交相机始终沿着Z轴向下看(在机器人本体坐标系下),并且是正交视图,这意味着事物不会随着距离越来越远而变小。我理解就是俯视图/鸟瞰图视角?

控制

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

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

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

  • 滚轮:缩放图像

5.1.4 XY 轨道

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

控制

参见轨道相机。

5.2 视图

视图面板还允许您创建不同的命名视图,这些视图已保存并且可以在视图之间切换。视图由目标帧、相机类型和相机姿势(a target frame, camera type and camera pose)组成。您可以通过单击"保存当前数据"按钮来保存视图。

视图包括:

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

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

6. 坐标系Coordinate Frames

rviz 使用tf变换系统将数据从它到达的坐标系转换为全局参考系。在可视化工具中,有两个坐标系非常重要。

6.1 固定坐标系 The Fixed Frame

两个坐标系中更重要的是固定坐标系。固定坐标系是用于表示"世界"坐标系的参考系。这通常是"地图",或"世界"或类似的东西,但也可以是,例如,你的里程计坐标。

如果固定坐标系被错误地设置为机器人的底部,那么机器人曾经见过的所有物体都将出现在机器人的前面,相对于检测到它们的机器人的位置。为了获得正确的结果,固定坐标系不应相对于世界坐标系移动

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

6.2 目标坐标系The Target Frame

目标坐标系是照相机视图的参考坐标系。例如,如果您的目标坐标系是地图,您将看到机器人在地图上行驶。如果您的目标框架是机器人的底部,则机器人将停留在同一位置,而其他所有内容都相对于它移动。

7.工具

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

7.1 移动相机(键盘快捷键:m)

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

7.2 选择(键盘快捷键:s)

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

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

f键会将相机聚焦在当前选择上。

7.3 2D 导航目标(键盘快捷键:g)

此工具允许您设置在"目标"ROS 主题上发送的目标。单击地平面上的位置,然后拖动以选择方向:

此工具适用于导航模块。

7.4 2D 姿势估计(键盘快捷键:p)

此工具允许您设置初始位置以定位系统(在"initialpose"ROS 主题上发送)。单击地平面上的位置,然后拖动以选择方向:

此工具适用于导航模块。

8. 时间

模拟器中运行时,时间面板最有用:它允许您查看经过了多少ROS时间,以及"挂钟"(又名实时)时间已经过去了多少。时间面板还允许您重置可视化工具的内部时间状态 - 这会导致重置所有显示,以及重置tf的内部数据缓存。

9. 立体效果

Rviz 可以以 3D 立体进行渲染,如果你有一个显卡、显示器和眼镜支持它。

10.插件 Plugins

rviz的设置使得可以通过插件添加新的显示元素Displays。实际上,即使是内置显示元素也是通过"默认"插件加载的。对于您(用户)来说,最终结果是有一种方法可以从UI加载/卸载插件。如果您选择插件>管理...菜单项,它将弹出一个对话框,让您管理加载/卸载插件:

如果您卸载了已激活显示的插件Plugin,它们将不再显示任何内容,但将保留其设置:

rviz-Ros Wiki官网教程学习笔记(1)-用户指南相关推荐

  1. 2. ROS安装(官网教程/简单好用)

    >>点赞,收藏+关注,理财&技术不迷路<< https://www.ros.org/  本文翻译自官网安装教程,附上原网站 目录: 安装 配置您的Ubuntu存储库 配 ...

  2. 《wiki官网教程》1 在catkin_ws空间下创建、编译程序包

    从头开始创建工作空间catkin_ws: $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/ $ catkin_make 加载setup.bash文件,不用每次打 ...

  3. Spring Cloud学习笔记—网关Spring Cloud Gateway官网教程实操练习

    Spring Cloud学习笔记-网关Spring Cloud Gateway官网教程实操练习 1.Spring Cloud Gateway介绍 2.在Spring Tool Suite4或者IDEA ...

  4. CMake学习笔记(一)——CMake官网教程

    CMake学习笔记(一)--CMake官网教程 前言: 经历了一星期痛苦的交叉编译,笔者深刻认知到Linux下make的重要性.所以准备放缓两三天自己的工作进度,并学习一下CMake与Makefile ...

  5. 新学Python之学习官网教程序言

      大家好,我是 herosunly.985 院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用.曾获得阿里云天池安全恶意程序检测第一名,科大讯飞恶意软件分类挑战赛第三名,CCF 恶意软 ...

  6. 新手学Python之学习官网教程(十三: What Now)

    文章目录 1. 前言 2. 其他参考资料 3. 其他常用库补充 3.0 求文件的md5 3.1 组合 3.2 判断当前Python环境为2还是3 3.3 random 3.4 将十六进制字符串转换成二 ...

  7. 廖雪峰Git教程学习笔记

    廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...

  8. Redis详细教程-学习笔记

    Redis 概述 Redis是什么? Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.K ...

  9. 《ROS理论与实践》学习笔记(九)机器人自主导航

    <ROS理论与实践>学习笔记(九)机器人自主导航 课程内容 ROS中的导航框架 导航框架中的关键功能包 move_base amcl 机器人自主导航案例 导航仿真 程序接口 move_ba ...

最新文章

  1. OSChina 周五乱弹——哄女人么,其实很简单
  2. P1134 阶乘问题
  3. torch.ge,torch.gt,torch.le
  4. java 检查输入_在java中检查输入的问题
  5. 以前的的华为手机可不可以用鸿蒙系统_鸿蒙系统面世之后,以前的华为手机可以用鸿蒙系统吗?不好意思!...
  6. SequoiaDB 巨杉数据库
  7. 转:canvas--放大镜效果
  8. sync - 清空文件系统缓冲区
  9. Linux 添加计划任务
  10. 本特利探头330104-00-02-10-02-00
  11. dell h330 不要做raid5 ,做raid0就可以了
  12. 浅谈 BOM、EBOM、MBOM
  13. swiper 用了effect:'fade', 切换效果 一定要用 参数crossFade 否则多个slide会叠再一起
  14. 免费logo设计在线生成(不定时更新)
  15. Python读取Mysql数据库数据保存至csv文件,以及简单使用Python进行数据分析。(加州房价数据集)
  16. 2020年中式烹调师(高级)考试试卷及中式烹调师(高级)模拟考试题
  17. PCB及电路抗干扰措施
  18. 30秒独木桥模型matlab,游戏案例:挑战独木桥
  19. 做一名有修养的程序员
  20. FTP服务器的安装,用户的添加,密码的设置

热门文章

  1. [容斥 状压DP 树形DP] BZOJ 4455 [Zjoi2016]小星星 UOJ #185 【ZJOI2016】小星星
  2. Juce音频算法demo
  3. powershell基础脚本编写实例
  4. 2018年数学建模国赛A题题目、解题思路、matlab代码(四)
  5. EnterNet 500中PPPoE故障
  6. TLE星历以及轨道计算方法
  7. poco mysql 安装,poco linux安装
  8. 网络安全菜鸟学习之漏洞篇——逻辑漏洞(二)
  9. python照片转手绘_python中如何将照片手绘化?
  10. 欧尼酱讲JVM(10)——操作数栈