12 #include <mrpt/obs/CObservationIMU.h>
13 #include <mrpt/poses/CPose3D.h>
14 #include <mrpt/random.h>
15 #include <mvsim/Sensors/ImuNoiseModel.h>
16 #include <mvsim/Sensors/SensorBase.h>
32 DECLARES_REGISTER_SENSOR(
IMU)
45 void internalGuiUpdate(
46 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& viz,
47 [[maybe_unused]]
const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& physical,
48 [[maybe_unused]]
bool childrenOnly)
override;
50 void notifySimulableSetPose(
const mrpt::math::TPose3D& newPose)
override;
52 mrpt::math::TPose3D
getRelativePose()
const override {
return obs_model_.sensorPose.asTPose(); }
55 obs_model_.sensorPose = mrpt::poses::CPose3D(p);
69 mrpt::obs::CObservationIMU obs_model_;
71 std::mutex last_obs_cs_;
76 mrpt::opengl::CSetOfObjects::Ptr gl_sensor_origin_, gl_sensor_origin_corner_;
78 mrpt::random::CRandomGenerator rng_;
virtual void simul_pre_timestep(const TSimulContext &context) override
bool measure_orientation_
If true, the IMU will also measure orientation.
Definition: IMU.h:65
void setRelativePose(const mrpt::math::TPose3D &p) override
Definition: IMU.h:53
double orientationStdNoise_
[rad]
Definition: IMU.h:60
virtual void simul_post_timestep(const TSimulContext &context) override
virtual void loadConfigFrom(const rapidxml::xml_node< char > *root) override
ImuNoiseModel noiseModel_
Definition: IMU.h:63
mrpt::math::TPose3D getRelativePose() const override
Definition: IMU.h:52
mrpt::obs::CObservationIMU::Ptr last_obs_
Definition: IMU.h:74
Stochastic IMU error model based on Forster et al. (2016).
Definition: ImuNoiseModel.h:52
Virtual base class for all sensors.
Definition: SensorBase.h:35
Definition: Simulable.h:40
Definition: basic_types.h:58