知乎原文链接:

https://www.zhihu.com/question/268658280/answer/340190866

 

简单来讲,两者的主要功能不同,没办法比较哪个更好用,如果做ROS开发,一般两个都得会。

rviz是三维可视化工具,强调把已有的数据可视化显示;

gazebo是三维物理仿真平台,强调的是创建一个虚拟的仿真环境。

rviz需要已有数据。

rviz提供了很多插件,这些插件可以显示图像、模型、路径等信息,但是前提都是这些数据已经以话题、参数的形式发布,rviz做的事情就是订阅这些数据,并完成可视化的渲染,让开发者更容易理解数据的意义。

image

gazebo不是显示工具,强调的是仿真,它不需要数据,而是创造数据。

我们可以在gazebo中免费创建一个机器人世界,不仅可以仿真机器人的运动功能,还可以仿真机器人的传感器数据。而这些数据就可以放到rviz中显示,所以使用gazebo的时候,经常也会和rviz配合使用。当我们手上没有机器人硬件或实验环境难以搭建时,仿真往往是非常有用的利器。

image

rviz的官方介绍:

 

gazebo的官方介绍:

 

综上,如果你手上已经有机器人硬件平台,并且在上边可以完成需要的功能,用rviz应该就可以满足开发需求。

如果你手上没有机器人硬件,或者想在仿真环境中做一些算法、应用的测试,gazebo+rviz应该是你需要的。

另外,rviz配合其他功能包也可以建立一个简单的仿真环境,比如rviz+ArbotiX,可以参考《ROS by Example》,但是其中rviz的本质还是处理显示的部分。

 

参考链接:

ROS技术点滴 —— Rviz三维可视化平台

ROS技术点滴 —— Gazebo物理仿真平台

ROS技术点滴 —— gazebo中的常用插件

ROS技术点滴 —— rviz plugin