ArduPilot模块

        ArduPilot 是一个开源的自动驾驶系统,广泛应用于无人机、无人车、无人船等无人载具。它支持多种硬件平台,包括 Pixhawk、Navio2 等,并提供丰富的功能,如航点导航、自动返航、任务规划等。

主要特点

  1. 开源ArduPilot 是开源的,社区活跃,用户可以自由修改和扩展功能。
  2. 多平台支持:支持多种无人载具,包括固定翼飞机、多旋翼无人机、直升机和无人车、无人船等。
  3. 硬件兼容性:兼容多种硬件平台,如 Pixhawk、Navio2、Cube 等。
  4. 丰富的功能:提供航点导航、自动返航、任务规划、地理围栏等功能。
  5. 传感器支持:支持多种传感器,如 GPS、IMU、气压计、光流传感器等。
  6. 地面站软件:与 Mission Planner、QGroundControl 等地面站软件兼容,方便用户进行任务规划和监控。

主要组件

  1. ArduPlane:用于固定翼飞机的自动驾驶系统。
  2. ArduCopter:用于多旋翼无人机和直升机的自动驾驶系统。
  3. ArduRover:用于无人车的自动驾驶系统。
  4. ArduSub:用于无人船的自动驾驶系统。
  5. AntennaTracker :用于将支持的飞行控制器板用作天线跟踪器

使用步骤

  1. 硬件选择:选择合适的硬件平台,如 Pixhawk。
  2. 固件烧录:使用 Mission Planner 或 QGroundControl 将 ArduPilot 固件烧录到硬件中。
  3. 配置和校准:通过地面站软件进行传感器校准和参数配置。
  4. 任务规划:在地面站软件中规划任务,设置航点和其他参数。
  5. 飞行测试:进行飞行测试,确保系统正常工作。
  6. 任务执行:执行规划的任务,实时监控无人载具状态。

        ArduPilot 的代码库结构非常清晰,主要分为多个模块和目录,每个目录都有其特定的功能。以下是一个典型的 ArduPilot 代码库目录结构及其主要内容的概述:

主要目录结构

ArduCopter/

        用于多旋翼无人机和直升机的代码。

        包含飞行控制逻辑、传感器数据处理、任务执行等。

ArduPlane/

        用于固定翼飞机的代码。

        包含飞行控制逻辑、自动起飞和降落、任务执行等。

ArduRover/

        用于无人车的代码。

        包含地面车辆控制逻辑、路径规划、任务执行等。

ArduSub/

        用于无人船的代码。

        包含水下航行器控制逻辑、任务执行等。

libraries/

        包含 ArduPilot 使用的各种库。

        AP_HAL/: 硬件抽象层,用于不同硬件平台的兼容性。

        AP_Math/: 数学库,用于向量、矩阵运算等。

        AP_Param/: 参数管理系统,用于存储和加载配置参数。

        AP_GPS/: GPS 数据处理库。

        AP_InertialSensor/: 惯性传感器数据处理库。

        AP_Compass/: 磁力计数据处理库。

        AP_Baro/: 气压计数据处理库。

        AP_Mission/: 任务管理库,用于航点导航和任务执行。

        AP_Terrain/: 地形数据处理库。

        AP_OpticalFlow/: 光流传感器数据处理库。

        AP_RangeFinder/: 距离传感器数据处理库。

Tools/

        包含各种工具和脚本。

        autotest/: 自动化测试脚本。

        build_options/: 构建选项配置。

        frame_converter/: 帧转换工具。

        MissionPlanner/: Mission Planner 地面站软件的相关工具。

mk/

        包含构建系统的 Makefile 和相关脚本。

modules/

        包含一些模块化的功能代码。

        gcs/: 地面站通信模块。

        notify/: 通知系统模块。

        scheduler/: 任务调度模块。

waf/

        包含 Waf 构建系统的配置文件和脚本。

examples/

        包含一些示例代码,用于学习和测试。

docs/

        包含文档和说明文件。

tests/

        包含测试代码和测试数据。

任务调度器

        ArduCopter 使用任务调度器来管理不同任务的执行频率。任务调度器的配置文件位于libraries/AP_Scheduler/AP_Scheduler.cpp 中。

主要任务:
  • 快速任务:如姿态控制(400Hz)。
  • 中速任务:如位置控制(100Hz)。
  • 低速任务:如任务规划(10Hz)
代码示例:

const AP_Scheduler::Task scheduler_tasks[] = {

   { fast_loop,   1,   1000 },  // 快速任务

   { medium_loop, 4,   1000 },  // 中速任务

   { slow_loop,   100, 1000 },  // 低速任务

};

飞行模式

ArduCopter 的飞行模式处理位于mode_*.cpp 文件中,每个飞行模式对应一个文件。例如:

  • mode_stabilize.cpp:手动模式。
  • mode_loiter.cpp:悬停模式。
  • mode_rtl.cpp:返航模式。
主要函数:
  • run():
    • 每个飞行模式都有一个run() 函数,用于处理该模式下的控制逻辑。
代码示例:

void ModeStabilize::run()

{

   // 获取摇杆输入

   float roll_input = channel_roll->get_control_in();

   float pitch_input = channel_pitch->get_control_in();

   // 计算姿态控制输出

   attitude_control->input_euler_angle_roll_pitch_yaw(roll_input, pitch_input, 0, true);

}

//===================================================================

具体飞行模式

