智能车制作

标题: 关于小车站立 [打印本页]

作者: qinlu123    时间: 2012-2-29 16:42
标题: 关于小车站立
前天小车终于站了起来,经过两天的调参数和程序修改小车终于站稳了。作为一个大二的新手我非常的兴奋,几点心得与大家分享一下,希望大家共同进步。
1,陀螺仪与加速度计的安放位置至关重要,以前我的车站不起来多半因为这个原因,现在还是用的以前的程序。以前我安在车的最上方,前天做硬件的同学建议安在质心位置,结果站起来了。
2,卡尔曼问题,enc-03的响应频率为50HZ,mma7260Z轴为150HZ,我认为这两个数据可以参考但没必要钻死牛角尖,灵活运用。还有卡尔曼的滞后问题,我的解决方案是提高调用卡尔曼程序的中断频率。在者关于卡尔曼数据跟随enc-03还是mma7260的问题,之前高手们都说要跟随enc-03,但我照做了以后发现静止时输出稳定,但一动还不如不滤呢,跟随mma7260后就好多了,当然程序不一样跟随也不一样,时情况而定。
3,控制电机方面,我用的是增量式PID按照官方的方案对角度比例,对角速度微分。

作者: 神器    时间: 2012-2-29 17:05
LZ的陀螺仪偏移量一直很稳吗??
作者: wo520    时间: 2012-2-29 17:21
楼主不介意的话,可以拍张你的车模照片吗?我想知道你的机械结构怎么搭才容易把传感器,放在重心!!
作者: 哈醒123456    时间: 2012-2-29 17:21
淡定
作者: qinlu123    时间: 2012-2-29 17:23
神器 发表于 2012-2-29 17:05
LZ的陀螺仪偏移量一直很稳吗??

没有细测
作者: turf456    时间: 2012-2-29 17:23

作者: qinlu123    时间: 2012-2-29 17:26
turf456 发表于 2012-2-29 17:23

凤姐,终于看见你啦
作者: qinlu123    时间: 2012-2-29 17:32
wo520 发表于 2012-2-29 17:21
楼主不介意的话,可以拍张你的车模照片吗?我想知道你的机械结构怎么搭才容易把传感器,放在重心!!

[attach]18863[/attach][attach]18864[/attach]电路板用的是去年学哥的就俩电机驱动,我们的还没做出来



作者: wo520    时间: 2012-2-29 17:40
qinlu123 发表于 2012-2-29 17:32
电路板用的是去年学哥的就俩电机驱动,我们的还没做出来

你那个陀螺仪和加速度计是二合一模块吗?怎么好像还放在了背面电池的那个地方??
作者: wuqt    时间: 2012-2-29 17:49
,大二就这么牛。。。惭愧了。。。
作者: qinlu123    时间: 2012-2-29 19:24
wo520 发表于 2012-2-29 17:40
你那个陀螺仪和加速度计是二合一模块吗?怎么好像还放在了背面电池的那个地方??

现在用的是买的成品,过一段时间板子做好我们自己做,唯一让我不能接受的是花大价钱买了一个mma7260还不是原装的,怎么能停产了呢,板子都做了换芯片也白搭啦
作者: qinlu123    时间: 2012-2-29 19:25
wuqt 发表于 2012-2-29 17:49
,大二就这么牛。。。惭愧了。。。

你头像上的帅哥,好像我初中的一同学
作者: liu1guo2qiang3    时间: 2012-2-29 22:03
恭喜了呀。我的还没弄,我准备周五再开始弄吧、到时候得请教咯、
作者: wscjun    时间: 2012-2-29 23:17
楼主你好  我想问一下  你们的小车 在没有加速度环的情况下 能直立多久啊   会不会一边加速 谢谢
作者: yssdsz    时间: 2012-3-1 09:32
标题: RE: 关于小车站立
qinlu123 发表于 2012-2-29 19:25
你头像上的帅哥,好像我初中的一同学

请问怎么实现跟踪加速度计啊?卡尔曼的输出不是那个angle 和gyrom么?你的意思是改程序?还有加快调用Kalman频率是说测一次加速度角度值,滤波调用n次?

作者: qinlu123    时间: 2012-3-1 11:02
yssdsz 发表于 2012-3-1 09:32
请问怎么实现跟踪加速度计啊?卡尔曼的输出不是那个angle 和gyrom么?你的意思是改程序?还有加快调用Kal ...

