zhaochuanyuAVR 发表于 2013-5-26 14:54:20

国外Bicraze开源微型四轴全部资料

本帖最后由 zhaochuanyuAVR 于 2013-5-26 16:52 编辑

    刚刚搜到的,希望能给大家提供个参考!以下是官网网址:
http://www.bitcraze.se/2013/02/pre-order-has-started/


http://v.youku.com/v_show/id_XNTEwODM4MzEy.html

qwe2231695 发表于 2013-7-1 02:26:25

最核心的,姿态融合,代码如下


#include "stm32f10x_conf.h"
#include <math.h>

#include "sensfusion6.h"
#include "imu.h"

//#define MADWICK_QUATERNION_IMU

#ifdef MADWICK_QUATERNION_IMU
#define BETA_DEF   0.01f    // 2 * proportional gain
#else // MAHONY_QUATERNION_IMU
    #define TWO_KP_DEF(2.0f * 0.8f) // 2 * proportional gain
    #define TWO_KI_DEF(2.0f * 0.001f) // 2 * integral gain
#endif

#ifdef MADWICK_QUATERNION_IMU
float beta = BETA_DEF;   // 2 * proportional gain (Kp)
#else // MAHONY_QUATERNION_IMU
float twoKp = TWO_KP_DEF;    // 2 * proportional gain (Kp)
float twoKi = TWO_KI_DEF;    // 2 * integral gain (Ki)
float integralFBx = 0.0f;
float integralFBy = 0.0f;
float integralFBz = 0.0f;// integral error terms scaled by Ki
#endif

float q0 = 1.0f;
float q1 = 0.0f;
float q2 = 0.0f;
float q3 = 0.0f;// quaternion of sensor frame relative to auxiliary frame

static bool isInit;

// TODO: Make math util file
static float invSqrt(float x);

void sensfusion6Init()
{
if(isInit)
    return;

isInit = TRUE;
}

bool sensfusion6Test(void)
{
return isInit;
}