mode_acro_heli

        mode_acro_heli.cpp是 ArduCopter 中用于实现直升机特技模式(Acro Mode for Helicopters)的源代码文件。特技模式是一种手动飞行模式,允许飞行员完全控制直升机的姿态,适合进行高难度飞行动作和特技表演

mode_acro

        mode_acro.cpp是ArduCopter中用于实现多旋翼无人机特技模式(Acro Mode)的源代码文件。特技模式是一种手动飞行模式,允许飞行员完全控制无人机的姿态,适合进行高难度飞行动作和特技表演

mode_althold

        mode_althold.cpp是 ArduCopter 中用于实现高度保持模式(Altitude Hold Mode)的源代码文件。高度保持模式是一种半自动飞行模式,无人机可以自动保持当前高度,同时允许飞行员手动控制滚转、俯仰和偏航。

mode_auto

        mode_auto.cpp是 ArduCopter 中用于实现自动模式(Auto Mode)的源代码文件。自动模式是一种全自动飞行模式,无人机可以根据预设的任务(如航点、动作等)自动执行飞行任务,无需飞行员干预

mode_autorotate

        mode_autorotate.cpp 是 ArduCopter 中用于实现直升机自转着陆模式(Autorotate Mode)的源代码文件。自转着陆模式是一种特殊的飞行模式,用于在直升机发动机失效时,通过利用旋翼的自转产生升力,实现安全着陆。

mode_autotune

        mode_autotune.cpp 是 ArduCopter 中用于实现自动调参模式(AutoTune Mode)的源代码文件。自动调参模式是一种高级功能,允许飞控系统自动调整姿态控制器的 PID 参数,以优化无人机的飞行性能。

mode_avoid_adsb

        mode_avoid_adsb.cpp 是 ArduCopter 中用于实现 ADS-B 避障模式(Avoid ADS-B Mode)的源代码文件。ADS-B(Automatic Dependent Surveillance-Broadcast)是一种航空器监视技术,无人机可以通过接收其他航空器的 ADS-B 信号来检测潜在的碰撞风险,并自动避让。

mode_brake

        mode_brake.cpp 是 ArduCopter 中用于实现刹车模式(Brake Mode)的源代码文件。刹车模式是一种紧急停止模式,当无人机需要快速减速并悬停时,可以切换到该模式。它通常用于紧急避障、任务中断或需要立即停止的场景

mode_circle

        mode_circle.cpp 是 ArduCopter 中用于实现绕圈模式(Circle Mode)的源代码文件。绕圈模式是一种自动飞行模式,无人机会围绕一个中心点以固定半径和高度持续绕圈飞行。这种模式通常用于航拍、监视或其他需要持续环绕飞行的任务。

mode_drift

        mode_drift.cpp 是 ArduCopter 中用于实现漂移模式(Drift Mode)的源代码文件。漂移模式是一种半自动飞行模式,结合了手动控制和自动稳定功能,适合用于拍摄动态镜头或模拟漂移飞行的场景。

mode_flip

        mode_flip.cpp 是 ArduCopter 中用于实现翻转模式(Flip Mode)的源代码文件。翻转模式是一种特技飞行模式,允许无人机在空中执行 360 度翻转动作。这种模式通常用于表演或测试无人机的机动性能。

mode_flowhold

        mode_flowhold.cpp 是 ArduCopter 中用于实现光流悬停模式(FlowHold Mode)的源代码文件。光流悬停模式是一种依赖于光流传感器的飞行模式,能够在没有 GPS 信号的环境下(如室内)实现位置保持和悬停。光流传感器通过检测地面纹理的运动来估计无人机的水平位移,从而实现位置控制。

mode_follow

        mode_follow.cpp 是 ArduCopter 中用于实现跟随模式(Follow Mode)的源代码文件。跟随模式是一种自动飞行模式,允许无人机跟随一个目标(如地面设备、操作者或其他移动物体)。这种模式通常用于拍摄、监视或物流配送等场景。

mode_guided_nogps

        mode_guided_nogps.cpp 是 ArduCopter 中用于实现无 GPS 引导模式(Guided NoGPS Mode)的源代码文件。无 GPS 引导模式是一种在没有 GPS 信号的环境下(如室内)使用的飞行模式,允许无人机通过其他传感器(如光流、视觉里程计等)进行位置控制和导航。

mode_guided

        mode_guided.cpp 是 ArduCopter 中用于实现引导模式(Guided Mode)的源代码文件。引导模式是一种高级飞行模式,允许地面站或外部设备通过 MAVLink 协议向无人机发送目标位置、速度或姿态指令,从而实现精确的飞行控制。

mode_land

        mode_land.cpp 是 ArduCopter 中实现降落模式(Land Mode) 的核心文件。该文件定义了无人机在降落模式下的行为逻辑,包括如何控制无人机下降、触地检测以及降落完成后的处理

mode_loiter

        mode_loiter.cpp 是实现 ArduCopter 的 ​悬停模式(Loiter Mode)​​ 的核心文件。悬停模式是一种常用的飞行模式,用于让无人机在指定的位置和高度上保持稳定悬停

mode_poshold

        mode_poshold.cpp 是实现 ArduCopter 的 ​位置保持模式(Position Hold Mode)​​ 的核心文件。位置保持模式是一种常用的飞行模式,用于让无人机在指定的位置和高度上保持稳定悬停,同时允许用户通过遥控器或地面站指令调整位置

mode_rtl

        mode_rtl.cpp 是实现 ArduCopter 的 ​返航模式(Return-to-Launch Mode,RTL)​​ 的核心文件。返航模式是一种安全模式,用于让无人机自动返回起飞点并降落

