
Drone
WELLSTONE_CHENG
技术+管理+理财
展开
-
CrazePony与计算机视觉
大家好,我是CrazePony的视觉攻城狮,Ziv.Lin,我擅长的部分是计算机视觉和嵌入式编程,非常荣幸地能够加入CrazePony团队~众所周知,一个飞行器想要做到悬停的话,必须引入一个位置环进行反馈,也就是说需要获知无人机的空间绝对坐标,目前的无人机普遍采用GPS(Global Position System)以获得其位置,但是GPS信号存在容易受干扰(甚至是欺骗,伊朗截获美国的RQ17转载 2017-06-05 23:01:17 · 1169 阅读 · 0 评论 -
四轴飞行器姿态算法
最近四周飞行器比较火,自己也买了一个开源的四周飞行器来玩,花了点时间来学习飞行器的空中姿态控制原理。觉得这小东西不简单,并且原理很有趣, 最有趣的部分就是空中姿态的解算。也是无人机控制部分的精华之一。姿态解算姿态解算(attitude algorithm),是指把陀螺仪,加速度计, 罗盘等的数据融合在一起,得出飞行器的空中姿态,飞行器从陀螺仪器的三轴角速度通过四元数法得到俯仰,航偏转载 2017-06-07 14:36:39 · 5549 阅读 · 1 评论 -
PID源码讲解
有人让我解释一下我程序里面PID计算的过程,这里就插一节吧,就是介绍下我的PID,当然,还很不完善,后期肯定还要经过很多改动才行,这里就先介绍下现在的"初级版"吧.void PID_CAL(void) PID计算函数{ static float thr=0,rool=0,pitch=0,yaw=0; 控制量转载 2017-06-06 13:19:46 · 1978 阅读 · 0 评论 -
硬件姿态解算
四轴的姿态解算无疑是最繁琐的步骤没有之一,但是自从MPU6050出现了硬件DMP的时候,大妈都能完成姿态解算了!CrazePony使用了MPU6050自带的硬件四元数单元,可以通过IIC直接读取四元数,省却了软件解算繁琐的算法步骤,非常方便易用。这里还是要首先介绍下四元数,四元数要说的实在太多,因为它的优点很多,利用起来很方便,但是理解起来就有点蹩脚了。我们百度四元数,一开始看到的就是四元转载 2017-06-02 21:41:29 · 2918 阅读 · 0 评论 -
软件姿态解算
使用MPU6050硬件DMP解算姿态是非常简单的,下面介绍由三轴陀螺仪和加速度计的值来使用四元数软件解算姿态的方法。我们先来看看如何用欧拉角描述一次平面旋转(坐标变换):设坐标系绕旋转α角后得到坐标系,在空间中有一个矢量在坐标系中的投影为,在内的投影为由于旋转绕进行,所以Z坐标未变,即有。转换成矩阵形式表示为:整理一下:所以从旋转到可以写成上面仅仅是绕一根轴转载 2017-06-05 22:27:50 · 2534 阅读 · 0 评论 -
四轴PID控制算法
四轴控制原理四轴飞行器的螺旋桨与空气发生相对运动,产生了向上的升力,当升力大于四轴的重力时四轴就可以起飞了。四轴飞行器飞行过程中如何保持水平呢?我们先假设一种理想状况,四个电机的转速是完全相同的,是不是我们控制四轴飞行器的四个电机保持同样的转速,当转速超过一个临界点时(升力刚好抵消重力)四轴就可以平稳的飞起来了呢?答案是否定的,由于四个电机转向相同,四轴会发生旋转。我们控制四轴电机转载 2017-06-05 22:38:18 · 4539 阅读 · 1 评论 -
四轴飞行器的空气动力原理
四旋翼飞行器结构以及x模式和+模式四轴飞行器四个电机呈十字形排列, 驱动四片桨旋转产生向上的推力。四个电机轴距几何中心的距离相等, 当对角两个轴产生的升力相同时能够保证力矩的平衡, 四轴不会向任何一个方向倾转; 而四个电机一对正转,一对反转的方式使得绕竖直轴方向旋转的反扭矩平衡, 保证了四轴航向的稳定。与传统的直升机相比,四旋翼飞行器有下列优势:各个旋翼对机身所施加的反扭矩与旋翼的旋转方向转载 2017-06-05 22:55:48 · 8188 阅读 · 0 评论 -
自主悬停&高度融合
自主悬停是Crazepony玩家问得最多的问题,也是技术难度最高的问题。首先我们明确什么是自主悬停?下面是一位资深航模玩家对于自主悬停的解释。飞行器能够悬停在某个位置,在发生了偏离之后能够自动校正并且回到原来悬停的位置,并且能够在该位置保持足够长的时间,至少2分钟以上,那么我们认为该飞行器是能够自主悬停的。飞行器在空中是一个三维坐标(x,y,z)位置,涉及到两个维度的悬停。第一转载 2017-06-05 22:58:10 · 2346 阅读 · 0 评论 -
upadte四元数(1)-----一阶龙格库塔法
已知一四元数,对时间微分得(其中,): 令,则有: 由一阶龙格库塔法,其中,可得微分方程的解: ,进而可推导出: 可得出更新四元数的程序代码为: q0=q0+(-wx*q1-wy*q2-wz*q3)*halt_T; q1=q1+(wx*q0+wz*q2-wy*q3)*halt_T; q2=q2+(wy*q0-wz*q1+wx*q3)*halt_T; q3=q3+(wz*q0+原创 2017-06-12 00:42:02 · 10217 阅读 · 3 评论