StandardInertiaMatrixEstimator.hpp
Go to the documentation of this file.
00001 /*
00002  * StandardInertiaMatrixEstimator.hpp
00003  *
00004  *  Created on: Jul 28, 2012
00005  *      Author: rspica
00006  */
00007 
00008 #ifndef STANDARDINERTIAMATRIXESTIMATION_HPP_
00009 #define STANDARDINERTIAMATRIXESTIMATION_HPP_
00010 
00011 #include <telekyb_defines/telekyb_defines.hpp>
00012 #include <telekyb_base/Options.hpp>
00013 #include <telekyb_base/Filter/IIRFilter.hpp>
00014 
00015 // Import Interface
00016 #include <tk_param_estimator/InertiaMatrixEstimator.hpp>
00017 
00018 namespace TELEKYB_NAMESPACE {
00019 
00020 class StandardInertiaMatrixEstimOptions : public OptionContainer {
00021 public:
00022 
00023         Option<Eigen::Vector3d>* tInitialInertiaMatrix;
00024 
00025         Option<Eigen::Vector3d>* tAFiltCoeff;/*a*/
00026         Option<Eigen::Vector3d>* tKappaZeroGain;
00027         Option<Eigen::Vector3d>* tLambdaZeroGain;
00028         Option<double>* tSampleTime;
00029 
00030         Option<Eigen::Vector3d>* tMaxInertia;
00031         Option<Eigen::Vector3d>* tMinInertia;
00032 
00033         Option<bool>* tPublishInertia;
00034         Option<std::string>* tInertiaTopic;
00035 
00036         StandardInertiaMatrixEstimOptions();
00037 };
00038 
00039 class StandardInertiaMatrixEstimator : public InertiaMatrixEstimator {
00040 private:
00041         StandardInertiaMatrixEstimOptions options;
00042 
00043         Eigen::Vector3d estInvInertia;
00044         Eigen::Vector3d estGain;
00045 
00046         Eigen::Vector3d integInitialInvInertia;
00047         Eigen::Vector3d integInitialGain;
00048 
00049         // Filters
00050         IIRFilter* torqueFilter[3];
00051         IIRFilter* angVelFilter[3];
00052 
00053         // Integrators
00054         IIRFilter* estInvInertiaIntegrator[3];
00055         IIRFilter* estGainIntegrator[3];
00056 
00057         ros::NodeHandle nodeHandle;
00058         ros::Publisher inertiaPub;
00059 
00060 public:
00061         StandardInertiaMatrixEstimator();
00062         virtual ~StandardInertiaMatrixEstimator();
00063 
00064 
00065         void initialize();
00066         void destroy();
00067         std::string getName() const;
00068 
00069         void run(const InertiaMatrixEstimInput& input,InertiaMatrixEstimOutput& output);
00070 
00071         Eigen::Matrix3d getInitialInertiaMatrix() const;
00072 };
00073 
00074 }
00075 
00076 #endif /* STANDARDINERTIAMATRIXESTIMATION_HPP_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends


tk_param_estimator
Author(s): Riccardo Spica and Martin Riedel
autogenerated on Mon Nov 11 2013 11:13:10