卡尔曼程序我看见过好几种,具体来说我也不知道了。
作者: cobra    时间: 2012-3-1 11:17
我是你队友
姬生强
作者: yssdsz    时间: 2012-3-1 11:55
标题: RE: 关于小车站立
qinlu123 发表于 2012-3-1 11:02
卡尔曼程序我看见过好几种,具体来说我也不知道了。

不是有一个参数是0.001,0.0015和0.001吗… 
作者: qinlu123    时间: 2012-3-1 15:55
yssdsz 发表于 2012-3-1 11:55
不是有一个参数是0.001,0.0015和0.001吗… 

基本上都是这个参数
作者: 慕名凤姐而来    时间: 2012-3-1 16:02
qinlu123 发表于 2012-3-1 11:02
卡尔曼程序我看见过好几种,具体来说我也不知道了。

柯南啊,可不可以把你滤波的模块和调的参数让我们参考参考啊?454070048@qq.com

作者: qinlu123    时间: 2012-3-1 16:11
慕名凤姐而来 发表于 2012-3-1 16:02
柯南啊,可不可以把你滤波的模块和调的参数让我们参考参考啊?454070048@qq.com

我之前发的帖子里有那个程序,是二硫化钾大神给我的
作者: 慕名凤姐而来    时间: 2012-3-1 16:24
qinlu123 发表于 2012-3-1 16:11
我之前发的帖子里有那个程序,是二硫化钾大神给我的

馊噶  程序我们倒有,就是参数调的太恶心 波形不是很好  滞后也不知道到底严重不严重,反正就是不能站立
作者: yssdsz    时间: 2012-3-1 17:11
yssdsz 发表于 2012-3-1 11:55
不是有一个参数是0.001,0.0015和0.001吗… 

我用的就是你发的过的那个类似的程序,调试的时候是用的角度值,而不是弧度值,P-angle到了50多才好一点。。。请问是怎么是角速度值跟随陀螺仪的值啊?

作者: 灰色头像1    时间: 2012-3-1 20:14
可以跑没?我在纠结中~~~~
作者: qinlu123    时间: 2012-3-1 20:16
灰色头像1 发表于 2012-3-1 20:14
可以跑没?我在纠结中~~~~

抗干扰差得很,离跑早着呢
作者: 灰色头像1    时间: 2012-3-1 20:20
你指的是直立不是很稳定?
作者: qinlu123    时间: 2012-3-2 13:14
灰色头像1 发表于 2012-3-1 20:20
你指的是直立不是很稳定?

对啊,哪能和官方比打他一巴掌都不倒
作者: jyh728    时间: 2012-3-2 14:21

作者: 灰色头像1    时间: 2012-3-2 15:35
qinlu123 发表于 2012-3-2 13:14
对啊,哪能和官方比打他一巴掌都不倒

你用的什么滤波?如果角度角速度融合不好很难立稳。

作者: qinlu123    时间: 2012-3-2 16:56
灰色头像1 发表于 2012-3-2 15:35
你用的什么滤波?如果角度角速度融合不好很难立稳。

卡尔曼
作者: 有-木-友    时间: 2012-3-2 18:52
学习~~~
作者: 灰色头像1    时间: 2012-3-3 10:05
qinlu123 发表于 2012-3-2 16:56
卡尔曼

那应该可以立稳的,可能参数没调好吧。

作者: qinlu123    时间: 2012-3-3 10:15
灰色头像1 发表于 2012-3-3 10:05
那应该可以立稳的,可能参数没调好吧。

你的站稳了吗
作者: yssdsz    时间: 2012-3-3 11:31
qinlu123 发表于 2012-3-2 16:56
卡尔曼


你用的是这段程序吗??



//加速度计和光电码盘融合求速度

#define FS 100

#define VAR_WA 1

#define VAR_WV 0.04

float T = FS/1;

float A[2][2] = {{1,-T},{0,1}};

float B[2] = {T,0};

float H[2] = {1,0};

float Q[2][2] = {{VAR_WA*T*T,0},{0,0}};

float R = VAR_WV;

float I[2][2] = {{1,0},{0,1}};

float x[2] = {0,0};