mode_smart_rtl

        mode_smart_rtl.cpp 是实现 ArduCopter 的 ​智能返航模式(Smart Return-to-Launch Mode,Smart RTL)​​ 的核心文件。智能返航模式是一种高级的返航模式,允许无人机在返航过程中记录航点,并在返航时沿原路径返回,同时支持避障和路径优化

mode_sport

        mode_sport.cpp 是实现 ArduCopter 的 ​运动模式(Sport Mode)​​ 的核心文件。运动模式是一种高机动性飞行模式,允许无人机以更高的速度和更灵敏的操控进行飞行,适合竞速或特技飞行

mode_stabilize_heli

        mode_stabilize_heli.cpp 是实现 ArduCopter 的 ​直升机稳定模式(Stabilize Mode for Helicopters)​​ 的核心文件。稳定模式是一种基础飞行模式,用于让直升机保持稳定的姿态,适合初学者或需要精确姿态控制的场景

mode_stabilize

        mode_stabilize.cpp 是实现 ArduCopter 的 ​稳定模式(Stabilize Mode)​​ 的核心文件。稳定模式是一种基础飞行模式,用于让无人机保持稳定的姿态,适合初学者或需要精确姿态控制的场景

mode_systemid

        mode_systemid.cpp 是实现 ArduCopter 的 ​系统辨识模式(System Identification Mode)​​ 的核心文件。系统辨识模式是一种特殊飞行模式,用于通过特定的激励信号(如正弦波或方波)激发无人机的动态响应,从而获取其数学模型参数(如惯性、阻尼、增益等)

mode_throw

        mode_throw.cpp 是实现 ArduCopter 的 ​抛飞模式(Throw Mode)​​ 的核心文件。抛飞模式是一种特殊飞行模式,允许用户通过手动抛掷无人机启动飞行,适合小型无人机或需要快速起飞的场景

mode_turtle

        mode_turtle.cpp 是实现 ArduCopter 的 ​乌龟模式(Turtle Mode)​​ 的核心文件。乌龟模式是一种特殊飞行模式,允许无人机在翻倒后通过反转电机旋转方向自行翻转回正常状态,适合竞速无人机或需要快速恢复飞行的场景

mode_zigzag

        mode_zigzag.cpp 是实现 ArduCopter 的 ​ZigZag 模式(ZigZag Mode)​​ 的核心文件。ZigZag 模式是一种自动飞行模式,用于让无人机按照预定义的 ZigZag 路径飞行,适合农业喷洒、测绘等场景

核心模块(libraries)

AC_AttitudeControl:用于实现无人机的姿态控制。它负责将用户输入(如遥控器指令或自动飞行指令)转换为电机输出,以控制无人机的横滚、俯仰、偏航和高度。

AC_Autorotation:是一个用于直升机自动旋转(Autorotation)功能的模块。自动旋转是直升机在发动机失效时的一种紧急降落技术,通过利用旋翼的动能维持飞行并安全着陆。

AC_AutoTune:是一个用于自动调参(AutoTune)功能的模块。自动调参是一种通过飞行测试自动优化 PID 参数的技术,能够显著提高无人机的飞行性能和稳定性。

AC_Avoidance:是一个用于避障(Obstacle Avoidance)功能的模块。避障功能通过传感器(如超声波、激光雷达、摄像头等)检测障碍物,并生成避障路径,确保无人机在飞行过程中避开障碍物。

AC_CustomControl:是一个用于实现自定义控制算法的模块。该模块允许开发者扩展或替换 ArduPilot 默认的控制逻辑,实现特定的飞行控制需求。

AC_Fence:是一个用于实现地理围栏(Geofence)功能的模块。地理围栏是一种安全机制,用于限制无人机的飞行区域,确保其在指定的边界内飞行

AC_InputManager:AC_InputManager 是一个用于管理输入信号(如遥控器、地面站指令等)的模块。它负责将输入信号转换为无人机的控制指令,并确保输入信号的合法性和安全性。

AC_PID:AC_PID 是一个用于实现 PID(比例-积分-微分)控制算法的模块。PID 控制器是无人机飞行控制的核心组件,用于调整无人机的姿态、位置和速度等状态

AC_PrecLand:AC_PrecLand 是一个用于实现精准着陆(Precision Landing)功能的模块。精准着陆是无人机在降落时,能够准确地降落到指定目标(如地面标记或着陆平台)上的能力。

AC_Sprayer:AC_Sprayer 是一个用于实现喷洒功能的模块,主要用于农业无人机或无人车进行农药、肥料或其他液体的喷洒。

AC_WPNav:AC_WPNav 是一个用于实现航点导航(Waypoint Navigation)功能的模块。航点导航是无人机或无人车按照预定义的航点(Waypoints)进行自动导航的核心功能之一。

AP_AccelCal:AP_AccelCal 提供了加速度计的校准功能,用于消除加速度计的偏移和误差,它支持全轴校准(3轴校准)和简化校准(Simple Accel Cal),后者适用于大型飞行器或难以进行全轴校准的场景。

AP_ADC:AP_ADC 是一个与模数转换器(ADC)相关的模块,主要用于从硬件传感器(如电压传感器、电流传感器等)读取模拟信号,并将其转换为数字值以便进一步处理。它通常用于监测电池电压、电流等关键参数,以支持飞行器的健康监测和故障检测。

