mrpt_ekf_slam_3d.h
Go to the documentation of this file.
1 /*
2  * File:mrpt_ekf_slam_3d.h
3  * Author: Vladislav Tananaev
4  *
5  */
6 
7 #pragma once
8 
9 #include <mrpt/config/CConfigFile.h>
10 #include <mrpt/io/CFileGZInputStream.h>
11 #include <mrpt/io/CFileGZOutputStream.h>
12 #include <mrpt/system/os.h>
13 #include <mrpt/system/string_utils.h>
14 #include <mrpt/system/filesystem.h>
15 #include <mrpt/slam/CRangeBearingKFSLAM.h>
16 #include <mrpt/math/ops_containers.h>
17 #include <mrpt/opengl/CGridPlaneXY.h>
18 #include <mrpt/opengl/CSetOfLines.h>
19 #include <mrpt/opengl/COpenGLScene.h>
20 #include <mrpt/opengl/stock_objects.h>
21 #include <mrpt/gui/CDisplayWindow3D.h>
22 #include <mrpt/obs/CActionRobotMovement2D.h>
23 #include <mrpt/obs/CActionRobotMovement3D.h>
24 #include <mrpt/obs/CActionCollection.h>
25 #include <mrpt/obs/CObservationOdometry.h>
26 #include <mrpt/obs/CSensoryFrame.h>
27 #include <mrpt/maps/CMultiMetricMap.h>
28 #include <mrpt/obs/CObservationBearingRange.h>
29 #include <mrpt/obs/CRawlog.h>
30 
35 class EKFslam
36 {
37  public:
41  EKFslam();
45  virtual ~EKFslam();
49  void init3Dwindow();
53  void run3Dwindow();
57  void landmark_to_3d(
58  const mrpt::slam::CRangeBearingKFSLAM::KFArray_FEAT& lm,
59  mrpt::math::TPoint3D& p);
65  void read_iniFile(std::string ini_filename);
72  void observation(
73  mrpt::obs::CSensoryFrame::Ptr _sf,
74  mrpt::obs::CObservationOdometry::Ptr _odometry);
75 
76  protected:
77  mrpt::slam::CRangeBearingKFSLAM mapping;
78 
79  mrpt::system::TTimeStamp
81 
82  mrpt::obs::CActionCollection::Ptr action;
83  mrpt::obs::CSensoryFrame::Ptr sf;
84 
85  mrpt::poses::CPose3D
87  mrpt::obs::CActionRobotMovement3D::TMotionModelOptions
89 
90  mrpt::gui::CDisplayWindow3D::Ptr win3d;
93  std::vector<mrpt::math::TPose3D> meanPath;
94  mrpt::poses::CPose3DQuatPDFGaussian robotPose_;
95  std::vector<mrpt::math::TPoint3D> LMs_;
96  std::map<unsigned int, mrpt::maps::CLandmark::TLandmarkID> LM_IDs_;
98  mrpt::math::CMatrixDouble fullCov_;
99  mrpt::math::CVectorDouble fullState_;
100 };
EKFslam::CAMERA_3DSCENE_FOLLOWS_ROBOT
bool CAMERA_3DSCENE_FOLLOWS_ROBOT
Definition: mrpt_ekf_slam_3d.h:92
EKFslam::~EKFslam
virtual ~EKFslam()
destructor
Definition: mrpt_ekf_slam_3d.cpp:37
EKFslam::observation
void observation(mrpt::obs::CSensoryFrame::Ptr _sf, mrpt::obs::CObservationOdometry::Ptr _odometry)
calculate the actions from odometry model for current observation
Definition: mrpt_ekf_slam_3d.cpp:70
EKFslam::win3d
mrpt::gui::CDisplayWindow3D::Ptr win3d
MRPT window.
Definition: mrpt_ekf_slam_3d.h:90
EKFslam::landmark_to_3d
void landmark_to_3d(const mrpt::slam::CRangeBearingKFSLAM::KFArray_FEAT &lm, mrpt::math::TPoint3D &p)
convert landmark to 3d point
Definition: mrpt_ekf_slam_3d.cpp:210
EKFslam
The EKFslam class provides EKF SLAM 3d from MRPT libraries.
Definition: mrpt_ekf_slam_3d.h:35
EKFslam::mapping
mrpt::slam::CRangeBearingKFSLAM mapping
EKF slam 3d class.
Definition: mrpt_ekf_slam_3d.h:77
EKFslam::init3Dwindow
void init3Dwindow()
init 3D window from mrpt lib
Definition: mrpt_ekf_slam_3d.cpp:95
EKFslam::timeLastUpdate_
mrpt::system::TTimeStamp timeLastUpdate_
last update of the pose and map
Definition: mrpt_ekf_slam_3d.h:80
EKFslam::LM_IDs_
std::map< unsigned int, mrpt::maps::CLandmark::TLandmarkID > LM_IDs_
vector of the landmarks ID
Definition: mrpt_ekf_slam_3d.h:97
EKFslam::LMs_
std::vector< mrpt::math::TPoint3D > LMs_
Definition: mrpt_ekf_slam_3d.h:95
EKFslam::robotPose_
mrpt::poses::CPose3DQuatPDFGaussian robotPose_
current robot pose
Definition: mrpt_ekf_slam_3d.h:94
EKFslam::run3Dwindow
void run3Dwindow()
run 3D window update from mrpt lib
Definition: mrpt_ekf_slam_3d.cpp:106
EKFslam::fullCov_
mrpt::math::CMatrixDouble fullCov_
full covariance matrix
Definition: mrpt_ekf_slam_3d.h:98
EKFslam::odomLastObservation_
mrpt::poses::CPose3D odomLastObservation_
last observation of odometry
Definition: mrpt_ekf_slam_3d.h:86
EKFslam::read_iniFile
void read_iniFile(std::string ini_filename)
read ini file
Definition: mrpt_ekf_slam_3d.cpp:39
EKFslam::action
mrpt::obs::CActionCollection::Ptr action
actions
Definition: mrpt_ekf_slam_3d.h:82
EKFslam::SHOW_3D_LIVE
bool SHOW_3D_LIVE
Definition: mrpt_ekf_slam_3d.h:91
EKFslam::EKFslam
EKFslam()
constructor
Definition: mrpt_ekf_slam_3d.cpp:11
EKFslam::meanPath
std::vector< mrpt::math::TPose3D > meanPath
Definition: mrpt_ekf_slam_3d.h:93
EKFslam::sf
mrpt::obs::CSensoryFrame::Ptr sf
observations
Definition: mrpt_ekf_slam_3d.h:83
EKFslam::motion_model_options_
mrpt::obs::CActionRobotMovement3D::TMotionModelOptions motion_model_options_
used with odom value motion noise
Definition: mrpt_ekf_slam_3d.h:88
EKFslam::fullState_
mrpt::math::CVectorDouble fullState_
full state vector
Definition: mrpt_ekf_slam_3d.h:99


mrpt_ekf_slam_3d
Author(s): Jose Luis, Vladislav Tananaev
autogenerated on Thu Sep 19 2024 02:26:29