ArduPilot架构

ArduPilot由几部分组成:

​Vehicle应用层:如多旋翼(ArduCopter)、固定翼(ArduPlane)、小车(Rover)等

库:如硬件抽象层(AP_HAL)、传感器驱动(AP_InertialSensor)、传感器融合(AP_NavEKF/2/3)、电机混控输出(AP_Motors)、日志库(AP_Logger)等

第三方模块:RTOS(ChibiOS)、CAN协议层(DroneCAN)、mavlink、DDS库(Micro-XRCE-DDS-Client)、构建工具(waf)等

通信协议:MAVLINK

远程控制:地面站、机载计算机

        四大系统软硬件平台的实现:HAL_ChibiOS,HAL_Linux,HAL_Empty, HAL_SITL;将具体应用和底层系统硬件进行了解耦,具体应用只需操作HAL接口类提供的硬件抽象接口,而当应用部署到具体的系统硬件平台时,具体系统硬件平台将实现该抽象接口。

        class HAL提供run的接口,用来启动应用,同时给系统平台提供封装了setup方法和loop方法的FunCallbacks接口类,系统平台实现run方法,并且在run方法中回调setup和loop。应用的入口由AP_HAL_Main中的AP_HAL_MAIN系列的宏函数提供。

提供旋翼机代码框架以做参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值