【发布时间】:2015-06-20 13:33:38
【问题描述】:
我正在使用其他人编写的一些代码,用 arduino 在我的 imu 中实现卡尔曼滤波器。我了解其中的绝大多数及其背后的数学原理,但是在实现它时遇到了一些我无法理解的错误(严重缺乏关于 typdef 和结构以及初始化它们的知识)。如果有人可以向我解释这个错误,将不胜感激。
头文件包含这个...
struct kalman_data{
float x1, x2, x3;
float p11, p12, p13,
p21, p22, p23,
p31, p32, p33;
float q1, q2, q3;
};
typedef struct _kalman_data kalman_data;
void kalman_data(kalman_data* data);
void kalman_calc(kalman_data* data, float z1, float z2);
我的 arduino 代码包含这个..
kalman_data pitch_data;
kalman_data roll_data;
void loop(){
kalman_data(&pitch_data);
kalman_data(&roll_data);
kalman_calc(&pitch_data, pitch, gyro_yz);
kalman_calc(&roll_data, roll, gyro_xz);
}
这是我得到的错误......
在 test.ino:2:0 包含的文件中: E:\Users\Alexander\Documents\Arduino\libraries\Kalman/kalman.h:30:29:错误:冲突声明'typedef struct _kalman_data kalman_data'
typedef struct _kalman_data 卡尔曼数据;E:\Users\Alexander\Documents\Arduino\libraries\Kalman/kalman.h:17:8: 错误:'struct kalman_data' 先前声明为'struct kalman_data' 结构卡尔曼数据{
【问题讨论】:
-
将
struct kalman_data{更改为struct _kalman_data{。
标签: c struct types arduino typedef