AP_ADSB:AP_ADSB 是一个用于处理ADS-B(广播式自动相关监视)信号的模块。ADS-B 是一种航空通信系统,允许飞行器广播其位置和速度信息,以便其他飞行器或地面系统可以进行避让,AP_ADSB 支持:避让功能、参数配置、飞行模式

AP_AdvancedFailsafe:AP_AdvancedFailsafe 是一个高级故障保护模块,用于在飞行器遇到故障时执行复杂的预设任务,以确保飞行安全;其主要功能包括:任务驱动的故障响应、地理围栏和高度限制、多种故障类型和终止飞行。

AP_AHRS:用于飞行器的姿态和航向参考系统(Attitude and Heading Reference System)。它通过扩展卡尔曼滤波(EKF)或方向余弦矩阵(DCM)方法预估飞行器的姿态,提供飞行器的实时姿态信息,包括俯仰角、滚转角和航向角,是飞行控制的核心模块

AP_Airspeed:用于处理空速传感器的数据,为空速测量提供支持,在固定翼飞行器中,空速数据对于飞行控制和任务规划至关重要

AP_AIS:AP_AIS 是一个用于实现自动识别系统(Automatic Identification System, AIS)功能的模块。AIS 是一种用于船舶跟踪和识别的系统,能够通过无线电信号传输船舶的位置、速度、航向等信息。AP_AIS 模块的主要作用是接收和处理 AIS 数据,以便无人机或无人船能够感知周围船舶的动态,从而增强航行安全性。

AP_Arming:管理飞行器的解锁和启动流程,确保在飞行器解锁前完成所有必要的安全检查,如传感器校准、参数验证等。

AP_Avoidance:提供避障功能,支持ADS-B信号的接收和处理,用于检测并避开附近的飞行器,在飞行过程中自动检测潜在的碰撞威胁并采取避让措施。

AP_Baro:提供气压计接口,用于测量气压和高度,在飞行过程中提供高度参考,支持飞行器的垂直导航。

AP_BattMonitor:用于监测飞行器的电池状态,包括电压、电流和电量,确保电池状态安全,防止因电量不足导致的飞行事故。

AP_Beacon:提供信标功能,用于发送飞行器的位置信息,在飞行过程中帮助地面站或搜索人员跟踪飞行器的位置。

AP_BLHeli:与BLHeli(无刷电机控制协议)相关的功能,用于控制无刷电机,优化电机控制,提高飞行性能和效率。

AP_BoardConfig:用于配置飞行控制器硬件,包括传感器和接口的初始化,确保硬件正常工作,支持多种硬件平台。

AP_Button:处理飞行器上的按钮输入,用于手动控制或触发特定功能

AP_Camera:提供相机控制功能,包括相机的触发和参数设置,支持航拍和任务相关的相机操作。

AP_CANManager:管理CAN总线通信,支持与外部设备(如传感器、执行器)的通信

AP_CheckFirmware:用于检查和验证固件版本,确保系统运行的固件是最新的

AP_Common:提供所有ArduPilot程序和库所需的核心功能和通用接口,作为基础库,支持代码的复用和模块化开发。

AP_Compass:提供三轴磁罗盘接口,用于测量飞行器的航向,在飞行过程中提供航向参考,支持导航和姿态控制。

AP_CustomRotations:用于定义和管理自定义旋转矩阵和四元数,支持用户自定义的飞行器姿态旋转、允许用户通过参数配置自定义旋转角度(俯仰、滚转、偏航),并将其应用于飞行器的姿态控制。

AP_DAL:数据访问层(Data Access Layer),用于封装和管理传感器数据的访问和操作,提供统一的接口来访问不同类型传感器的数据,例如测距仪、气压计等。

AP_Declination:用于处理地磁偏角(磁偏角)的校正和计算,在磁罗盘数据中校正地磁偏角,确保航向角的准确性。

AP_Devo_Telem:与Devo遥控器的遥测功能相关,用于处理与Devo遥控器的通信和数据传输,支持Devo遥控器的遥测数据,例如电池电压、飞行模式等信息的显示。

AP_EFI:与发动机管理单元(EFI,Electronic Fuel Injection)相关,用于管理发动机的电子燃油喷射系统,在固定翼或VTOL飞行器中,支持发动机的燃油喷射控制和监控。

AP_ESC_Telem:用于处理电调(ESC)的遥测数据,例如电机转速、电流、温度等,提供电调的实时状态信息,用于监控电机和电调的健康状态。

AP_ExternalAHRS:其主要功能是集成和管理外部的姿态和航向参考系统(AHRS)。这些外部 AHRS 设备通常包括高性能的惯性测量单元(IMU)、GPS/INS 组合系统或其他传感器,它们能够提供比飞控板内置传感器更精确或更丰富的姿态、位置和速度信息。

AP_FETtecOneWire:是 ArduPilot 中用于支持 FETtec OneWire 协议的模块,主要用于与 FETtec 的双向通信电调(ESC)进行交互。

AP_Filesystem:用于访问飞行控制器的本地文件系统和虚拟文件系统,提供对飞行控制器内部存储(如闪存)和外部存储(如 SD 卡)的统一访问接口、支持多种文件系统格式,例如 VFAT(用于 SD 卡)、用于存储飞行日志、地形数据、用户参数、LUA 脚本等

AP_FlashIface:是一个用于管理飞行控制器内部闪存接口的模块,提供对内部闪存的读写操作,支持固件更新和引导程序管理,为系统提供底层的存储管理功能。

 AP_FlashStorage:是一个用于管理内部存储的模块,主要用于存储飞行参数、航点、飞行日志等数据,提供对内部存储的访问接口,支持数据的持久化存储,支持与 AP_Param 等模块配合,实现参数的存储和读取。

