PX4:简单理解就是一个飞行控制系统,里面集成了各种控制算法。非研究人员可以直接用里面的算法控制无人机飞行,研究人员可以改变里面的算法二次开发。
ROS:如果说Windows,Linux是一级操作系统,ROS就是基于Linux的一个专用于机器人的二级操作系统。可以有效实现机器人各个硬件(传感器,电机等)之间的通讯,并便于复现别人的算法,或者开发自己的算法。
MAVlink:一种通讯,一般是为了实现PX4和地面站的通讯。地面站可以是PC。
MAVROS:把MAVLink和ROS封装在一起,这样PX4就能成为ROS的节点了,或者说他们彼此能通讯了。这个很重要,如果不用这个通讯,使用PX4时就要自己基于MAVLink开发通讯协议。
uORB:是PX4飞控软件中的消息传递系统。它是为了在PX4飞行控制系统内部的不同组件之间传递信息而设计的,例如传感器数据、飞行状态信息以及控制命令等。
MAVROS和uORB关联:
- 当无人机的飞控系统使用PX4固件时,MAVROS可以通过MAVLink协议与无人机通信,同时PX4内部使用uORB来实现模块间通信。在这种情况下,MAVROS作为一个桥梁,转换ROS消息为MAVLink消息,并通过uORB系统与PX4内部的各个模块交互数据。
- 在某些应用场景中,开发者可能需要从ROS环境获取数据并将其传递给PX4飞控的某个模块,或者需要将飞控的数据反馈给ROS环境。在这种情况下,MAVROS会接收来自ROS的消息,并将其转换成MAVLink消息发送给无人机,而uORB系统则负责将这些消息分发给PX4内部相应的模块。