#ifdef MADWICK_QUATERNION_IMU
// Implementation of Madgwick's IMU and AHRS algorithms.
// See: http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms
//
// Date   Author          Notes
// 29/09/2011 SOH Madgwick    Initial release
// 02/10/2011 SOH MadgwickOptimised for reduced CPU load
void sensfusion6UpdateQ(float gx, float gy, float gz, float ax, float ay, float az, float dt)
{
float recipNorm;
float s0, s1, s2, s3;
float qDot1, qDot2, qDot3, qDot4;
float _2q0, _2q1, _2q2, _2q3, _4q0, _4q1, _4q2 ,_8q1, _8q2, q0q0, q1q1, q2q2, q3q3;

// Rate of change of quaternion from gyroscope
qDot1 = 0.5f * (-q1 * gx - q2 * gy - q3 * gz);
qDot2 = 0.5f * (q0 * gx + q2 * gz - q3 * gy);
qDot3 = 0.5f * (q0 * gy - q1 * gz + q3 * gx);
qDot4 = 0.5f * (q0 * gz + q1 * gy - q2 * gx);

// Compute feedback only if accelerometer measurement valid (avoids NaN in accelerometer normalisation)
if(!((ax == 0.0f) && (ay == 0.0f) && (az == 0.0f)))
{
    // Normalise accelerometer measurement
    recipNorm = invSqrt(ax * ax + ay * ay + az * az);
    ax *= recipNorm;
    ay *= recipNorm;
    az *= recipNorm;

    // Auxiliary variables to avoid repeated arithmetic
    _2q0 = 2.0f * q0;
    _2q1 = 2.0f * q1;
    _2q2 = 2.0f * q2;
    _2q3 = 2.0f * q3;
    _4q0 = 4.0f * q0;
    _4q1 = 4.0f * q1;
    _4q2 = 4.0f * q2;
    _8q1 = 8.0f * q1;
    _8q2 = 8.0f * q2;
    q0q0 = q0 * q0;
    q1q1 = q1 * q1;
    q2q2 = q2 * q2;
    q3q3 = q3 * q3;

    // Gradient decent algorithm corrective step
    s0 = _4q0 * q2q2 + _2q2 * ax + _4q0 * q1q1 - _2q1 * ay;
    s1 = _4q1 * q3q3 - _2q3 * ax + 4.0f * q0q0 * q1 - _2q0 * ay - _4q1 + _8q1 * q1q1 + _8q1 * q2q2 + _4q1 * az;
    s2 = 4.0f * q0q0 * q2 + _2q0 * ax + _4q2 * q3q3 - _2q3 * ay - _4q2 + _8q2 * q1q1 + _8q2 * q2q2 + _4q2 * az;
    s3 = 4.0f * q1q1 * q3 - _2q1 * ax + 4.0f * q2q2 * q3 - _2q2 * ay;
    recipNorm = invSqrt(s0 * s0 + s1 * s1 + s2 * s2 + s3 * s3); // normalise step magnitude
    s0 *= recipNorm;
    s1 *= recipNorm;
    s2 *= recipNorm;
    s3 *= recipNorm;

    // Apply feedback step
    qDot1 -= beta * s0;
    qDot2 -= beta * s1;
    qDot3 -= beta * s2;
    qDot4 -= beta * s3;
}

// Integrate rate of change of quaternion to yield quaternion
q0 += qDot1 * dt;
q1 += qDot2 * dt;
q2 += qDot3 * dt;
q3 += qDot4 * dt;

// Normalise quaternion
recipNorm = invSqrt(q0*q0 + q1*q1 + q2*q2 + q3*q3);
q0 *= recipNorm;
q1 *= recipNorm;
q2 *= recipNorm;
q3 *= recipNorm;
}
#else // MAHONY_QUATERNION_IMU
// Madgwick's implementation of Mayhony's AHRS algorithm.
// See: http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms
//
// Date   Author      Notes
// 29/09/2011 SOH Madgwick    Initial release
// 02/10/2011 SOH MadgwickOptimised for reduced CPU load
void sensfusion6UpdateQ(float gx, float gy, float gz, float ax, float ay, float az, float dt)
{
float recipNorm;
float halfvx, halfvy, halfvz;
float halfex, halfey, halfez;
float qa, qb, qc;

gx = gx * M_PI / 180;
gy = gy * M_PI / 180;
gz = gz * M_PI / 180;

// Compute feedback only if accelerometer measurement valid (avoids NaN in accelerometer normalisation)
if(!((ax == 0.0f) && (ay == 0.0f) && (az == 0.0f)))
{
    // Normalise accelerometer measurement
    recipNorm = invSqrt(ax * ax + ay * ay + az * az);
    ax *= recipNorm;
    ay *= recipNorm;
    az *= recipNorm;

    // Estimated direction of gravity and vector perpendicular to magnetic flux
    halfvx = q1 * q3 - q0 * q2;
    halfvy = q0 * q1 + q2 * q3;
    halfvz = q0 * q0 - 0.5f + q3 * q3;

    // Error is sum of cross product between estimated and measured direction of gravity
    halfex = (ay * halfvz - az * halfvy);
    halfey = (az * halfvx - ax * halfvz);
    halfez = (ax * halfvy - ay * halfvx);

    // Compute and apply integral feedback if enabled
    if(twoKi > 0.0f)
    {
      integralFBx += twoKi * halfex * dt;// integral error scaled by Ki
      integralFBy += twoKi * halfey * dt;
      integralFBz += twoKi * halfez * dt;
      gx += integralFBx;// apply integral feedback
      gy += integralFBy;
      gz += integralFBz;
    }
    else
    {
      integralFBx = 0.0f; // prevent integral windup
      integralFBy = 0.0f;
      integralFBz = 0.0f;
    }

    // Apply proportional feedback
    gx += twoKp * halfex;
    gy += twoKp * halfey;
    gz += twoKp * halfez;
}

// Integrate rate of change of quaternion
gx *= (0.5f * dt);   // pre-multiply common factors
gy *= (0.5f * dt);
gz *= (0.5f * dt);
qa = q0;
qb = q1;
qc = q2;
q0 += (-qb * gx - qc * gy - q3 * gz);
q1 += (qa * gx + qc * gz - q3 * gy);
q2 += (qa * gy - qb * gz + q3 * gx);
q3 += (qa * gz + qb * gy - qc * gx);

// Normalise quaternion
recipNorm = invSqrt(q0 * q0 + q1 * q1 + q2 * q2 + q3 * q3);
q0 *= recipNorm;
q1 *= recipNorm;
q2 *= recipNorm;
q3 *= recipNorm;
}
#endif