AP_Follow :是一个用于实现自动跟随功能的模块,允许飞行器自动跟随一个目标(如另一架无人机或移动车辆),接收目标的位置、速度和航向信息;根据目标状态调整飞行器的飞行路径;支持多种跟随模式,如基于 GPS 的跟随。

AP_Frsky_Telem :是一个用于支持 FrSky 遥测协议的模块,主要用于与 FrSky 遥控接收机通信,支持 FrSky D 和 SPort 协议;发送飞行器的状态信息(如电池电压、GPS 数据、速度等)到 FrSky 接收机;提供双向通信支持,允许地面站通过 FrSky 接收机发送指令。

AP_Generator :是一个用于支持发电机或电源管理的模块,监控发电机的输出状态,管理电源系统,确保飞行器在低电量或故障时的安全运行。

AP_GPS :是一个用于管理 GPS 设备的模块,提供飞行器的定位和导航功能。支持多种 GPS 设备和协议,提供高精度的位置、速度和航向信息,用于导航和飞行控制

AP_Gripper:是一个用于管理机械抓手(gripper)的模块,允许无人机在飞行过程中抓取或释放物体。其主要功能:1、提供 API 用于控制抓手的抓取和释放动作。2、报告抓手的状态(如是否成功抓取物体)。3、适用于物流无人机、搜索与救援任务等。

AP_GyroFFT:是一个用于对陀螺仪数据进行快速傅里叶变换(FFT)的模块,主要用于分析陀螺仪数据中的频率成分,通过 FFT 分析陀螺仪数据中的频率成分,帮助识别机械振动或电机噪声,支持对滤波后的陀螺仪数据进行 FFT 处理;用于飞行器的振动分析和噪声检测。

AP_HAL:(Hardware Abstraction Layer)是 ArduPilot 的硬件抽象层,用于屏蔽不同硬件平台之间的差异。提供统一的硬件接口,支持 GPIO、串口、定时器等硬件资源的管理,允许 ArduPilot 在不同的硬件平台上运行,而无需修改底层代码,支持不同的硬件抽象层实现(如 `AP_HAL_ChibiOS`、`AP_HAL_ESP32` 等)。

AP_HAL_ChibiOS: 是针对 ChibiOS 操作系统的硬件抽象层实现,用于在 ChibiOS 上运行 ArduPilot。支持 ChibiOS 操作系统上的硬件设备(如 GPIO、串口、定时器等),提供 ChibiOS 特定的系统调用接口。

AP_HAL_Empty:是一个空的硬件抽象层实现,通常用于测试或开发阶段,不依赖具体硬件,提供一个空的硬件抽象层实现,用于开发和测试阶段,不依赖任何具体硬件,适用于模拟环境。

AP_HAL_ESP32:是针对 ESP32 硬件平台的硬件抽象层实现,用于在 ESP32 上运行 ArduPilot,支持 ESP32 硬件平台上的 GPIO、串口、定时器等硬件资源,提供 ESP32 特定的系统调用接口。

AP_HAL_Linux:是针对 Linux 操作系统的硬件抽象层实现,用于在 Linux 环境下运行 ArduPilot,支持 Linux 系统上的硬件设备(如 GPIO、串口、定时器等),提供 Linux 特定的系统调用接口。

AP_HAL_SITL:是用于仿真环境(Software In The Loop, SITL)的硬件抽象层实现,允许在仿真环境中运行 ArduPilot,支持在仿真环境中运行 ArduPilot,用于开发和测试,模拟硬件设备的行为,提供仿真环境中的硬件接口。

AP_Hott_Telem:是用于支持 Hott 遥测协议的模块,主要用于与 Hott 遥控系统通信,支持 Hott 遥测协议,用于传输飞行器的状态信息(如电池电压、GPS 数据、速度等),允许地面站通过 Hott 接收机发送指令。

AP_ICEngine:是用于管理内燃机(Internal Combustion Engine, ICE)的模块,支持内燃机的监控和控制,监控内燃机的运行状态(如转速、温度、燃油消耗等),提供控制接口,用于调整内燃机的油门、点火等参数。

AP_InertialNav:是用于惯性导航的模块,通过融合加速度计和陀螺仪数据,提供飞行器的位移和速度信息,通过积分加速度计和陀螺仪数据,计算飞行器的位移和速度,支持与其他传感器(如 GPS)的数据融合,提高导航精度。

AP_InertialSensor:是用于管理惯性传感器(如加速度计和陀螺仪)的模块,提供传感器数据的读取和校准,读取加速度计和陀螺仪的数据,提供校准接口,用于校准传感器的偏移和灵敏度,对传感器数据进行滤波和处理,提供高质量的惯性数据。

AP_InternalError:是用于处理内部错误的模块,提供错误检测和报告功能,检测系统内部的错误状态(如硬件故障、软件异常等),记录错误信息,并通过日志或遥测发送给地面站。

AP_IOMCU:是用于管理 I/O 微控制器的模块,支持与外部 I/O 设备通信,管理 I/O 微控制器的输入输出操作,支持与外部 I/O 设备(如传感器、执行器)的通信,提供数据传输接口,用于读取传感器数据或发送控制指令。

