/***************************************************************************/ /* kalman.h header file for kalman.c */ /* 1-D Kalman filter Algorithm, using an inclinometer and gyro */ /* Author: Rich Chi Ooi */ /* Version: 1.0 */ /* Date:30.05.2003 */ /* Adapted from Trammel Hudson(hudson@rotomotion.com) */ /* ------------------------------- */ /* Compilation procedure: */ /* Linux */ /* gcc68 -c XXXXXX.c (to create object file) */ /* gcc68 -o XXXXXX.hex XXXXXX.o ppwa.o */ /***************************************************************************/ /* In this version: */ /***************************************************************************/ /* 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 */ /***************************************************************************/ #ifndef kalman_h #define kalman_h /* * Our two states, the angle and the gyro bias.As a byproduct of computing * the angle, we also have an unbiased angular rate available.These are * read-only to the user of the module. */ extern float angle; extern float q_bias; extern float rate; /* * stateUpdate is called every dt with a biased gyro measurement * by the user of the module. It updates the current angle and * rate estimate. */ void stateUpdate(const float q_m); /* * kalmanUpdate is called by a user of the module when a new * inclinoometer measurement is available. */ void kalmanUpdate(const float incAngle); #endif