- 博客(33)
- 资源 (4)
- 收藏
- 关注
原创 QGroundControl设置功能完整指南
QGroundControl设置功能完整指南摘要 QGroundControl提供全面的设置功能模块,包括: 通用设置 - 控制应用程序核心配置,如显示单位、自动连接设备、RTK GPS设置等 通信链接 - 管理多种通信协议连接(串口/UDP/TCP) 离线地图 - 支持地图缓存和离线使用 MAVLink设置 - 配置协议参数、系统ID、日志流传输 控制台设置 - 调整日志显示和记录功能 帮助设置 - 提供用户手册和版本信息 各模块支持深度配置,满足从基础连接到高级开发的需求,并可通过代码扩展自定义功能。
2025-07-18 15:02:37
1827
原创 QGroundControl ArduSub 水下机器人使用教程
QGroundControl ArduSub 水下机器人使用教程摘要 本教程详细介绍了使用QGroundControl配置和管理ArduSub水下机器人的完整流程。主要内容包括: 基础设置:软件安装、硬件连接和初始化配置 推进器配置:映射、方向设置和限幅调整 传感器校准:加速度计、罗盘、深度传感器和漏水检测 参数详解:深度控制、姿态保持和位置控制的PID参数设置 控制模式:手动、稳定、深度保持等模式的配置建议 操控设置:摇杆映射、增益调整和输入平滑 调试流程:从陆上测试到水下调试的方法论 教程特别强调了水下
2025-07-18 14:48:31
1660
1
原创 ArduPilot Sub SITL 完整安装调试教程
本文提供了ArduPilot Sub SITL在CUAV 6X硬件上的完整安装调试教程,内容包括:系统环境准备(推荐Ubuntu 20.04+或WSL2)、Python依赖安装、ArduPilot源码下载与子模块更新、SITL编译配置(针对CUAV 6X硬件)、Gazebo 3D仿真环境搭建(包括水下世界和潜航器模型配置)、SITL参数详解、MAVProxy控制台使用方法等。教程特别针对重型潜航器应用,提供了6自由度矢量推进器配置和自定义水下环境设置方法,并包含常见问题解决方案,帮助开发者快速搭建水下机器人
2025-07-18 14:30:48
1173
1
原创 ArduPilot AC_CustomControl 库(自定义控制系统)功能说明
ArduPilot的AC_CustomControl库实现了一套可扩展的自定义控制系统,包含前端接口(AC_CustomControl)和后端基类(AC_CustomControl_Backend)。该系统支持两种控制器类型:空白模板控制器(Empty)和PID控制器(PID),可通过参数CC_TYPE选择。主要特点包括运行时控制器切换、轴选择掩码、平滑过渡机制等。该库采用模块化设计,便于添加新控制器,提供独立参数配置(以CC_为前缀),并确保与主控制系统的安全交互。控制器计算在主速率控制器之后执行,直接覆
2025-07-02 08:47:26
546
原创 ArduPilot AC_Avoidance 库(避障系统)功能说明
ArduPilot的AC_Avoidance库提供了一套完整的无人机避障系统,包含7个核心模块实现不同功能。该系统支持多种避障策略(滑动/停止)、算法(弯曲尺规/迪杰斯特拉)和障碍类型(围栏/传感器检测),具有三维避障、实时路径规划、多源感知等特性。通过参数化配置,用户可调整避障距离、算法类型和安全边界等参数。系统工作流程包括障碍物检测、速度调整、路径规划、围栏处理和执行决策等环节,为无人机提供可靠的避障能力。
2025-07-02 08:46:30
937
原创 ArduPilot AC_Autorotation 库(直升机自转控制系统)功能说明
ArduPilot的AC_Autorotation库是直升机自动自转控制系统,主要包含桨叶转速控制和前向速度控制两大核心功能。系统通过P控制器、低通滤波和前馈补偿机制实现自转过程中桨叶转速的稳定控制,同时利用俯仰姿态控制前向速度。该库具备多阶段自适应控制能力,支持自转入口、滑翔和复飞阶段的平滑过渡,并内置完善的安全监测系统,可检测RPM传感器故障并实施安全策略。系统采用模块化设计,提供丰富的可调参数以适应不同机型,还包含数据记录功能用于诊断分析。关键技术包括加速度限制、平滑过渡处理和自适应滤波等。
2025-07-02 08:45:39
910
原创 ArduPilot 飞艇模块(Blimp)功能说明
ArduPilot飞艇模块(Blimp)提供了一套完整的飞艇自动驾驶解决方案。核心系统包含25个关键组件文件,覆盖飞行控制、导航、传感器管理、安全保护等全方面功能。系统支持多种飞行模式包括手动控制、速度模式、定点悬停和自动返航等,具备风力补偿、动态浮力调整等飞艇专用控制算法。技术特点包括高效能源管理、低速精确控制、长时间任务支持以及室内无GPS导航能力。系统采用模块化设计,包含初始化、控制循环、模式管理、导航执行和安全监控五大核心流程,确保飞艇在各种条件下的稳定可靠运行。
2025-07-02 08:44:51
925
原创 ArduPilot 固定翼飞行器模块(ArduPlane)功能说明
ArduPilot固定翼模块(ArduPlane)提供全面的自动驾驶功能,包含核心控制系统、多种飞行模式(手动、巡航、自动等)、混合四旋翼支持(QuadPlane)、特殊机型控制(尾座式/倾转旋翼)以及导航安全系统。主要特点包括:模块化架构(Plane.cpp为核心)、30+个功能模块分工明确、支持从基础飞行到全自动任务、深度故障保护机制、热气流滑翔优化等,通过初始化、控制循环、模式管理、导航执行和安全监控5大流程实现智能飞行控制。
2025-07-02 08:44:08
1198
原创 ArduPilot 多旋翼飞行器模块(ArduCopter)功能说明
ArduPilot多旋翼飞行器模块(ArduCopter)是一个功能全面的开源无人机控制系统,包含核心控制、飞行模式、导航系统、安全保护等模块。核心文件(Copter.h/cpp)定义飞行器主要接口,参数系统(Parameters.h/cpp)管理配置项。系统支持20多种飞行模式,包括稳定模式、定高模式、自动返航等,满足不同应用场景需求。导航系统(Attitude.cpp等)实现精确姿态控制和路径跟踪,安全模块(fence.cpp等)提供地理围栏和故障保护功能。特殊功能模块如精确着陆、障碍避让等增强了飞行器
2025-07-02 08:42:46
1048
原创 ArduPilot 天线追踪器模块(AntennaTracker)功能说明
ArduPilot天线追踪器模块核心功能包括多模式目标追踪、高精度舵机控制和MAVLink通信。系统通过Tracker.h/cpp等核心文件实现追踪算法,支持自动、手动、扫描等多种模式,并配备传感器融合、参数配置和日志记录功能。硬件控制方面提供舵机精确控制和遥控通道处理,采用安全解锁机制。该模块具有高精度追踪、自适应算法、远程操作和低功耗设计等技术特点,工作流程包括系统启动、目标获取、方位计算、舵机控制和状态报告五个主要环节。
2025-07-02 08:41:59
568
原创 ArduPilot AP_GPS 库(全球定位系统)功能说明
ArduPilot的AP_GPS库提供全面GPS支持,包含20多个模块文件。核心功能包括:1)多接收机管理(AP_GPS);2)协议处理基类(GPS_Backend);3)设备自动检测(GPS_detect_state)。支持UBLOX、NMEA等主流协议驱动,以及RTK、差分定位等高级功能。技术特点突出多协议兼容、高精度定位和自动配置能力,通过初始化检测、数据解析、状态监控和多GPS融合四个核心流程,实现稳定可靠的定位解决方案。该库设计注重扩展性和低资源占用,适合嵌入式系统应用。
2025-07-01 17:17:02
808
原创 ArduPilot libraries AP_AHRS (姿态航向参考系统)功能说明
ArduPilot的AP_AHRS库实现了一套完整的姿态航向参考系统,包含DCM、EKF等核心算法以及模拟和外部数据接口。该系统通过多传感器融合提供高精度姿态、位置和速度估计,具有自适应机制、故障检测和冗余设计等特点。主要功能包括传感器数据处理、姿态计算、导航参数推导、状态监控和数据输出,支持坐标转换和模块化扩展,为飞行控制系统提供可靠的姿态参考。该库采用分层架构设计,包含主接口、后端基类和多种实现,并配套日志记录和调试功能。
2025-07-01 17:15:32
639
原创 ArduPilot 水下载具模块(ArduSub)功能说明
ArduPilot水下载具模块(ArduSub)提供完整的水下机器人控制方案,包含核心控制系统、多种飞行模式、传感器接口和安全机制。核心文件包括Sub类(系统主控)、ArduSub(任务调度)和参数系统;提供稳定、深度保持等7种控制模式;支持电机控制、传感器融合和漏水检测等硬件接口;具备MAVLink通信、数据记录和故障保护功能。系统实现六自由度精确控制,通过多传感器融合抵抗水流干扰,支持自动任务执行和远程监控,为水下作业提供可靠平台。
2025-07-01 17:06:23
451
原创 C++编程习惯与编程要点
假设现在我们要实现一个复数类complex,在类的实现过程中探索良好的编程习惯。① Header(头文件)中的防卫式声明complex.h:# ifndef __COMPLEX__# define __COMPLEX__class complex{}# endif防止头文件的内容被多次包含。② 把数据放在private声明下,提供接口访问数据# ifndef __COMPLEX__...
2018-03-25 11:01:58
492
原创 java引用类型
在Java中类型可分为两大类:值类型与引用类型。值类型就是基本数据类型(如int ,double 等),而引用类型,是指除了基本的变量类型之外的所有类型(如通过 class 定义的类型)。所有的类型在内存中都会分配一定的存储空间(形参在使用的时候也会分配存储空间,方法调用完成之后,这块存储空间自动消失), 基本的变量类型只有一块存储空间(分配在stack中), 而引用类型有两块存储空间(一块在s...
2018-02-10 12:00:53
360
原创 Android总结之链式调用(方法链)
前言: 最近在学习总结Android属性动画的时候,发现Android的属性动画设计采用了链式调用的方式,然后又回顾了一下了以前接触的开源框架Glide也是采用链式调用的方式,还有最近火的一塌糊涂的RxJava也是采用链式调用,为何如此之多的开源项目采用这种设计方式,今天来对比学习一下。什么是链式调用? 链式调用其实只不过是一种语法招数。它能让你通过重用一个初始操作来达到用少量代码...
2018-02-08 17:18:16
996
1
转载 Android Service真正的完全详解
Service全部内容基本会在本篇涉及到,我们将围绕以下主要知识点进行分析:Service简单概述Service在清单文件中的声明Service启动服务实现方式及其详解Service绑定服务的三种实现方式关于启动服务与绑定服务间的转换问题前台服务以及通知发送服务Service与线程Thread的区别管理服务生命周期的要点Android 5.0以上的隐式启动问题及其解决方案保证服务不被杀死的实现...
2018-02-08 14:58:47
392
原创 Android Thread线程使用
前言 最近在一直准备总结一下Android上的线程管理,今天先来总结一下Thread使用。 线程管理相关文章地址:Android线程管理之Thread使用总结Android线程管理之ExecutorService线程池Android线程管理之ThreadPoolExecutor自定义线程池Android线程管理之AsyncTask异步任务Android线程管理之ThreadLoca...
2018-02-08 11:57:18
467
转载 Android开发规范
摘要1 前言2 AS 规范3 命名规范4 代码样式规范5 资源文件规范6 版本统一规范7 第三方库规范8 注释规范9 测试规范10 其他的一些规范1 前言为了有利于项目维护、增强代码可读性、提升 Code Review 效率以及规范团队安卓开发,故提出以下安卓开发规范,该规范结合本人多年的开发经验并吸取多家之精华,可谓是本人的呕心沥血之作,称其为当前最完善的安卓开发规范一点也不
2018-02-03 15:46:34
352
转载 android 监听EditText 的变化
使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听,TextWatcher是一个接口类,所以必须实现TextWatcher里的抽象方法:当EditText里面的内容有变化的时候,触发TextChangedListener事件,就会调用TextWatcher里面的抽象方法。布局:[ht
2018-02-03 11:22:42
539
转载 DialogFragment使用总结
最近使用dialog的情况比较多,谷歌现在开始建议使用Dialogfragment 来代替传统的dialog,至于dialogfragment 的好处大家可以百度一下,于是乎要转变思路开始使用最新的dialogfragment,不过使用过程不是很顺利,各种坑,所以今天索性把基本上所有情况都整理了一下,上代码吧还是 1.最基本的一个普通的dialog[ja
2018-02-01 10:44:26
1409
原创 android动态修改布局
LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) textView.getLayoutParams(); //取控件textView当前的布局参数 linearParams.height = 20;// 控件的高强制设成20 linearParams.width = 30;// 控件的宽强制设成30
2018-02-01 09:00:09
5450
原创 常用排序算法总结(二)
目录计数排序基数排序桶排序 上一篇文章中我们总结了常用的比较排序算法,主要有冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 这篇文章中我们来探讨一下常用的非比较排序算法:计数排序,基数排序,桶排序。在一定条件下,它们的时间复杂度可以达到O(n)。 这里我们用到的唯一数据结构就是数组,当然我们也可以利用链表来实现下述算法。
2018-01-28 14:41:25
271
原创 C语言qsort函数用法
qsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等。 看名字都知道快速排序是目前公认的一种比较好的排序算法。因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用。 这就是qsort函数(全称quicksort)。它是ANSI C标准中提供的,其声明在stdlib.h文件中,是根据二分法写的,其时间复杂度为n*log(n) 功能:
2018-01-28 14:33:59
122397
20
原创 常用排序算法总结(一)
目录冒泡排序 鸡尾酒排序 选择排序插入排序二分插入排序 希尔排序 归并排序堆排序快速排序 我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排
2018-01-28 14:17:12
312
原创 C语言字符串输入输出
字符串的输出在C语言中,输出字符串的函数有两个:puts():直接输出字符串,并且只能输出字符串。printf():通过格式控制符 %s 输出字符串。除了字符串,printf() 还能输出其他类型的数据。这两个函数前面已经讲过了,这里不妨再演示一下,请看下面的代码:#include int main(){ int i; char str[] = "htt
2018-01-26 21:30:39
24174
6
原创 C语言字符串处理函数
C语言提供了丰富的字符串处理函数,例如字符串的输入、输出、合并、修改、比较、转换、复制、搜索等,使用这些现成的函数可大大减轻编程的负担。用于输入输出的字符串函数,例如printf、puts、scanf、gets等,使用时应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h。字符串长度函数strlenstrlen 是 string length 的缩写,用
2018-01-26 21:27:57
418
原创 C语言字符数组和字符串
用来存放字符的数组称为字符数组,例如:char a[10]; //一维字符数组char b[5][10]; //二维字符数组char c[20]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a','m'}; // 给部分数组元素赋值char d[]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm' }; /
2018-01-26 21:26:32
532
原创 数组的查询
在实际开发中,经常需要查询数组中的元素。例如,学校为每位同学分配了一个唯一的编号,现在有一个数组,保存了实验班所有同学的编号信息,如果有家长想知道他的孩子是否进入了实验班,只要提供孩子的编号就可以,如果编号和数组中的某个元素相等,就进入了实验班,否则就没进入。不幸的是,C语言标准库没有提供与数组查询相关的函数,所以我们只能自己编写代码。对无序数组的查询所谓无序数组,就是数组元素
2018-01-26 21:25:10
3194
原创 二维数组
上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据
2018-01-26 21:23:29
23415
原创 一维数组
#include #include int main(){ int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=205, c3=1, c4=6666; int d1=34, d2=0, d3=23, d4=23006783; printf("%-
2018-01-26 21:19:20
692
原创 c语言 循环队列的创建
queue.h头文件#ifndef __QUEUE_H_#define __QUEUE_H_#include#include#define maxsize 5typedef struct Data { int a; int b; int c;} Data;typedef struct queue { Data data[maxsize];
2018-01-26 15:47:58
996
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