float p[2][2] = {{1,0},{0,1}};

float tmp_x[2];

float tmp_p[2][2];

float kg[2];

void kalman(float ai,float vi){

        tmp_x[0] = A[0][0]*x[0]+A[0][1]*x[1]+B[0]*ai;

        tmp_x[1] = A[1][0]*x[0]+A[1][1]*x[1]+B[1]*ai;

        tmp_p[0][0] = (A[0][0]*p[0][0]+A[0][1]*p[1][0])*A[0][0]+(A[0][0]*p[0][1]+A[0][1]*p[1][1])*A[0][1]+Q[0][0];

        tmp_p[0][1] = (A[0][0]*p[0][0]+A[0][1]*p[1][0])*A[1][0]+(A[0][0]*p[0][1]+A[0][1]*p[1][1])*A[1][1]+Q[0][1];

        tmp_p[1][0] = (A[1][0]*p[0][0]+A[1][1]*p[1][0])*A[0][0]+(A[1][0]*p[0][1]+A[1][1]*p[1][1])*A[0][1]+Q[1][0];

        tmp_p[1][1] = (A[1][0]*p[0][0]+A[1][1]*p[1][0])*A[1][0]+(A[1][0]*p[0][1]+A[1][1]*p[1][1])*A[1][1]+Q[1][1];

        kg[0] = (tmp_p[0][0]*H[0]+tmp_p[0][1]*H[1])/((H[0]*tmp_p[0][0]+H[1]*tmp_[1][0])*H[0]+(H[0]*tmp_p[0][1]+H[1]*tmp_[1][1])*H[1]+R);

        kg[1] = (tmp_p[1][0]*H[0]+tmp_p[1][1]*H[1])/((H[0]*tmp_p[0][0]+H[1]*tmp_[1][0])*H[0]+(H[0]*tmp_p[0][1]+H[1]*tmp_[1][1])*H[1]+R);

        x[0] = tmp_x[0]+kg[0]*(vi-H[0]*tmp_x[0]+H[1]*tmp_x[1]);

        x[1] = tmp_x[1]+kg[1]*(vi-H[0]*tmp_x[0]+H[1]*tmp_x[1]);

        p[0][0] = (I[0][0]-kg[0]*H[0])*tmp_p[0][0];

        p[0][1] = (I[0][1]-kg[0]*H[1])*tmp_p[0][1];

        p[1][0] = (I[1][0]-kg[1]*H[0])*tmp_p[1][0];

        p[1][1] = (I[1][1]-kg[1]*H[1])*tmp_p[1][1];

}

作者: erchowyo    时间: 2012-3-3 11:49

作者: erchowyo    时间: 2012-3-3 11:50

作者: yssdsz    时间: 2012-3-3 12:29
这个,对吧?


//*
//-------------------------------------------------------
//Kalman滤波,8MHz的处理时间约1.8ms;
//-------------------------------------------------------
float angle, angle_dot;   //外部需要引用的变量
//-------------------------------------------------------
float Q_angle=0.001, Q_gyro=0.003, R_angle=0.5, dt=0.006;
   //注意:dt的取值为kalman滤波器采样时间;
float P[2][2] = {
       { 1, 0 },
       { 0, 1 }
      };

float Pdot[4] ={0,0,0,0};
const char C_0 = 1;
float q_bias, angle_err, PCt_0, PCt_1, E, K_0, K_1, t_0, t_1;
//-------------------------------------------------------
void Kalman_Filter(float angle_m,float gyro_m)   //gyro_m:gyro_measure
{
angle+=(gyro_m-q_bias) * dt;//先验估计

Pdot[0]=Q_angle - P[0][1] - P[1][0];// Pk-' 先验估计误差协方差的微分
Pdot[1]=- P[1][1];
Pdot[2]=- P[1][1];
Pdot[3]=Q_gyro;

P[0][0] += Pdot[0] * dt;// Pk- 先验估计误差协方差微分的积分 = 先验估计误差协方差
P[0][1] += Pdot[1] * dt;
P[1][0] += Pdot[2] * dt;
P[1][1] += Pdot[3] * dt;


angle_err = angle_m - angle;//zk-先验估计


PCt_0 = C_0 * P[0][0];
PCt_1 = C_0 * P[1][0];

E = R_angle + C_0 * PCt_0;

K_0 = PCt_0 / E;//Kk
K_1 = PCt_1 / E;

t_0 = PCt_0;
t_1 = C_0 * P[0][1];
P[0][0] -= K_0 * t_0;//后验估计误差协方差
P[0][1] -= K_0 * t_1;
P[1][0] -= K_1 * t_0;
P[1][1] -= K_1 * t_1;


angle += K_0 * angle_err;//后验估计
q_bias += K_1 * angle_err;//后验估计
angle_dot = gyro_m-q_bias;//输出值(后验估计)的微分 = 角速度
}


