ArduPilot
文章平均质量分 93
ArduPilot
lida2003
As long as we stand, we fight! Live long and die well!
展开
-
uav_bridge开源代码之介绍
根据《Ardupilot开源飞控之FollowMe验证平台搭建》^ ^| |UART WiFi| |v vuav_bridge的目的就是起到一个桥梁的作用,将会部署在JetsonOrin上,至于到底是后置、前置取决于性能。当前仅就手边的环境进行了简单的功能验证和性能测试,初步满足基本要求。由于目前没有结构件,导致尚无法安装做Non-GPS定位测试。后续看看是否有可能进一步验证。uav_bridge。原创 2024-09-20 14:19:54 · 428 阅读 · 0 评论 -
Ardupilot开源飞控之VTOL之旅:且败且战
目前,打印件已经请人打印,相信本次国情,有望装配!!!😃。原创 2024-09-17 14:52:38 · 712 阅读 · 0 评论 -
Ardupilot开源飞控之FollowMe验证平台搭建
今天刚发出去OpenIPC模块,提出修改方案,后续逐步完善,搭建测试验证平台。注:问号的地方版本尚未确定。折腾了一段时间,再次捡起。原创 2024-08-28 20:23:03 · 732 阅读 · 0 评论 -
ArduPilot开源代码之AP_IOMCU
之前我们讨论了FMU + IMU的硬件架构,该设计主要是由于STM32外设IO、MCU计算资源不够应付外设的情况下,采用的一种折中的方案。随着技术的日益发展,更高效,更多的IO资源的MCU芯片已经具备。当然在特殊应用领域或者方案,仍然可以考虑采用这一方案。采用1.5Mbps,默认(测试)确保,当前连接在无CTS/RTS的方式下进行通信无异常。应用类:FMU与IOMCU通信实现。注:参考Pixhawk4硬件飞控板。头文件定义FMU端通信端口。初始化FMU串口实例.原创 2024-08-16 17:49:38 · 302 阅读 · 0 评论 -
Ardupilot开源飞控之IOMCU设计细节
鉴于最近研读了下FMU+IOMCU的设计,那么小伙伴们肯定要问,这个代码在哪里,怎么编啊?注:以为例!主要硬件资源:3. 通信协议3.1 协议格式3.2 字段说明count (6 bits)code (2 bits)crc (8 bits)page (8 bits)offset (8 bits)regs (数组,每个元素 16 bits)根据 函数,数据包的总尺寸计算方式如下:因此,数据包的总大小为 字节。根据工程脚本内容,源代码涉及以下内容:4.2 特性功能与FMU采用通过高速(1原创 2024-08-15 17:13:41 · 719 阅读 · 0 评论 -
ArduPilot开源代码之FMU+IOMCU设计
IOMCU_UART功能分工:FMU负责高层次的决策和算法处理,而IOMCU负责低层次的信号处理和实时任务执行。协同工作:FMU和IOMCU协同工作,FMU负责计划和策略,IOMCU执行具体任务,确保系统的整体效率和稳定性。系统可靠性:两者的协同不仅提升了系统的灵活性和可扩展性,还提高了系统的可靠性,通过冗余设计可以进一步增强故障处理能力。FMU(飞行管理单元)和IOMCU(输入/输出微控制器单元)在飞行控制系统中共同扮演重要角色,它们的协同工作确保了飞行器的稳定和高效运行。原创 2024-08-13 10:22:11 · 795 阅读 · 0 评论 -
ArduPilot开源代码之ROS2Humble+CartographerSLAM+SITL+Gazebo
本章在Jetson Orin Nano 8GB板子上,整理了Ardupilot当前在ROS2Humble+CartographerSLAM+SITL+Gazebo下的仿真运行步骤。原创 2024-07-31 17:41:03 · 1493 阅读 · 0 评论 -
ArduPilot开源代码之lida2003套机+伴机电脑外场
通过实测和分析,对于当前开源方案伴机电脑整体功能和效果大体有了一个概念。Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考ArduPilot开源飞控之MAVProxy深入研读系列 - 2蜂群链路ArduPilot飞控之ubuntu22.04-Gazebo模拟Linux 35.5 + JetPack v5.1.3@FC-Planner编译安装Linux 35.5 + JetPack v5.1.3@RACER编译安装。原创 2024-07-30 16:33:10 · 554 阅读 · 0 评论 -
ArduPilot开源代码之NavEKF3
通过AHRS(Attitude and Heading Reference System)流程框架,聚焦NavEKF3算法,根据传感器数据估计移动物体的导航和状态。注:当前在Ardupilot上比较主流的是EKF3算法,当然当EKF3失效时会回退到DCM,具体理论可以参考《BetaFlight深入传感设计之五:MahonyAHRS & 方向余弦矩阵理论》。原创 2024-07-30 15:54:58 · 1047 阅读 · 0 评论 -
ArduPilot开源代码之AP_NavEKF_Source
类是一个导航或控制系统的一部分,可能用于无人机(UAV)或其他机器人系统。它管理不同的导航数据来源,包括位置、速度和航向信息。该类与其他组件一起使用,以提供一个可靠的导航解决方案。原创 2024-07-30 09:28:17 · 418 阅读 · 0 评论 -
ArduPilot开源代码之NavEKF3_core
类含有很多滤波、数据融合等提高数据有效性的方法。原创 2024-07-22 16:17:00 · 984 阅读 · 0 评论 -
ArduPilot开源代码之NavEKF_core_common
整体来说不复杂,但是如果能结合一些overflow的检查就更好了。fill_scratch_variables //SITL环境下,2048最大长度和数组NaN赋值zero_range //清零初始化。原创 2024-07-21 19:44:04 · 656 阅读 · 0 评论 -
ArduPilot开源代码之NavEKF2_core
类含有很多滤波、数据融合等提高数据有效性的方法。原创 2024-07-21 19:43:30 · 745 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL研读系列
AP_DAL通过frame的方式随着AP_AHRS进行定期更新数据,进而保持其API提供最新的信息用于EKF算法。原创 2024-07-19 10:48:10 · 1631 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL_VisualOdom
是视觉里程计系统的状态,其主要实现依赖于《ArduPilot开源飞控之AP_VisualOdom》。原创 2024-07-19 07:40:38 · 928 阅读 · 2 评论 -
ArduPilot开源代码之AP_DAL_Beacon
类用于管理信标数据并提供相关信息访问。原创 2024-07-19 05:37:05 · 874 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL_Airspeed
的类,用于处理空速传感器数据,管理和访问多个空速传感器实例的状态和数据。原创 2024-07-18 20:48:47 · 865 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL_Compass
的主要功能是管理和访问多个磁罗盘实例的状态和数据。原创 2024-07-18 17:07:52 · 630 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL_RangeFinder
主要功能是用于管理和操作测距仪的数据和状态,并提供访问接口进行直接状态访问。原创 2024-07-18 16:35:02 · 1310 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL_RangeFinder_Backend
主要封装测距仪的共性数据访问和操作。orientation //安装方向get_pos_offset //安装位置status //设备状态distance_cm //传感距离。原创 2024-07-18 16:33:47 · 801 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL_InertialSensor
public:// 公共方法private:主要管理了加速度计和陀螺仪数据,并提供访问接口进行直接状态访问。原创 2024-07-17 17:39:46 · 796 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL_Baro
public:// 获取主传感器编号// 获取传感器实例数// 检查传感器健康状态// 获取指定传感器最后更新时间(毫秒)// 获取主传感器最后更新时间(毫秒)// 获取指定传感器海拔高度// 获取主传感器海拔高度// update_calibration 在回放中是一个空操作,因为它只是修改数据// 而我们将记录这些数据以输入到扩展卡尔曼滤波器(EKF)中。// 构造函数// 开始帧// 处理消息:处理 log_RBRH 类型的消息。原创 2024-07-17 17:39:29 · 1002 阅读 · 0 评论 -
ArduPilot开源代码之AP_DAL_GPS
public:NO_GPS = GPS_FIX_TYPE_NO_GPS, ///< 无GPS连接/检测NO_FIX = GPS_FIX_TYPE_NO_FIX, ///< 接收到有效的GPS消息但没有锁定GPS_OK_FIX_2D = GPS_FIX_TYPE_2D_FIX, ///< 接收到有效的消息并且2D锁定GPS_OK_FIX_3D = GPS_FIX_TYPE_3D_FIX, ///< 接收到有效的消息并且3D锁定。原创 2024-07-17 17:39:12 · 860 阅读 · 0 评论 -
ArduPilot开源代码之EKF3
AP_NavEKF3实例化了多个称为“lanes”的滤波器实例。主要的lane提供状态估计,其余的在后台更新并可供切换。可用的lane数量与启用的IMU数量完全相同。按照传统,每个lane使用空速计、气压计、GPS和磁力计传感器的主要实例。主要传感器可以通过修改的参数进行设置,故障情况下,系统甚至可以在飞行中稍后进行更改。通过lane上所有传感器的误差分数计算,选择具有性能最佳的传感器组合的lane。原创 2024-07-15 18:23:58 · 419 阅读 · 0 评论 -
ArduPilot开源代码之EKF2
AP_NavEKF2。原创 2024-07-15 18:23:42 · 1042 阅读 · 0 评论 -
ArduPilot开源代码之EKF1
更快处理器(如 STM32 F405/H743 等)的可用性使得能够实现更先进的数学算法来估计飞行器的姿态、速度和位置。开发了一种扩展卡尔曼滤波器(EKF)算法,该算法使用速率陀螺仪、加速度计、指南针、GPS、空速和气压测量来估计飞行器的位置、速度和角度方向。EKF 相对于 DCM 和 惯性导航所使用的简单互补滤波算法的优势在于,通过融合所有可用的测量数据,它能够更好地拒绝具有显著误差的测量值,使得飞行器对单个传感器故障的敏感性降低。原创 2024-07-15 18:23:26 · 726 阅读 · 0 评论 -
ArduPilot开源代码之EKF系列研读
EKF(扩展卡尔曼滤波器,Extended Kalman Filter)是一种非线性滤波算法,是标准卡尔曼滤波器在非线性系统中的扩展。它在处理和估计非线性系统状态时广泛应用,如机器人导航、目标跟踪和自动驾驶等领域。线性化步骤,使得卡尔曼滤波器可以处理非线性系统中的状态估计问题,尽管这种方法在高非线性情况下可能存在精度不足的缺点。但是主打的就是一个专研,学习,因此后续将分章节,逐步的学习。EKF的基本思想是通过线性化非线性系统的状态转移和观测方程,然后应用标准卡尔曼滤波器。分别是过程噪声和观测噪声。原创 2024-07-15 18:23:06 · 1688 阅读 · 0 评论 -
ArduPilot开源代码之AP_AHRS_Backend
结合上面从设计的角度来说,是一个后端驱动模版;从抽象的角度看,是设计共性标准化(虚函数,共性实现);从代码角度,有些离散,可能是SIM、DCM、External、EKF2、EKF3场景和算法的一个历史变化(后续可能还会有UKF算法);通过走读代码,可以逐步的熟悉代码历史以及设计思想。很多历史问题是无法避免的和回避的。正如苏格拉底所说的:“我知道我一无所知。“苏格拉底怀疑主义”是分析问题,认识世界非常好的手段!原创 2024-07-14 18:34:55 · 880 阅读 · 0 评论 -
ArduPilot开源代码之AP_AHRS_View
综上所述,类调用了大量AP_AHRS姿态位置速度如其名字所表述的AP_AHRS。原创 2024-07-13 08:04:57 · 871 阅读 · 0 评论 -
ArduPilot开源飞控之AP_Mount_Topotek
该协议支持来源于拓扑联创,其英文网站Topotek。由于开源社区体系的完善,设备提供方为了更好的服务客服,融入社区,就必须提供已有后端驱动接口或者提供上述对接源代码。从设计的角度,这就是一个类似灰盒的接口暴露在外,供三方应用更好的集成和测试。这是一种非常好的设计模式,很高兴看到这么多Ardupilot Partner的设备源源不断的进入社区。原创 2024-07-12 10:33:41 · 1177 阅读 · 0 评论 -
ArduPilot开源飞控之AP_Mount_Backend_Serial
/ 类成员和方法在这里定义这行声明了一个新的类,它继承自基类。通过上面的梳理,整个云台设备业务逻辑是通过AP_Mount来整合,包括摄像头、测距仪、摄像头跟随。原创 2024-07-12 08:13:29 · 708 阅读 · 0 评论 -
ArduPilot开源飞控之AP_Mount_Servo
是通过PWM控制舵机,从而调整云台角度。该云台设备驱动类是最基本或者说最为原始的,电子件最少得云台控制程序。大部分某宝上的都是这类云台。原创 2024-07-12 07:09:10 · 860 阅读 · 0 评论 -
ArduPilot开源飞控之AP_Mount_Backend
是在云台+相机+测距+相机跟随的复合设备抽象类。AP_Mount_Topotek //最近更新的设备类。原创 2024-07-11 20:37:49 · 788 阅读 · 0 评论 -
ArduPilot开源飞控之AP_Mount_Siyi
是在云台基础上集成了摄像头、红外测距等诸多功能的复合设备。云台摄像头 串口接 飞控AI模块 串口接 飞控其中云台摄像头 串口接 飞控,走的就是本文所描述的协议。而AI模块 串口接飞控侧重的伴机电脑的目标跟踪。原创 2024-07-11 08:08:56 · 842 阅读 · 0 评论 -
ArduPilot开源代码之AP_OpticalFlow_UPFLOW
UPFLOW和CXOF类似,从协议使用的方式来看,效率偏低。原创 2024-07-10 19:32:00 · 448 阅读 · 0 评论 -
ArduPilot开源代码之AP_OpticalFlow_CXOF
CXOF是一种光流计协议,但是协议使用的方式来看,效率偏低,并不推荐。原创 2024-07-10 19:02:30 · 440 阅读 · 0 评论 -
ArduPilot开源代码之AP_OpticalFlow_MSP
之前在研读《ArduPilot开源飞控之AP_OpticalFlow》出现了明显的错误,在进一步研读过程,发现并纠正错误。随着Ardupilot研读的深入,逐步的发现其C++继承应用的方法,代码走读也就越来越容易。继续,保持,不断学习!!!原创 2024-07-10 17:03:04 · 1023 阅读 · 0 评论 -
ArduPilot开源代码之OpticalFlow_backend
是其中的一种。传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X[ArduPilot开源代码之MatekSys Optical Flow 3901-L0X](ArduPilot开源代码之MatekSys Optical Flow 3901-L0X)ArduPilot开源飞控之AP_OpticalFlow。原创 2024-07-10 15:28:28 · 936 阅读 · 1 评论 -
ArduPilot开源代码之AP_MSP
其实Ardupilot代码从框架设计的角度来看,非常透明、简洁、当然实际应用过程也存在一些资源剪裁问题。总的来说,目前betaflightinav开发航模生态下,MSP协议还是非常普及的。了解这块协议,对于兼容和集成会有很大的帮助。原创 2024-07-10 10:06:08 · 711 阅读 · 0 评论 -
ArduPilot开源代码之AP_Logger_RateLimiter
从应用和代码实现的角度看,该日志记录器速率限制被用于。原创 2024-07-09 07:10:49 · 734 阅读 · 0 评论