Jafar
|
00001 /* $Id$ */ 00002 00003 #ifndef SLAM_ROBOT_HPP 00004 #define SLAM_ROBOT_HPP 00005 00006 #include "jmath/jblas.hpp" 00007 00008 #include "slam/abstractMapObject.hpp" 00009 00010 namespace jafar { 00011 namespace filter { 00012 class JacobianBlockCommandPredictModel; 00013 } 00014 namespace slam { 00015 00022 class BaseRobot : public AbstractMapObject { 00023 friend class SlamEkf; 00024 public: 00025 jafar::filter::JacobianBlockCommandPredictModel& model; 00026 public: 00027 BaseRobot(unsigned int id, jafar::filter::JacobianBlockCommandPredictModel& model, std::size_t sizePose = 6); 00028 ~BaseRobot(); 00032 std::size_t sizePose() const { return m_sizePose; } 00036 std::size_t sizeState() const; 00040 jblas::vec_range* refPose() { return m_refPose; } 00044 jblas::sym_mat_range* refPoseCov() { return m_refPoseCov; } 00048 const jblas::vec_range* refPose() const { return m_refPose; } 00052 const jblas::sym_mat_range* refPoseCov() const { return m_refPoseCov; } 00053 private: 00054 std::size_t m_sizePose; 00055 jblas::vec_range* m_refPose; 00056 jblas::sym_mat_range* m_refPoseCov; 00057 }; 00058 00059 00060 // /** Base robot model. 00061 // * 00062 // * \ingroup slam 00063 // */ 00064 // template<std::size_t sizePose, class PredictModel> 00065 // class BaseRobotModel { 00066 00067 // protected: 00068 00069 // public: 00070 00071 // PredictModel predictModel; 00072 00073 // BaseRobotModel() : 00074 // predictModel() 00075 // { 00076 // JFR_PRECOND(sizePose < predictModel.sizeState(), 00077 // "BaseRobotModel::BaseRobotModel: invalid sizePose"); 00078 // }; 00079 00080 // virtual ~BaseRobotModel() {}; 00081 00082 // std::size_t sizePose() const {return sizePose;}; 00083 // std::size_t sizeState() const {return predictModel.sizeState();}; 00084 00085 00086 // }; 00087 00088 00089 00090 00091 } // namespace slam 00092 } // namespace jafar 00093 00094 00095 #endif // SLAM_ROBOT_HPP
Generated on Wed Oct 15 2014 00:37:27 for Jafar by doxygen 1.7.6.1 |