作者: qinlu123    时间: 2012-3-3 12:39
yssdsz 发表于 2012-3-3 11:31
你用的是这段程序吗??

不是啊
作者: qinlu123    时间: 2012-3-3 12:40
yssdsz 发表于 2012-3-3 12:29
这个,对吧?

也不是
作者: yssdsz    时间: 2012-3-3 12:59
qinlu123 发表于 2012-3-3 12:40
也不是

这个??





/***************************************************************************/
/* kalman.c                                                                */
/* 1-D 卡尔曼滤波算法, 通过加速度计(倾角)和陀螺仪完成                    */
/* Author: Rich Chi Ooi                                                    */
/* Version: 1.0                                                            */
/* Date:30.05.2003                                                         */
/* 改编自 Trammel Hudson(hudson@rotomotion.com)                            */  
/* -------------------------------                                         */
/* 程序编译:                                                               */
/*      Linux                                                              */
/*      gcc68 -c  XXXXXX.c (to create object file)                         */
/*      gcc68 -o  XXXXXX.hex XXXXXX.o ppwa.o                               */
/* Upload data :               */
/* ul filename.txt                               */
/***************************************************************************/
/* 本版内容:                                                               */
/***************************************************************************/
/* This is a free software; you can redistribute it and/or modify          */
/* it under the terms of the GNU General Public License as published       */
/* by the Free Software Foundation; either version 2 of the License,       */
/* or (at your option) any later version.                                  */
/*                                                                         */
/* this code is distributed in the hope that it will be useful,            */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of          */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           */
/* GNU General Public License for more details.                            */
/*                                                                         */
/* You should have received a copy of the GNU General Public License       */
/* along with Autopilot; if not, write to the Free Software                */
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston,                   */
/* MA  02111-1307  USA                                                     */
/***************************************************************************/
#include <math.h>
#include "eyebot.h"
/*
* 陀螺仪采样周期20ms
* 更新频率不同的话可以改变
*/               
static const float dt = 0.02;   //陀螺仪采样周期
/*
* 协方差矩阵.每次更新决定传感器跟踪实际状态的好坏
*/
static float P[2][2] = {{ 1, 0 },   //协方差矩阵
                    { 0, 1 }};
/*
* 两个状态,角度和陀螺仪偏差.作为计算角度和偏差的副产品,我们可以得到无偏的角速率
* 以下是该模块对于作者的只读量
*/
float angle;
float q_bias;
float rate;      //3个无偏输出量

/*
* R为测量协方差noise.R=E[vvT]
* 这种情况下为1×1矩阵
* 0.1 rad jitter from the inclinometer.
* for a 1x1 matrix in this case v = 0.1
*/
static const float R_angle = 0.001 ;

/*
* Q是2×2过程协方差矩阵噪声.
* 表示对加速度计和陀螺仪的信任程度
*/
static const float Q_angle = 0.001;
static const float Q_gyro  = 0.0015;

/*
* 状态每次通过带有偏移量量的陀螺仪测量值进行更新。更新当前的角度和角速率
*
* 采集到的陀螺仪测量值应该转换为实际单位,但是不需要进行偏移补偿。滤波器会自动跟踪偏移量
*
*   A = [ 0 -1 ]
*       [ 0  0 ]
*/
void stateUpdate(const float q_m){
float q;
float Pdot[4];
/*去除陀螺仪偏差*/
q = q_m - q_bias;//当前角速度:测量值-偏差
/*
  * Compute the derivative of the covariance matrix
  * 计算协方差矩阵的导数
  * (equation 22-1)
  * Pdot = A*P + P*A' + Q
  */
Pdot[0] = Q_angle - P[0][1] - P[1][0]; /* 0,0 */
Pdot[1] = - P[1][1];          /* 0,1 */
Pdot[2] = - P[1][1];          /* 1,0 */
Pdot[3] = Q_gyro;   /* 1,1 */
/* 保存陀螺仪角速率无偏估计*/
rate = q;
/*
   * Update our angle estimate
   * angle += angle_dot * dt
   *       += (gyro - gyro_bias) * dt
   *       += q * dt
   */
angle += q * dt;//角速度积分累加到 估计角度
/* 更新协方差矩阵 */
P[0][0] += Pdot[0] * dt;
P[0][1] += Pdot[1] * dt;
P[1][0] += Pdot[2] * dt;
P[1][1] += Pdot[3] * dt;       //why?
}

