【系统开发基础储备】ROS的rviz三维可视化平台(第八篇)

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理

文章目录


前言

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!

本文先对rviz三维可视化平台做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章


提示:以下是本篇文章正文内容

一、功能

rviz是三维可视化工具,强调把已有的数据可视化显示,用于直观的显示数据。(机器人模型、坐标、运动规划,导航、点云、图像、SLAM)。rviz提供了很多插件,这些插件可以显示图像、模型、路径等信息,但是前提都是这些数据已经以话题、参数的形式发布,rviz做的事情就是订阅这些数据,并完成可视化的渲染,rviz帮助开发者实现所有可监测信息的图形化显示,开发者也可以在rviz的控制界面下,通过rviz的planning插件的功能,根据按钮、滑动条、数值等方式,控制机器人的行为【防盗标记–盒子君hzj】

.
.

二、安装并运行rviz

1.安装rviz

rviz已经集成在桌面完整版的ROS系统当中,如果已经成功安装了桌面完整版的ROS,【防盗标记–盒子君hzj】可以直接跳过这一步骤,否则,请使用如下命令进行安装:

$ sudo apt-get install ros-kinetic-rviz

2.运行rviz

$ roscore
$ rosrun rviz rviz

.
.

三、界面介绍

0 :3D视图区,用于可视化显示数据,目前没有任何数据,所以显示黑色
1 :工具栏,提供视角控制、目标设置、发布地点等工具
2 :显示项列表,用于显示当前选择的显示插件,可以配置每个插件的属性
3 :视角设置区,可以选择多种观测视角
4 :时间显示区,显示当前的系统时间和ROS时间
.
.

四、数据可视化原理及步骤

1.原理

行数据可视化的前提当然是要有数据,假设需要可视化的数据以对应的消息类型发布,我们在rviz中使用相应的插件订阅该消息即可实现显示
可视化显示都是通过消息的订阅来完成的,机器人通过ROS发布数据,rviz订阅消息接收数据,然后显示【防盗标记–盒子君hzj】

2.步骤

(1)在源代码中按照可视化话题类型,发布话题

(1)根据消息类型visualization_msgs编程
具体怎么操作可以去wiki上面查,掌握编程的套路,(编程根据数据接口和api会填入数据就行)
【常用的可视化类型记住一下,不常用的上wiki查】


(2)在程序上编程实现了可视化api后,在rviz界面上才可以进行勾选订阅和改变参数的

【DisplayTypes】显示元素的类型
写在了另外一个博客~

(2)rviz订阅对应话题步骤

(1)Add添加显示插件
		方法一:通过显示的类型添加(By display type)
		方法二:通过话题添加(By topic)【常用 】,它会自动识别系统中发布的话题【防盗标记–盒子君hzj】
		方法三:知道话题名字,输入进行搜索


(2)配置话题显示插件
	添加完成后,rviz左侧的Dispaly中会列出已经添加的显示插件;点击插件列表前的加号,
	可以打开一个属性列表(这些属性列表设置也是编程里面visualizatian_msgs接口的成员)
	【可视化颜色、大小等等可以再程序里面改也可以再display中进行配置】,根据需求设置属性。
	一般情况下,“Topic”属性较为重要,用来声明该显示插件所订阅的数据来源,如果订阅成功,在中间的显示区应该会出现可视化后的数据。

(3)保存当前配置好的RVIZ环境

方法:File->Save Config As,下次直接打开这个.rviz就可以直接显示了

3.注意

如果显示有问题,请检查属性区域的“Status”状态。Status有四种状态:OK、Warning、Error和Disabled,【防盗标记–盒子君hzj】
如果显示的状态不是OK,那么请查看错误信息,并详细检查数据发布是否正常

编程时要清除ros可视化,每次显示才会正常

五、插件扩展机制

(1)默认插件(rviz提供)

【用好默认插件已经可以了-我们通常用的就是默认插件的数据类型】

(1)订阅话题的插件
包含坐标轴、摄像头图像、地图、激光等数据。


(2)发布话题的插件
	(1)rviz中的Nav_3D的目标点(goal),在程序中是怎么被接收的?
	【在目标点订阅函数的话题名中被订阅,在回调函数中对这个话题的目标值变量进行处理】
	【话题名可以使用rviz中默认的话题名,也可以自己写一个rviz的插件自己进行定义,rviz和gazebo都是支持插件的】
	
	(2)rviz最上面的界面栏可以发布话题,通过“+”“-”符号添加或者删除话题,【防盗标记–盒子君hzj】
	
	发布的话题名字可以通过rostopic list查看,若是要修改可以在.rviz中进行修改

(2)扩展插件

ROS的rviz仿真插件的编写,可以按照rviz提供的topic type的规范来写

作为一个平台,rviz可以显示的数据不仅仅如此。rviz支持插件扩展机制。如果需要添加其他数据的显示,也可以通过编写扩展插件的形式进行添加

jsk的rviz插件查一查怎么用?

planning有什么插件?【防盗标记–盒子君hzj】

总结

启动rviz之前要先启动roscore,遇到错误或者警告先看提示

上一篇:解决启动rviz时出现:Could not contact ROS master at [http://localhost:11311], retrying...


下一篇:locobot快速使用