AP_IRLock:是用于支持红外锁定功能的模块,通常用于无人机的红外目标跟踪,通过红外传感器锁定目标,并提供目标的位置信息,通过 I2C 串行通信协议与红外传感器进行数据交换。

AP_JSButton:是用于管理 Joystick 按钮的模块,支持通过 Joystick 控制飞行器,提供 Joystick 按钮的定义和功能实现,允许用户通过 Joystick 按钮进行飞行器的控制和操作。

AP_KDECAN:是用于支持 KDECAN 协议的模块,主要用于与 KDE 电机进行通信,通过 CAN 总线与 KDE 电机进行数据交换,支持对 KDE 电机的控制和状态监控。

AP_L1_Control:是用于实现 L1 控制算法的模块,主要用于固定翼飞行器的路径跟踪和导航,通过 L1 控制算法实现对路径的跟踪和导航,支持调整 L1 控制算法的参数,如控制周期、阻尼比等。

AP_Landing:是用于处理着陆逻辑的模块,主要用于固定翼飞行器的自动着陆,实现固定翼飞行器的自动着陆逻辑,管理着陆过程中的飞行器状态,确保安全着陆。

AP_LandingGear:是用于管理起落架的模块,支持起落架的收放控制,提供起落架的收放控制接口,报告起落架的状态(如是否收起或放下)。

AP_LeakDetector:是用于检测内存泄漏的工具,主要用于开发和调试阶段,检测系统中的内存泄漏问题,记录内存泄漏信息,并通过日志或遥测发送给地面站。

AP_Logger:是用于日志记录的模块,支持将飞行数据记录到存储设备,记录飞行器的运行数据,包括传感器数据、控制命令等,将日志数据存储到 SD 卡或其他存储设备。

AP_LTM_Telem:是用于支持 LTM 遥测协议的模块,主要用于与地面站进行遥测通信,支持 LTM 遥测协议,用于传输飞行器的状态信息,允许地面站通过 LTM 接收机发送指令。

AP_Math:是 ArduPilot 的数学库,提供飞行控制中常用的数学运算,支持三维坐标系的变换和计算,提供向量的变换和运算功能。

APM_Control:是用于飞行控制的模块,提供核心的飞行控制逻辑,实现飞行器的控制逻辑,包括姿态控制、速度控制等,支持调整飞行控制参数,优化飞行性能。

AP_Menu:是用于管理菜单系统的模块,支持用户通过菜单配置飞行器参数,提供菜单系统的实现,支持用户通过菜单进行配置,允许用户通过菜单系统配置飞行器的参数。

AP_Mission:是用于管理任务的模块,支持任务规划和执行,支持用户规划飞行任务,包括航点、动作等,实现任务的自动执行,支持多种任务模式。

AP_Module:是 ArduPilot 的模块管理系统,用于加载和管理各种功能模块,提供模块的加载和管理功能,支持动态加载和卸载模块,允许通过模块扩展飞行器的功能。

AP_Motors:是用于电机控制的模块,支持电机的驱动和调速,提供电机的驱动接口,支持多种电机类型,实现电机的调速控制,优化飞行性能。

AP_Mount:是用于管理云台的模块,支持云台的控制和姿态调整,提供云台的控制接口,支持多种云台类型,实现云台的姿态调整,确保拍摄稳定性。

AP_MSP:是用于支持 MultiWii Serial Protocol (MSP) 的模块,主要用于与 DJI FPV 系统、FatShark 等设备进行通信,支持 MSP 协议,用于传输飞行器的状态信息(如电池电压、GPS 数据、速度等),支持通过 MSP 协议将飞行器状态信息显示在 FPV 眼镜或显示器上,初始化 MSP 后端,支持多实例和线程处理。

AP_NavEKF:是用于实现导航扩展卡尔曼滤波器(EKF)的模块,主要用于融合多种传感器数据(如 GPS、IMU、气压计等),提供高精度的导航解决方案,估计飞行器的位置、速度、姿态等状态,融合多种传感器数据,提高导航精度,支持初始化和参数调整,优化滤波器性能。

AP_NavEKF2:是 `AP_NavEKF` 的改进版本,提供了更高级的导航功能和更高的精度,支持更多的传感器类型和更复杂的融合算法,提供更精确的飞行器状态估计,支持更精细的参数调整,优化滤波器性能。

AP_NavEKF3:是 `AP_NavEKF` 的第三个版本,进一步优化了导航算法,提供更高的导航精度,适用于复杂环境,支持多种传感器的融合,提高导航可靠性,支持初始化和状态管理,确保滤波器的稳定运行。

AP_Navigation:是用于实现导航功能的模块,主要用于规划和执行飞行路径,根据任务和目标,规划飞行路径,控制飞行器按照规划的路径飞行,实现多种导航算法,如 L1 控制算法。

AP_NMEA_Output:是用于输出 NMEA 格式数据的模块,主要用于与 GPS 设备或其他支持 NMEA 协议的设备通信;将飞行器的状态信息(如位置、速度、时间等)转换为 NMEA 格式并输出,支持多种 NMEA 协议,如 GGA、GSA、GSV 等。

AP_Notify:是用于管理通知和状态报告的模块,主要用于向用户或地面站报告飞行器的状态(如飞行模式、电池状态等),管理各种通知事件,如警报、警告等。

AP_OLC:是用于支持 OLC(Online Configuration)协议的模块,主要用于与地面站进行在线配置和通信,支持在线配置飞行器的参数和设置,通过 OLC 协议与地面站进行数据交换。