/*
* kalman_update在加速度计更新时由用户调用
* 不需要每次都调用,但加速度计采样频率和陀螺仪一样的话就可以
*
*         H  = [ 1 0 ]
*
* 因为角度测量直接符合角度估计而且角度测量和陀螺仪没有关联
*/
void kalmanUpdate(const float incAngle)
{
/* 估计角度测量值和测量偏差 */
float angle_m = incAngle;
float angle_err = angle_m - angle;//1.12 zk-H*xk_dot
/*
   h_0表示状态估计值和状态量的相关程度
   *      H = [h_0 h_1]
   *
   * The h_1 shows that the state measurement does not relate
   * to the gyro bias estimate.  We don't actually use this, so
   * we comment it out.
   */
float h_0 = 1;
/* const float  h_1 = 0; */
/*
   * 先验 P*H' 用到两次
   */
const float PHt_0 = h_0*P[0][0]; /* + h_1*P[0][1] = 0*/
const float PHt_1 = h_0*P[1][0]; /* + h_1*P[1][1] = 0*/
/*
   * 估计误差:
   * (equation 21-1)
   * E = H P H' + R
   */
float E = R_angle +(h_0 * PHt_0);
/*
   * 估计卡尔曼增益:
   * (equation 21-2)
   *
   * K = P H' inv(E)
          */
float K_0 = PHt_0 / E;
float K_1 = PHt_1 / E;
   
/*
   * 更新协方差矩阵:
   * (equation 21-3)
   *
   * P = P - K H P
          * Let
  *      Y = H P
   */
float Y_0 = PHt_0;  /*h_0 * P[0][0]*/
float Y_1 = h_0 * P[0][1];
   
P[0][0] -= K_0 * Y_0;
P[0][1] -= K_0 * Y_1;
P[1][0] -= K_1 * Y_0;
P[1][1] -= K_1 * Y_1;
/*
   * 后验估计:
   *
   * Xnew = X + K * error
   *
   * err is a measurement of the difference in the measured state
   * and the estimate state.  In our case, it is just the difference
   * between the inclinometer measured angle and the estimated angle.
   */
angle += K_0 * angle_err;
q_bias += K_1 * angle_err;
}


作者: qinlu123    时间: 2012-3-3 14:18
yssdsz 发表于 2012-3-3 12:59
这个??

是这个
作者: excellentlizhen    时间: 2012-3-3 14:51
yssdsz 发表于 2012-3-3 12:59
这个??

  个人觉得还是官方的思路更靠谱哈。卡尔曼不太看得懂,用起来不放心。调参数也感觉没有直观的方向
作者: yssdsz    时间: 2012-3-3 15:01
excellentlizhen 发表于 2012-3-3 14:51
个人觉得还是官方的思路更靠谱哈。卡尔曼不太看得懂,用起来不放心。调参数也感觉没有直观的方向

现在打算先卡尔曼滤波试试,实在不行在改。手头卡尔曼的资料挺多的,关于参数的调节,大体知道。现在基本差不多了~
作者: yssdsz    时间: 2012-3-3 15:22
qinlu123 发表于 2012-3-3 14:18
是这个

我用的那个就是把你说的那两个程序拼在一起了~均值滤波套卡尔曼。。。还不知道能不能立。。。
作者: 灰色头像1    时间: 2012-3-3 15:50
qinlu123 发表于 2012-3-3 10:15
你的站稳了吗

应该算是站的比较稳了,速度控制加的不是很理想。。

