全球旧事资料 分类
软件架构
PX4在广播消息网络内,按照一组节点(
odes)的形式进行组织,网络之间使用像如“姿态”和“位置”之类的语义通道来传递系统状态。软件的堆栈结构主要分为四层

应用程序接口提供给app开发人员,使开发人员可以使用ROS或者Dro
eAPI。这一接口设计尽可能简洁和扁平,并尽量多的隐藏复杂性。

应用框架:这是一组核心缺省应用程序(节点),运行核心的飞行控制。函数库:这一层包括针对机器核心操作的所有系统函数库和功能操作系统:最后一层,提供硬件驱动、网络通信、UAVCAN和故障安全(failsafe)系统。
内部进程通信(I
terProcessCommu
icatio
,IPC)
PX4平台的封装提供了跨平台的无锁发布订阅模式publishsubscribepatter
对象请求处理器。取决于平台操作系统,完成这个的后端可能是uORB或者Li
ux上的ROSDDS
fdatadeliveryservice。封装可扩展,也可作为消息系统提供支持,比如MQ。所有这些后端的共同特点是,它们都允许发送数据到一个像如“位置”这样的语义订阅主题(topic),并使多个接收器跨进程的收到这一数据。
IPC性能
发布(Publicatio
)到订阅(subscriptio
)之间的延迟:

uORB23us168MHzSTM32F4ROSTBDROS2DDS185us16GHzI
telPe
tium4a
d2GBRAMru
i
gWi
dowsXPdetails

ZeroMQ170us16GHzI
telPe
tium4a
d2GBRAMru
i
gWi
dowsXPdetails
安全和保护模型
飞行核心与主要应用级处理过程隔离,以确保独立于高层级系统状态的机器核心操作,保持稳定。
PX4应用程序框架
PX4应用程序框架在所有平台上代码兼容,比如PixhawkNuttX,又比如,S
apDrago
Li
ux,独立并将中间设备作为传输层。
f节点句柄(NodeHa
dle)
节点句柄是每一个连接到中间设备的发布器(publisher)或者订阅器(subscriber)的核心数据结构(一个节点可以同时是发布器和订阅器)。一个节点是一个逻辑单元,每一个进程都可以有多于一个的节点(虽然这并不是典型的形式)。
1
px4NodeHa
dle

数据结构
对于所有相关的中间设备实现,PX4根据储存在“msg”中的定义文件自动生成据结构。
发布(publicatio

通过使用节点句柄通告(advertise)订阅主题(topic)来创建一个新的发布(publicatio
)。注意这个模板,是订阅主题的数据结构。
1
px4Publisherpx4px4_rc_cha
elsrc_cha
els_pub
advertisepx4_rc_cha
els
从这个指向rc_cha
els_pub的句柄的指针,可以用于发布数据
123
px4_rc_cha
elsrc_cha
els_msgrc_cha
els_msgdatatimestamp_last_validpx4get_time_micros_rc_cha
els_pubpublishrc_cha
els_msg
订阅(Subscriptio

通过r
好听全球资料 返回顶部