AP_ONVIF:是用于支持 ONVIF(Open Network Video Interface Forum)协议的模块,主要用于与网络摄像头进行通信;控制网络摄像头的拍摄和传输,通过 ONVIF 协议与网络摄像头进行数据交换。

AP_OpenDroneID:是用于支持 Open Drone ID 协议的模块,主要用于无人机的身份识别和数据传输;支持无人机的身份识别和数据传输,通过 Open Drone ID 协议与地面站或其他设备进行数据交换。

AP_OpticalFlow:是用于处理光学流传感器数据的模块,主要用于提供飞行器的相对位置和速度信息;处理光学流传感器的数据,提供相对位置和速度信息,将光学流数据与其他传感器数据融合,提高导航精度。

AP_OSD:是用于管理屏幕显示(On-Screen Display)的模块,主要用于在 FPV 眼镜或显示器上显示飞行器的状态信息; 将飞行器的状态信息(如电池电压、GPS 数据、速度等)显示在屏幕上,支持配置 OSD 显示的内容和位置。

AP_Parachute:是用于管理降落伞的模块,支持降落伞的释放和控制;提供降落伞的释放和控制接口,报告降落伞的状态(如是否释放)。

AP_Param:是用于管理飞行器参数的模块,支持参数的存储、读取和调整;管理飞行器的参数,支持通过地面站或其他工具调整飞行器的参数。

AP_PiccoloCAN: 是用于支持 Piccolo CAN 协议的模块,主要用于与 Piccolo 飞控系统进行通信;通过 CAN 协议与 Piccolo 飞控系统进行数据交换,支持 Piccolo CAN 协议,实现数据的传输和控制。

AP_Proximity:是用于管理接近传感器的模块,支持检测飞行器与障碍物的距离;检测飞行器与障碍物的距离,处理接近传感器的数据,提供距离信息。

AP_Radio:是用于管理无线电台的模块,支持无线电台的配置和通信。其主要功能:配置无线电台的参数,如频率、功率等,通过无线电台进行数据传输。

AP_Rally:是用于管理集结点的模块,支持飞行器的集结点设置和导航。其主要功能:设置和管理飞行器的集结点,控制飞行器导航到指定的集结点。

AP_RAMTRON:是用于管理 RAMTRON 存储器的模块,支持数据的存储和读取。其主要功能:将数据存储到 RAMTRON 存储器中,从 RAMTRON 存储器中读取数据。

AP_RangeFinder:是用于管理测距仪的模块,支持测距仪的数据读取和处理。其主要功能:读取测距仪的数据,提供距离信息;处理测距仪的数据,提供可靠的距离测量。

AP_RCMapper:是用于管理遥控器映射的模块,支持遥控器的按键和摇杆映射。其主要功能:将遥控器的按键映射到特定的功能;将遥控器的摇杆映射到特定的控制。

AP_RCProtocol:是用于支持遥控器协议的模块,支持多种遥控器协议的通信。其主要功能:支持多种遥控器协议,如 PPM、SBUS 等;通过遥控器协议进行数据传输。

AP_RCTelemetry:是用于支持遥控器遥测的模块,支持遥控器与飞行器之间的数据传输。其主要功能:通过遥控器进行数据传输,支持双向通信;支持多种遥测协议,如 FrSky、Hott 等。

AP_Relay:是用于管理继电器的模块,支持继电器的控制和状态反馈。其主要功能:控制继电器的开关状态;报告继电器的状态。

AP_RobotisServo:是用于管理 Robotis 伺服电机的模块,支持伺服电机的控制和状态反馈。其主要功能:控制 Robotis 伺服电机的位置和速度;报告伺服电机的状态。

AP_ROMFS:是用于管理只读文件系统的模块,支持从只读存储器中读取文件。其主要功能:从只读文件系统中读取文件;管理只读文件系统的文件和目录。

AP_RPM:是用于管理电机转速的模块,支持电机转速的读取和监控。其主要功能:读取电机的转速信息;处理转速数据,提供电机状态信息。

AP_RSSI:是用于管理接收信号强度指示(RSSI)的模块,支持 RSSI 数据的读取和处理。其主要功能:读取接收信号的强度;处理 RSSI 数据,提供信号强度信息。

AP_RTC:是用于管理实时时钟(RTC)的模块,支持时间的读取和设置。其主要功能:读取实时时钟的时间;设置实时时钟的时间。

AP_SBusOut:是用于支持 SBUS 输出的模块,主要用于将飞行器的控制信号通过 SBUS 协议发送给其他设备。其主要功能:将控制信号转换为 SBUS 格式并输出;支持 SBUS 协议,实现数据的传输。

AP_Scheduler:是用于管理任务调度的模块,支持多任务的调度和管理,管理飞行器的多任务调度,确保任务的及时执行,支持任务的优先级管理,优化任务执行顺序。

AP_Scripting:是用于支持脚本编程的模块,支持通过脚本实现自定义功能。其主要功能:执行用户编写的脚本,实现自定义功能;管理脚本的加载和执行,支持动态更新。

AP_SerialLED:是用于管理串行 LED 的模块,支持通过串行接口控制 LED。其主要功能:通过串行接口控制 LED 的状态;支持通过串行接口进行数据传输。

AP_SerialManager:是用于管理串行接口的模块,支持多个串行接口的配置和管理。其主要功能:管理飞行器的多个串行接口,支持配置和数据传输;支持多种串行协议,如 UART、I2C、SPI 等。

AP_ServoRelayEvents:是用于管理舵机继电器事件的模块,支持舵机的控制和状态反馈。其主要功能:控制舵机的继电器事件;报告舵机的状态。