作者: qinlu123    时间: 2012-3-3 16:38
灰色头像1 发表于 2012-3-3 15:50
应该算是站的比较稳了,速度控制加的不是很理想。。

我发现我的陀螺仪反冲相当严重,积分后为0基本不起作用,以前站全靠mma7260了,现在我把陀螺仪拆了按照官方的电路图重新做的,你是用的什么陀螺仪。
作者: ocbo107    时间: 2012-3-3 19:06
yssdsz 发表于 2012-3-3 15:22
我用的那个就是把你说的那两个程序拼在一起了~均值滤波套卡尔曼。。。还不知道能不能立。。。

有必要搞那么复杂么...

先用把硬件做好点,或者简单地说,就是调节时间常数的过程中,出现官方视频的3种情况.
就说明硬件差不多了.

作者: 灰色头像1    时间: 2012-3-3 19:23
qinlu123 发表于 2012-3-3 16:38
我发现我的陀螺仪反冲相当严重,积分后为0基本不起作用,以前站全靠mma7260了,现在我把陀螺仪拆了按照官 ...

陀螺仪就是官网上那种
作者: excellentlizhen    时间: 2012-3-3 19:26

作者: qinlu123    时间: 2012-3-3 19:29
灰色头像1 发表于 2012-3-3 19:23
陀螺仪就是官网上那种

买的成品还是照官网电路图做的
作者: 灰色头像1    时间: 2012-3-3 19:54
qinlu123 发表于 2012-3-3 19:29
买的成品还是照官网电路图做的

成品
作者: a120864402    时间: 2012-3-3 22:40
弱弱的问下 陀螺仪的由AD 转换之后 怎么切换成角度?难道除以0.67?
大二的表示压力很大
作者: yssdsz    时间: 2012-3-3 22:45
标题: RE: 关于小车站立
ocbo107 发表于 2012-3-3 19:06
有必要搞那么复杂么...

先用把硬件做好点,或者简单地说,就是调节时间常数的过程中,出现官方视频的3种情 ...

没办法,加速度计输出化成角度最大最小能差5°,卡尔曼也没能使最终角度值平稳,静止偏差±0.5°,动起来就很没谱,所以弄了一个均值调动态。还会再调的~

作者: yssdsz    时间: 2012-3-3 23:06
标题: RE: 关于小车站立
ocbo107 发表于 2012-3-3 19:06
有必要搞那么复杂么...

先用把硬件做好点,或者简单地说,就是调节时间常数的过程中,出现官方视频的3种情 ...

没办法,加速度计输出化成角度最大最小能差5°,卡尔曼也没能使最终角度值平稳,静止偏差±0.5°,动起来就很没谱,所以弄了一个均值调动态。还会再调的~

作者: 木雨轩丶航    时间: 2012-3-5 18:46
楼主给发张车子的全方位照片吧,交流一下,我们改进一下,大家一起努力吧
作者: qinlu123    时间: 2012-3-5 20:51
a120864402 发表于 2012-3-3 22:40
弱弱的问下 陀螺仪的由AD 转换之后 怎么切换成角度?难道除以0.67?
大二的表示压力很大

我也是大二的,自己想办法调啊。
作者: qinlu123    时间: 2012-3-5 20:52
木雨轩丶航 发表于 2012-3-5 18:46
楼主给发张车子的全方位照片吧,交流一下,我们改进一下,大家一起努力吧

过几天吧,这几天没空照
作者: 小狐狸    时间: 2012-3-6 21:04
慕名凤姐而来 发表于 2012-3-1 16:24
馊噶  程序我们倒有,就是参数调的太恶心 波形不是很好  滞后也不知道到底严重不严重,反正就是不能站立

怎么看波形~
作者: fshunj    时间: 2012-3-7 12:56
看看
作者: 斩恨    时间: 2012-3-8 10:47
     很神奇啊,同样的程序,传感器安在质心就站起来了!这个貌似原理还不是很清楚。
   楼主,请问你的卡尔曼中断频率是多少?车子有没有出现过加速前进的情况??
作者: qinlu123    时间: 2012-3-8 12:39
斩恨 发表于 2012-3-8 10:47
很神奇啊,同样的程序,传感器安在质心就站起来了!这个貌似原理还不是很清楚。
   楼主,请问你的卡 ...

