ruzhangbiztdl 发表于 2014-1-6 10:04:10

[分享作品]【2013年Atmel AVR英雄视频大赛】arduino自平衡机器人

实物展示




视频演示
http://v.youku.com/v_show/id_XNDcxMzY3MDA4.html

控制器:arduino uno
传感器:角加速度用BMA 180,角速度用ITG 3205,位移用电机12线正交编码器
算法:角度测量用卡尔曼滤波融合,控制用全状态反馈
动力:两个直流减速电机,电压12v 功率17w 速比64 速度120rpm。MC33886驱动。4s锂电池组。
无线通讯:3个XBEE无线模块分别在小车、Wii手柄遥控模块、PC检测模块上。






程序代码
float kalmanCalculate(float newAngle, float newRate,int looptime)
{
newAngle=newAngle/10;
newRate=newRate/10;
float dt = float(looptime)/1000;
x_angle += dt * (newRate - x_bias);
P_00+=(- dt * (P_10 + P_01) + Q_angle * dt);
P_01+=( - dt * P_11);
P_10+=(- dt * P_11);
P_11+=(+ Q_gyro * dt);

y1 = newAngle - x_angle;         //测量值与预测值之差
S = P_00 + R_angle;               //预测误差与测量误差之和
K_0 = P_00 / S;                   //角度测量的卡尔曼增益
K_1 = P_10 / S;                   //

x_angle+=K_0 * y1;
x_bias +=K_1 * y1;
P_00-=K_0 * P_00;               //角度的预测误差更新
P_01-=K_0 * P_01;
P_10-=K_1 * P_00;
P_11-=K_1 * P_01;
return x_angle*10;
}


xm8888 发表于 2015-5-13 12:41:40

程序代码不完全吧???????????:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol

xm8888 发表于 2015-5-13 12:47:34

在这里可以有多少积分!!!!!!!!!!!!!!

疯狂老衲 发表于 2016-5-14 23:25:37

请问楼主马达测速是用什么实现的?
页: [1]
查看完整版本: [分享作品]【2013年Atmel AVR英雄视频大赛】arduino自平衡机器人