00001
00013 #ifndef EKF_TEMP_H
00014 #define EKF_TEMP_H
00015
00016 #include "libKF.h"
00017
00018 namespace bdm{
00019
00021 class EKFful_unQR : public EKFfull , public BMcond {
00022 public:
00024 EKFful_unQR ( RV rx, RV ry,RV ru,RV rQR ) :EKFfull ( rx,ry,ru ),BMcond ( rQR ) {};
00025 void condition ( const vec &QR0 ) {
00026 Q=diag(QR0(0,dimx-1));
00027 R=diag(QR0(dimx,dimx+dimy-1));
00028 };
00029 };
00030
00032 class EKFCh_unQ : public EKFCh , public BMcond {
00033 public:
00035 EKFCh_unQ ( RV rx, RV ry,RV ru,RV rQ ) :EKFCh ( rx,ry,ru ),BMcond ( rQ ) {};
00036 void condition ( const vec &Q0 ) {
00037 Q.setD ( Q0,0 );
00038
00039 preA.set_submatrix ( dimy+dimx,dimy,Q._Ch() );
00040 };
00041 };
00042
00044 class EKFCh_cond : public EKFCh , public BMcond {
00045 public:
00047 EKFCh_cond ( RV rx, RV ry,RV ru,RV rC ) :EKFCh ( rx,ry,ru ),BMcond ( rC ) {};
00048 void condition ( const vec &val ) {
00049 pfxu->condition ( val );
00050 };
00051 };
00052
00053 }
00054 #endif //EKF_TEMP_H