1毫秒,有
作者: XHM    时间: 2012-3-9 11:32
请问下楼主用卡尔曼滤波是在陀螺仪积分角度之后滤的吗?
作者: qinlu123    时间: 2012-3-9 16:23
XHM 发表于 2012-3-9 11:32
请问下楼主用卡尔曼滤波是在陀螺仪积分角度之后滤的吗?

我没用卡尔曼,以前用卡尔曼的时候不是积分后再滤
作者: quzhanguang    时间: 2012-3-11 02:41
qinlu123 发表于 2012-2-29 19:24
现在用的是买的成品,过一段时间板子做好我们自己做,唯一让我不能接受的是花大价钱买了一个mma7260还不是 ...

7260应该不是假的,这个顶多是货源的问题
作者: 我是小菜鸟!    时间: 2012-3-12 22:44
我们学校今年不重视电磁组啊- -...
求各位大侠告诉我下,软件方面,我需要做哪些程序。(PWM?AD?PD?卡尔曼?)...
一头雾水啊。
作者: c_do0123    时间: 2012-3-14 20:50
弱弱的问一句,陀螺仪的参数0.67能用不,大概误差多少,楼主大概给多少
作者: qinlu123    时间: 2012-3-14 21:22
c_do0123 发表于 2012-3-14 20:50
弱弱的问一句,陀螺仪的参数0.67能用不,大概误差多少,楼主大概给多少

看你的外围电路了
作者: c_do0123    时间: 2012-3-15 20:12
哦  虽然还是没调到理想的状态 还是谢谢楼主
作者: 会会1314    时间: 2012-3-15 20:59
羡慕啊
作者: 仰望星空1    时间: 2012-3-15 21:57
弱弱的问一下0.67是哪里来的数据呀
作者: qinlu123    时间: 2012-3-16 12:30
仰望星空1 发表于 2012-3-15 21:57
弱弱的问一下0.67是哪里来的数据呀

技术手册上是给的0.67,但是外围电路也有影响,需要测试的
作者: muyimufeng    时间: 2012-3-16 22:31
好好
作者: 仰望星空1    时间: 2012-3-16 23:27
谢谢楼主,追问一下,是不是必须先把AD才回来的进行一系列转化(就是例如*0.67的操作)在进行卡尔曼滤波呀
作者: qinlu123    时间: 2012-3-17 10:40
仰望星空1 发表于 2012-3-16 23:27
谢谢楼主,追问一下,是不是必须先把AD才回来的进行一系列转化(就是例如*0.67的操作)在进行卡尔曼滤波呀

我以前是这么做的,现在没用卡尔曼
作者: 仰望星空1    时间: 2012-3-17 12:53
发表于 2 小时前 |只看该作者
仰望星空1 发表于 2012-3-16 23:27
谢谢楼主,追问一下,是不是必须先把AD才回来的进行一系列转化(就是例如*0.67的操作)在进行卡尔曼滤波呀

我以前是这么做的,现在没用卡尔曼

谢谢楼主,那楼主现在用?
作者: qinlu123    时间: 2012-3-17 13:14
仰望星空1 发表于 2012-3-17 12:53
谢谢楼主,那楼主现在用?

清华的方案
作者: luoy    时间: 2012-3-18 16:49
请问你们的卡尔曼滤波程序是自己写的吗???
作者: qinlu123    时间: 2012-3-18 16:59
luoy 发表于 2012-3-18 16:49
请问你们的卡尔曼滤波程序是自己写的吗???

我没用卡尔曼
作者: luoy    时间: 2012-3-18 18:58
那请问你用的是什么滤波呢!能把滤波程序发来看看吗!最近对于滤波挺纠结!卡尔曼看不懂啊!!
作者: luoy    时间: 2012-3-18 19:39
能把你的卡尔曼程序发给我看看吗!!
作者: qinlu123    时间: 2012-3-19 17:39
luoy 发表于 2012-3-18 19:39
能把你的卡尔曼程序发给我看看吗!!

可以啊,你把qq给我吧,不过我现在不用卡尔曼了
作者: luoy    时间: 2012-3-19 18:03
谢谢啊我的QQ1206166142  你们不用卡尔曼那用什么啊??
作者: wo520    时间: 2012-3-19 22:15
qinlu123 发表于 2012-3-19 17:39
可以啊,你把qq给我吧,不过我现在不用卡尔曼了