AP_SmartRTL:是用于实现智能返航功能的模块,支持飞行器的智能返航。其主要功能:控制飞行器的返航过程,确保安全返航;规划返航路径,避免障碍物。

AP_Soaring:是用于支持滑翔功能的模块,支持飞行器的滑翔控制。其主要功能:控制飞行器的滑翔过程,优化飞行性能;处理滑翔相关的数据,提供飞行状态信息。

AP_Stats:是用于管理飞行器统计信息的模块,支持飞行器的性能统计和分析。其主要功能:统计飞行器的性能数据,如飞行时间、距离等;分析飞行器的性能数据,提供优化建议。

AP_TECS:是用于实现总能量控制系统的模块,支持飞行器的能量管理。其主要功能:管理飞行器的能量,确保飞行安全;处理能量相关的数据,提供飞行状态信息。

AP_TempCalibration:是用于支持温度校准的模块,支持传感器的温度校准。其主要功能:校准传感器的温度响应,提高测量精度;处理温度数据,提供校准后的温度信息。

AP_TemperatureSensor:是用于管理温度传感器的模块,支持温度数据的读取和处理。其主要功能:读取温度传感器的数据;处理温度数据,提供可靠的温度测量。

AP_Terrain:是用于管理地形数据的模块,支持地形数据的读取和处理。其主要功能:读取地形数据,提供地形信息;处理地形数据,提供飞行器的地形参考。

AP_Torqeedo:是用于支持 Torqeedo 电机的模块,支持 Torqeedo 电机的控制和状态反馈。其主要功能:控制 Torqeedo 电机的运行;报告电机的状态。

AP_Tuning:是用于支持飞行器调参的模块,支持飞行器的参数调整和优化。其主要功能:调整飞行器的控制参数,优化飞行性能;处理调参相关的数据,提供优化建议。

AP_UAVCAN:是用于支持 UAVCAN 协议的模块,支持 UAVCAN 设备的通信和管理。其主要功能:通过 UAVCAN 协议进行数据传输;管理 UAVCAN 设备,支持设备的配置和状态反馈。

AP_Vehicle:是用于管理飞行器类型的模块,支持不同类型的飞行器(如固定翼、旋翼等)。其主要功能:管理飞行器的类型和配置;提供不同飞行器类型的支持,优化飞行性能。

AP_VideoTX:是用于管理视频传输的模块,支持视频信号的传输和控制。其主要功能:管理视频信号的传输,支持视频数据的发送;控制视频传输设备,支持设备的配置和状态反馈。

AP_VisualOdom:是用于处理视觉里程计数据的模块,支持通过视觉传感器提供飞行器的相对位置和速度信息。其主要功能:处理视觉里程计数据,提供相对位置和速度信息;将视觉里程计数据与其他传感器数据融合,提高导航精度。

AP_Volz_Protocol:是用于支持 Volz 协议的模块,主要用于与 Volz 设备进行通信。其主要功能:通过 Volz 协议进行数据传输;管理 Volz 设备,支持设备的配置和状态反馈。

AP_WheelEncoder: 是用于管理轮式编码器的模块,支持轮式编码器的数据读取和处理。其主要功能:读取轮式编码器的数据,提供轮速和位置信息;处理轮式编码器数据,提供可靠的轮速和位置测量。

AP_Winch:是用于管理绞车的模块,支持绞车的控制和状态反馈,控制绞车的运行,支持绞车的收放操作,报告绞车的状态。

AP_WindVane:是用于管理风向标的模块,支持风向标的数据读取和处理,读取风向标的数据,提供风向信息,处理风向标数据,提供可靠的风向测量。

AR_Motors:是用于管理电机的模块,支持电机的控制和状态反馈,控制电机的运行,支持电机的调速和启停,报告电机的状态。

AR_WPNav:是用于实现航点导航功能的模块,支持飞行器的航点规划和导航,规划飞行器的航点路径,控制飞行器按照规划的航点路径飞行。

Filter:是用于实现滤波功能的模块,支持多种滤波算法(如低通滤波、高通滤波等),对传感器数据进行滤波处理,提高数据质量,支持多种滤波算法,满足不同应用场景的需求。

GCS_MAVLink:是用于支持 MAVLink 协议的模块,支持与地面站的通信,通过 MAVLink 协议与地面站进行数据传输,支持 MAVLink 协议,实现飞行器与地面站的双向通信。

PID:是用于实现 PID 控制算法的模块,支持飞行器的控制和调节,实现 PID 控制算法,用于飞行器的姿态和速度控制,支持 PID 参数的调整,优化控制性能。

RC_Channel:是用于管理遥控器通道的模块,支持遥控器的通道配置和数据读取,配置遥控器的通道,支持多种通道模式,读取遥控器的通道数据,提供控制信号。

SITL:(Software In The Loop)是用于仿真环境的模块,支持在仿真环境中运行 ArduPilot,提供仿真环境的支持,用于开发和测试,模拟飞行器的运行数据,提供仿真测试环境。

SRV_Channel:是用于管理舵机通道的模块,支持舵机的控制和状态反馈,控制舵机的运行,支持舵机的调速和位置控制,报告舵机的状态。

StorageManager:是用于管理存储设备的模块,支持飞行器的存储设备(如 SD 卡)的管理,管理存储设备,支持设备的初始化和数据存储,将飞行数据存储到存储设备中,支持日志记录和数据回放。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值