IMU.h
Go to the documentation of this file.
1 /*+-------------------------------------------------------------------------+
2  | MultiVehicle simulator (libmvsim) |
3  | |
4  | Copyright (C) 2014-2023 Jose Luis Blanco Claraco |
5  | Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) |
6  | Distributed under 3-clause BSD License |
7  | See COPYING |
8  +-------------------------------------------------------------------------+ */
9 
10 #pragma once
11 
12 #include <mrpt/obs/CObservationIMU.h>
13 #include <mrpt/poses/CPose3D.h>
14 #include <mrpt/random.h>
16 
17 #include <mutex>
18 
19 namespace mvsim
20 {
25 class IMU : public SensorBase
26 {
28  public:
30  virtual ~IMU();
31 
32  // See docs in base class
33  virtual void loadConfigFrom(const rapidxml::xml_node<char>* root) override;
34 
35  virtual void simul_pre_timestep(const TSimulContext& context) override;
36  virtual void simul_post_timestep(const TSimulContext& context) override;
37 
38  void registerOnServer(mvsim::Client& c) override;
39 
40  protected:
41  void internalGuiUpdate(
42  const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& viz,
43  [[maybe_unused]] const mrpt::optional_ref<mrpt::opengl::COpenGLScene>&
44  physical,
45  [[maybe_unused]] bool childrenOnly) override;
46 
47  void internal_simulate_imu(const TSimulContext& context);
48 
49  double angularVelocityStdNoise_ = 2e-4;
50  double linearAccelerationStdNoise_ = 0.017;
51 
52  // Store here all default parameters. This obj will be copied as a
53  // "pattern" to fill it with actual data.
54  mrpt::obs::CObservationIMU obs_model_;
55 
56  std::mutex last_obs_cs_;
57 
59  mrpt::obs::CObservationIMU::Ptr last_obs_;
60 
61  mrpt::opengl::CSetOfObjects::Ptr gl_sensor_origin_,
63 
64  mrpt::random::CRandomGenerator rng_;
65 };
66 } // namespace mvsim
mrpt::obs::CObservationIMU::Ptr last_obs_
Definition: IMU.h:59
virtual ~IMU()
Definition: IMU.cpp:32
IMU(Simulable &parent, const rapidxml::xml_node< char > *root)
Definition: IMU.cpp:26
std::mutex last_obs_cs_
Definition: IMU.h:56
void registerOnServer(mvsim::Client &c) override
Definition: IMU.cpp:141
mrpt::opengl::CSetOfObjects::Ptr gl_sensor_origin_
Definition: IMU.h:61
mrpt::random::CRandomGenerator rng_
Definition: IMU.h:64
mrpt::obs::CObservationIMU obs_model_
Definition: IMU.h:54
virtual void simul_pre_timestep(const TSimulContext &context) override
Definition: IMU.cpp:84
double angularVelocityStdNoise_
[rad/s]
Definition: IMU.h:49
An Inertial Measurement Unit (IMU) sensor.
Definition: IMU.h:25
#define DECLARES_REGISTER_SENSOR(CLASS_NAME)
Definition: SensorBase.h:118
virtual void simul_post_timestep(const TSimulContext &context) override
Definition: IMU.cpp:87
void internal_simulate_imu(const TSimulContext &context)
Definition: IMU.cpp:97
virtual void loadConfigFrom(const rapidxml::xml_node< char > *root) override
Definition: IMU.cpp:34
mrpt::opengl::CSetOfObjects::Ptr gl_sensor_origin_corner_
Definition: IMU.h:61
double linearAccelerationStdNoise_
[m/s²]
Definition: IMU.h:50
void internalGuiUpdate(const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &viz, [[maybe_unused]] const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &physical, [[maybe_unused]] bool childrenOnly) override
Definition: IMU.cpp:55


mvsim
Author(s):
autogenerated on Tue Jul 4 2023 03:08:21