相关的文档会陆续发布在我的博客 在翻译的同时也会加入一些自己的理解, 当然, 你也可以选择看原版。
进程与应用程序(e.g. 传感器应用程序发送传感器数据到姿态过滤应用程序)之间的通讯是Pixhawk软件架构的重要组成部分。进程(在此文通常称之为节点)通过命名的总线交换的消息称之为“话题”,在Pixhawk 中,一个话题仅包含一种消息类型,例如:vehicle_attitude 话题传输包含姿态结构(滚动,俯仰和偏航估算(yaw estimates))的消息。节点可以在总线、主题上发布一条消息("Send" data) 或者订阅总线、主题("Receive" Data)。通讯双方之间并不知道在与谁通讯,可以存在多个发布者或一条消息有多个订阅者。这种设计模式可以防止锁定的问题,常用于机器人技术。为了保证高效,一条总线上始终只有一条消息,并且不使用队列存放。
Pixhawk的发布/订阅机制是通过“微对象请求代理”(micro object request broker,uORB)来实现,uORB实现了一个简单的发布/订阅模式。
快速入门 在深入细节之前,以下是一对简单、完整的发布/订阅模型。发布者发布一条名为“random_integer”的话题并用随机整数更新该话题。订阅者检查并打印这些更新。
|