四轴飞行器
蒙面狸
这个作者很懒,什么都没留下…
展开
-
互补滤波
最近在研究小四轴的飞行,姿态检测主要用到的传感器是MPU6050。从MPU6050读出来的加速度和角速度数据最后要转成姿态,可以转换成欧拉角(偏航角、俯仰角和滚转角)或四元数表示,为了减少计算量(欧拉角涉及正弦运算,运算量相对较大),方便在STM32主控上实现,可以转换成四元数表示。那么问题来了,四元数姿态融合算法哪家强?这里介绍圆点博士小四轴飞控开源代码关于四元数姿态融合的算法以及代码实现,不能...原创 2017-09-14 16:16:33 · 1437 阅读 · 0 评论 -
无人机地面站VS版
界面如图所示,源代码如下原创 2019-09-03 16:16:35 · 1889 阅读 · 5 评论 -
ubuntu18.04-LTS搭建PX4编译环境
安装python、git、qtsudo apt-get install python-argparse git-core wget zip \ python-empy qtcreator cmake build-essential genromfs -y安装仿真软件和需要的库文件,注意体验下面两句的区别(一句代码后有 -y ,一句没有) 1. sudo apt-get instal...原创 2019-05-30 10:46:49 · 4352 阅读 · 0 评论 -
px4编译
如果下载速度特别慢,可以使用手机的4G网络位置确定mkdir -p ~/srccd ~/src开始下载指定版本的px4,在这里是v1.7.0版本git clone -b v1.7.0 https://github.com/PX4/Firmware.git 添加子模块:cd Firmwaregit submodule initgit submodule update --ini...原创 2019-05-20 14:43:20 · 1983 阅读 · 1 评论 -
STM32学习笔记——SystemInit()函数
时钟频率 在stm32固件库3.0中对时钟频率的选择进行了大大的简化,原先的一大堆操作都在后台进行。系统给出的函数为SystemInit()。但在调用前还需要进行一些宏定义的设置,具体的设置在system_stm32f10x.c文件中。 文件开头就有一个这样的定义: //#define SYSCLK_FREQ_HSE HSE_Value //#define SYSCLK_FREQ原创 2017-11-27 14:47:42 · 1582 阅读 · 0 评论 -
四轴思路(持续更新)
遥控器:发送数据 MPU6050:加速度做一维卡尔曼滤波,角速度做一介低通滤波。 然后四元数姿态解算。 接着串级PID控制平衡,外环角度环,内环角速度环。 高度控制:高度和速度进行互补滤波(气压计得到的是高度,速度通过Z轴加速度积分获得,而加速度通过陀螺仪的Z轴得到。) 最后电机输出。四元数姿态解算公式: 第一行为载体坐标下X方向单位化向量,第一列为x向量,第二列为y向量,第三列为z原创 2017-10-12 02:54:32 · 603 阅读 · 0 评论 -
MPU6050的数据获取、分析与处理
一、基本思路 1、初始化I2C 2、将数据写入MPU6050 3、读出数据 二、 MPU6050的数据格式 我们感兴趣的数据位于0x3B到0x48这14个字节的寄存器中。这些数据会被动态更新,更新频率最高可达1000HZ。下面列出相关寄存器的地址,数据的名称。注意,每个数据都是2个字节。0x3B,加速度计的X轴分量ACC_X 0x3D,加速度计的Y轴分量ACC_Y 0x3F,加速度计的原创 2017-09-26 02:48:35 · 3539 阅读 · 0 评论 -
I2C初始化
一、管脚初始化 由于STM32的硬件初始化比较复杂,这里我们采用软件初始化,选用端口PB6,PB7,以匿名的I2C初始化程序为例/***************I2C GPIO定义******************/#define ANO_GPIO_I2C GPIOB#define I2C_Pin_SCL GPIO_Pin_6#define I2C_Pin_SDA G原创 2017-09-26 00:30:17 · 6559 阅读 · 0 评论 -
低通滤波(一阶)
1. 一阶滤波算法的原理 一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。 一阶低通滤波的算法公式为: Y(n)=(1-α) * Y(n-1) + αX(n) 式中:α=滤波系数;X(n)=本次采样值;Y(n-1)=上次滤波输出值;Y(n)=本次滤波输出值。 一阶低通滤波法采用本次采样原创 2017-09-14 16:59:24 · 3948 阅读 · 2 评论 -
卡尔曼滤波代码整理(一维)
struct _1_ekf_filter{ float LastP; float Now_P; float out; float Kg; float Q; float R; };void kalman_1(struct _1_ekf_filter *ekf,float input) { ekf->Now_P = ekf->La原创 2017-09-14 16:32:09 · 2523 阅读 · 0 评论 -
无人机地面站QT版
下载链接原创 2019-09-03 16:18:17 · 4073 阅读 · 8 评论