void sensfusion6GetEulerRPY(float* roll, float* pitch, float* yaw)
{
float gx, gy, gz; // estimated gravity direction

gx = 2 * (q1*q3 - q0*q2);
gy = 2 * (q0*q1 + q2*q3);
gz = q0*q0 - q1*q1 - q2*q2 + q3*q3;

*yaw = atan2(2*q1*q2 - 2*q0*q3, 2*q0*q0 + 2*q1*q1 - 1) * 180 / M_PI;
*pitch = atan(gx / sqrt(gy*gy + gz*gz)) * 180 / M_PI;
*roll = atan(gy / sqrt(gx*gx + gz*gz)) * 180 / M_PI;
}

//---------------------------------------------------------------------------------------------------
// Fast inverse square-root
// See: http://en.wikipedia.org/wiki/Fast_inverse_square_root
float invSqrt(float x)
{
float halfx = 0.5f * x;
float y = x;
long i = *(long*)&y;
i = 0x5f3759df - (i>>1);
y = *(float*)&i;
y = y * (1.5f - (halfx * y * y));
return y;
}

xjf_hz 发表于 2013-8-7 09:58:53

pcb图片,四层最后检查后做板子

mage99 发表于 2013-5-26 15:04:00

这个不错~

wpy 发表于 2013-5-26 16:08:04

飞得好灵活,帅啊

godlike438 发表于 2013-5-26 16:19:32

本帖最后由 godlike438 于 2013-5-26 16:23 编辑

再帮你传个东西吧                                                                                    

zhaochuanyuAVR 发表于 2013-5-26 16:39:07

godlike438 发表于 2013-5-26 16:19 static/image/common/back.gif
再帮你传个东西吧                                                                                     ...

都是无私的兄弟啊!

zhaochuanyuAVR 发表于 2013-5-26 16:39:38

godlike438 发表于 2013-5-26 16:19 static/image/common/back.gif
再帮你传个东西吧                                                                                     ...

都是无私的兄弟啊!

lxl_lw 发表于 2013-5-26 17:17:37

看了,就是开发环境太复杂了。要是出来个ARM-MDK开发环境的程序就好了。

windancerhxw 发表于 2013-5-26 22:33:07

{:lol:}-00这个‘是’好{:victory:}{:victory:}

WUST_LJS 发表于 2013-5-26 22:36:02

感谢分享

haoyurenzhu 发表于 2013-5-26 23:53:22

这个必须顶,,不过貌似以前也有人共享了这个

seeyou2013 发表于 2013-5-27 00:02:22

niuren   bangding a

mtjjjjj 发表于 2013-5-27 00:24:09

很不错呀!顶个

Gost 发表于 2013-5-27 01:00:18

留名,明天电脑看

z13900139000 发表于 2013-5-27 08:30:39

睇下能用上不~~

billhsu 发表于 2013-5-28 09:59:34

他们这个没有用IDE,直接用Linux的gcc编译的么?

haoyurenzhu 发表于 2013-5-28 10:06:08

我试着装了stm32 的编译链,但是编译不通过 ,操

woshisangao 发表于 2013-5-28 10:15:01

实在厉害,顶起啊

ndt2000 发表于 2013-5-28 10:23:06

漂亮                  

billhsu 发表于 2013-5-28 10:23:09

这是他们的wiki: http://wiki.bitcraze.se/projects:crazyflie:index
代码编译环境:http://wiki.bitcraze.se/projects:crazyflie:devenv:index

365mcu 发表于 2013-5-28 10:45:39

学习了。。。

yat 发表于 2013-5-30 09:16:20

国外Bicraze开源微型四轴

haizaolan 发表于 2013-5-30 09:50:01

关注,标记

eric112 发表于 2013-5-30 10:05:47

不错,顶一下

alayi 发表于 2013-5-30 10:44:58

好东西谢了

Elec_Ramble 发表于 2013-5-30 12:40:26

Mark…
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端

venilunar 发表于 2013-5-30 12:52:56

学习了,标记一下,改天下载学习

rantingting 发表于 2013-5-30 13:02:01

好东西好东西,lz无私

flotox 发表于 2013-5-30 13:16:41

非常猛

lxl_lw 发表于 2013-5-30 18:51:26

话说,这个才是迷你四轴的鼻祖!{:3_48:}

Rapido 发表于 2013-5-30 18:56:21

{:lol:}不错,谁赶紧山寨一个

lucky_jeck 发表于 2013-5-30 19:01:54

{:titter:}
这么好的资料,得赞一个。

