Rviz三维可视化
一、安装
添加ROS源:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
添加ROS源秘钥:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
更新源
sudo apt-get update
安装ROS完整版:(由于使用Rviz,PCL等模块,请务必安装完整版)
sudo apt-get install ros-kinetic-desktop-full
sudo apt-cache search ros-kinetic
初始化ROS:
sudo rosdep init
rosdep update
添加环境变量
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
更新ROS环境变量
source /opt/ros/kinetic/setup.bash
测试ROS是否成功安装:
开启一个新的Teminnal,输入:
roscore
测试Rviz
开启一个新的Teminnal,输入:
rviz
成功显示rviz界面如下:
二、安装并运行rviz
rviz已经集成在桌面完整版的ROS系统当中,如果已经成功安装了桌面完整版的ROS,可以直接跳过这一步骤,否则,请使用如下命令进行安装:
sudo apt-get install ros-kinetic-rviz
安装完成后,在终端中分别运行如下命令即可启动ROS系统和rviz平台:
roscore
rosrun rviz rviz
启动成功的rviz主界面如下图所示:
该界面主要包含以下几个部分:
0 :3D视图区,用于可视化显示数据,目前没有任何数据,所以显示黑色
1 :工具栏,提供视角控制、目标设置、发布地点等工具
2 :显示项列表,用于显示当前选择的显示插件,可以配置每个插件的属性
3 :视角设置区,可以选择多种观测视角
4 :时间显示区,显示当前的系统时间和ROS时间
rviz的运行已经没问题了,那么如何将数据在rviz中可视化显示呢?
三、数据可视化
进行数据可视化的前提当然是要有数据,假设需要可视化的数据以对应的消息类型发布,我们在rviz中使用相应的插件订阅该消息即可实现显示。
首先,需要添加显示数据的插件。点击rviz界面左侧下方的“Add”按键,rviz会将默认支持的所有数据类型的显示插件罗列出来,如下图所示:
在列表中选择需要的数据类型插件,然后在“DisplayName”里填入一个唯一的名称,用来识别显示的数据。例如显示两个激光传感器的数据,可以分别添加两个LaserScan类型的插件,命名为Laser_base和Laser_head进行显示。
添加完成后,rviz左侧的Dispaly中会列出已经添加的显示插件;点击插件列表前的加号,可以打开一个属性列表,根据需求设置属性。一般情况下,“Topic”属性较为重要,用来声明该显示插件所订阅的数据来源,如果订阅成功,在中间的显示区应该会出现可视化后的数据。
如果显示有问题,请检查属性区域的“Status”状态。Status有四种状态:OK、Warning、Error和Disabled,如果显示的状态不是OK,那么请查看错误信息,并详细检查数据发布是否正常。
四、插件扩展机制
rviz是一个三维可视化平台,默认可以显示下表所示的通用类型数据,其中包含坐标轴、摄像头图像、地图、激光等数据。
但作为一个平台,rviz可以显示的数据不仅仅如此。rviz支持插件扩展机制,以上这些数据的显示都基于默认提供的相应插件。如果需要添加其他数据的显示,也可以通过编写插件的形式进行添加。关于rviz插件机制的使用,可参考以下链接:http://www.guyuehome.com/945