柯蓝啊!有个问题问你,不知道你遇到过没有,没加闭环,我的车让他向前走,他不会倒,但是我向后推,给它个向后的力,力不大,只是让它向后走,它就开始向后加速,然后倒下。又或者,它向前走1到2米后,突然反向加速1米都不到就倒下了。不知道什么原因??你遇到过吗?
作者: qinlu123    时间: 2012-3-20 16:49
wo520 发表于 2012-3-19 22:15
柯蓝啊!有个问题问你,不知道你遇到过没有,没加闭环,我的车让他向前走,他不会倒,但是我向后推,给它 ...

没有
作者: luoy    时间: 2012-3-20 20:51
楼主能发一下清华的方案吗 QQ1206166142  谢了!!!
作者: qinlu123    时间: 2012-3-21 13:02
luoy 发表于 2012-3-20 20:51
楼主能发一下清华的方案吗 QQ1206166142  谢了!!!

官方网站上有的
作者: 我の小车    时间: 2012-3-28 17:06
学了不少,谢谢大家了
作者: 林夕22    时间: 2012-4-4 15:03
厉害啊
作者: 风林火山lhy    时间: 2012-4-8 14:10
LZ  用清华方案时  Z轴输出和滤波后的角度总是有一个差额   难道是时间常数问题,官网说最少2s以上。。
作者: qinlu123    时间: 2012-4-8 17:50
风林火山lhy 发表于 2012-4-8 14:10
LZ  用清华方案时  Z轴输出和滤波后的角度总是有一个差额   难道是时间常数问题,官网说最少2s以上。。

这我也不大清楚
作者: 神器    时间: 2012-4-8 21:16
看到帖子又被顶起来了,提个醒,芯片很重要,、同样程序换套芯片就站起来了。。

楼主用的是官网的电路吗
作者: qinlu123    时间: 2012-4-8 21:27
神器 发表于 2012-4-8 21:16
看到帖子又被顶起来了,提个醒,芯片很重要,、同样程序换套芯片就站起来了。。

楼主用的是官网的电路 ...

是官方的
作者: 神器    时间: 2012-4-8 22:04
qinlu123 发表于 2012-4-8 21:27
是官方的

你遇到过这问题吗:陀螺仪的值看波形能上,但一直下不去。纠结了好久,最后还是放弃官网方案了..

作者: qinlu123    时间: 2012-4-9 16:44
神器 发表于 2012-4-8 22:04
你遇到过这问题吗:陀螺仪的值看波形能上,但一直下不去。纠结了好久,最后还是放弃官网方案了..

没有
作者: sanzhong    时间: 2012-4-9 22:04
qinlu123 发表于 2012-3-1 15:55
基本上都是这个参数

楼主能分享一下你的卡尔曼滤波程序吗?
作者: 夏罗    时间: 2012-4-13 17:56
qinlu123 发表于 2012-3-1 15:55
基本上都是这个参数

柯南啊,能不能把你滤波,直立控制的程序给我发一份我参考一下,到现在还没站立来,纠结ing...
982340501@qq.com

作者: 夏罗    时间: 2012-4-13 18:21
yssdsz 发表于 2012-3-3 12:59
这个??

麻烦帮我看看这滤波什么地方的问题好吧,立不起来啊....
希望多多指导啊,滤波就用的你贴的这段代码...

作者: qinlu123    时间: 2012-4-13 18:32
夏罗 发表于 2012-4-13 18:21
麻烦帮我看看这滤波什么地方的问题好吧,立不起来啊....
希望多多指导啊,滤波就用的你贴的这段代码...
...

波形很好,但是车静止和运动的波形是不一样的,站不起来多半是硬件问题
作者: 夏罗    时间: 2012-4-13 18:56
qinlu123 发表于 2012-4-13 18:32
波形很好,但是车静止和运动的波形是不一样的,站不起来多半是硬件问题

能具体指导一下不,硬件哪一方面的影响会比较大啊,是陀螺仪和加速度计的电路还是别的呢,我的那个波形是不是有过冲啊...

作者: aoxiang2    时间: 2012-4-17 17:35
谁有这个eyebot.h的头文件,能发给我我吗?谢谢!730226584@qq.com




欢迎光临 智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2