anning 发表于 2013-5-30 19:02:36

真心牛啊,这帮北欧老外活的真是精彩!

rantingting 发表于 2013-5-30 21:11:33

我靠,看了视频才知道,这也太牛逼了吧

ITOP 发表于 2013-5-30 22:35:49

GOOD{:lol:}{:lol:}

灵魂重新 发表于 2013-5-31 09:46:02

{:lol:}看看学习了

john_8 发表于 2013-5-31 09:51:58

很漂亮,不错,

sxjclike 发表于 2013-6-7 02:18:54

本帖最后由 sxjclike 于 2013-6-7 02:55 编辑

我也帮楼主补些资料


玩家对四层板的二层化改造

http://217.7.135.92/die-proleten/gpEasy/data/_uploaded/image/Crazyflie/Kopter-1.png

http://217.7.135.92/die-proleten/gpEasy/data/_uploaded/image/Crazyflie/Platinen-2.png

fxw7720268 发表于 2013-6-7 08:38:30

不错!!!很好,真漂亮!

pp786702237 发表于 2013-6-7 09:47:16

Mark……

yilinwang 发表于 2013-6-11 18:30:04

牛啊,看到又兴奋了,坚定了DIY四轴的激情

1125526801 发表于 2013-6-25 22:30:08

我见过的最牛B微型四轴!

e315 发表于 2013-6-25 22:36:28

扇叶的安装方式值得学习。

bygreencn 发表于 2013-6-29 15:35:33

原理图PCB的下载连接在哪里找的,多谢给个链接

梦之缘工作坊 发表于 2013-6-30 11:26:30

也分享一个牛逼的,红遍全球的的炫酷飞行器 v.youku.com/v_show/id_XNTc0MTk0MzI4.htm

chasingw 发表于 2013-6-30 14:27:18

飞的真帅

farmerzhangdl 发表于 2013-6-30 18:48:28

这个NB,mark留用

cool.zqj@qq.com 发表于 2013-7-1 01:18:41

我噻 很酷啊

czhnja 发表于 2013-7-1 02:27:22

学习学习暑假开搞。

sz_works 发表于 2013-7-2 10:51:19

就是一个RTOS+四元数姿态融合

hugecooper 发表于 2013-7-2 11:56:45

非常好,改天下载好好学学~

syflash 发表于 2013-7-2 11:58:32

有意思~~~~

皮爱了西 发表于 2013-7-2 12:48:20

rantingting 发表于 2013-5-30 21:11 static/image/common/back.gif
我靠,看了视频才知道,这也太牛逼了吧

居然遇到熟人了。O(∩_∩)O~

rantingting 发表于 2013-7-2 13:01:28

皮爱了西 发表于 2013-7-2 12:48 static/image/common/back.gif
居然遇到熟人了。O(∩_∩)O~

who?……………………

皮爱了西 发表于 2013-7-2 13:43:57

rantingting 发表于 2013-7-2 13:01 static/image/common/back.gif
who?……………………

极客工坊里混的,O(∩_∩)O~

rantingting 发表于 2013-7-2 13:47:46

皮爱了西 发表于 2013-7-2 13:43 static/image/common/back.gif
极客工坊里混的,O(∩_∩)O~

还以为你认识我呢……极客我逛得少点

zhenji512 发表于 2013-7-6 21:17:40

好东西,谢谢分享

寄辞1314 发表于 2013-7-6 22:36:57

赞赞赞 暑假搞飞行器去

stely 发表于 2013-7-6 22:55:58

很牛的四轴,学习下算法。

tp24656 发表于 2013-7-9 16:54:07

好东西,要好好学习了

zzz123456 发表于 2013-7-9 21:37:32

记号,收藏

mmy168 发表于 2013-7-19 12:20:16

这鸡鸡做得顶漂亮!顶一个!

neozoic 发表于 2013-7-24 14:58:26

微四轴,好诱人{:loveliness:}

leexy 发表于 2013-7-24 15:07:25

很牛的四轴飞行器啊

随风允诺 发表于 2013-8-1 20:01:38

国外人就是牛,好在开源。

plc_avr 发表于 2013-8-1 22:32:29

晒一个我做的最新版本的微型四轴,欢迎砸砖!
http://v.youku.com/v_show/id_XNTg5ODM0ODE2.html

DIY-PCB 发表于 2013-8-2 20:16:32

