Gazebo Architecture

为了用gazebo应对需求和解决当前问题,我们提出分布式结构。gazebo将被分解为物理模拟,渲染,用户界面,通信,传感器生成的库。提供三个不同的进程:physics_sim, sensor_gen, gui, and a master for coordination

Communication Between Processes

每个进程之间的通信,将利用google::protobufs and sockets的组合。模拟的世界将发布本体位姿的更新,传感器产生和GUI用户界面将这些信息发布出去。

这种机制将允许运行的模拟器的反馈,并且提供gazebo控制方面的方便的机制。

System

Gazebo Master

这是很重要的server话题。它提供名称查找,话题管理。单一的主机可以处理多个物理模拟,传感器生成和用户界面。

Communication Library

该库几乎被所有后续的库所使用。充当了gazebo的通信和传输机制。它目前只是支持发布/接收,但也可能用于RPC

Physics Library

物理库可以被用于任何符合内部API(TBD)动态工具。它也提供了简单的外边接口,来建立工作物理模拟。

Collision Library

这是一个抽象的概念库,来处理不同的碰撞引擎,并且为用户提供简单的外部接口。

Rendering Library

渲染库为GUI和传感器生成提供简单的界面。因为我们没有更好的选择,我们当前用OGRE。有可能为渲染引擎编写插件。

Sensor Generation

传感器生成库实现所有传感器的类型,从物理模拟器和实例传感器所接收世界状态的更新。

GUI

GUI主要功能包括显示模拟器的当前状态,并且提供用户输入的方便手段。因为我们用wxWidgets,所有我们不需要外边或内部API。

Plugins

物理,传感器,渲染库将支持插件。这些插件将提供给用户进入相应的库,而不需要利用通信系统。

你可能感兴趣的:(Gazebo Architecture)