bygreencn 发表于 2013-6-29 15:35 static/image/common/back.gif
原理图PCB的下载连接在哪里找的,多谢给个链接

同求啊   

颠覆理论 发表于 2013-8-3 11:06:26

MARK一下。。。。

sxjclike 发表于 2013-8-5 12:03:18

http://www.bitcraze.se/wp-content/uploads/2013/07/Crazyflie-kicad-snapshot.png

zhaochuanyuAVR 发表于 2013-8-6 15:44:48

sxjclike 发表于 2013-8-5 12:03 static/image/common/back.gif


你厉害!都搞到PCB了?

DIY-PCB 发表于 2013-8-6 19:50:55

zhaochuanyuAVR 发表于 2013-8-6 15:44 static/image/common/back.gif
你厉害!都搞到PCB了?

官网上截的图而已

xjf_hz 发表于 2013-8-7 09:28:59

搞到版图了准备做板

ttsky138 发表于 2013-8-7 13:08:04

xjf_hz 发表于 2013-8-7 09:58 static/image/common/back.gif
pcb图片,四层最后检查后做板子

没有PCB文件么

xjf_hz 发表于 2013-8-7 13:20:03

我拿到的图(AD格式的)是网上买的,据说是原版。我在核对一下图是否正确。过几天做样板。可惜amo这不能做四层板。{:cry:}{:cry:}

gbhgbh 发表于 2013-8-9 12:18:39

{:victory:}{:victory:}{:victory:}

jknew2008 发表于 2013-8-9 13:57:33

mark. 收藏

rye471 发表于 2013-8-9 17:46:29

谢谢楼主分享,非常棒!

小乖 发表于 2013-8-9 20:45:05

楼主,资料不会用{:mad:}

DIY-PCB 发表于 2013-8-10 19:53:09

xjf_hz 发表于 2013-8-7 13:20 static/image/common/back.gif
我拿到的图(AD格式的)是网上买的,据说是原版。我在核对一下图是否正确。过几天做样板。可惜amo这不能做 ...

在哪里买的多少大洋,可否分享下啊

seazhui 发表于 2013-8-11 13:29:46

我想说.....那个电池是不是鼓起来了....

xiefy21 发表于 2013-8-12 21:45:52

mark……
顶一个…

tedeum 发表于 2013-8-12 21:59:32

倒是很灵活 稳吗?

xjf_hz 发表于 2013-8-23 12:54:52

PCB做好了四层,准备焊接调试,上图。

xjf_hz 发表于 2013-8-23 12:56:54

桌面太脏了对不起观众了。下次拍照片前先擦干净。

xjf_hz 发表于 2013-8-23 13:00:27

另一块遥控板还在做,等好了在上图。

豳风sxxk 发表于 2013-8-24 16:08:11

很不错,有空也要搞一个

actshuishan 发表于 2013-8-24 17:41:00

多谢楼主

richards 发表于 2013-9-29 12:09:50

持续关注中

icydust1 发表于 2013-9-29 16:15:12

求板图与原理图!

dongfo 发表于 2013-9-29 16:47:19

这个很爽啊,一定要抽时间做个玩玩

金牛AKI 发表于 2013-9-29 16:49:10

感觉这些东西全都逆天了哈哈

dongfo 发表于 2013-9-29 16:51:57

要是mdk或者IAR的多好啊

SHIYOULAN 发表于 2013-10-2 10:03:03

帅      谢谢奉献

陈敏锐 发表于 2013-10-2 14:35:03

前两天看见这个视频,现在楼主提供的资料更让我疯狂啊

陈敏锐 发表于 2013-10-2 14:45:37

xjf_hz 发表于 2013-8-23 12:54 static/image/common/back.gif
PCB做好了四层,准备焊接调试,上图。

哥们,这个打板多少钱?四层板

陈敏锐 发表于 2013-10-2 14:50:05

plc_avr 发表于 2013-8-1 22:32 static/image/common/back.gif
晒一个我做的最新版本的微型四轴,欢迎砸砖!

哥们,这个群满了啊,

duozai 发表于 2013-10-2 21:52:52

收藏了 谢谢楼主

Microcraft 发表于 2013-10-4 17:00:29

四轴的声音是真好听。不过这个好mini

mooreg 发表于 2013-10-21 16:28:02

这个不知道 稳定性怎么样。就一直看着他在动
页: [1] 2 3
查看完整版本: 国外Bicraze开源微型四轴全部资料