Go to the documentation of this file.
17 #ifndef GAZEBO_SENSORS_IMUSENSOR_HH_
18 #define GAZEBO_SENSORS_IMUSENSOR_HH_
22 #include <ignition/math/Quaternion.hh>
23 #include <ignition/math/Vector3.hh>
33 class ImuSensorPrivate;
49 protected:
void Load(
const std::string &_worldName, sdf::ElementPtr _sdf);
52 protected:
virtual void Load(
const std::string &_worldName);
55 public:
virtual void Init();
58 protected:
virtual bool UpdateImpl(
const bool _force);
61 protected:
virtual void Fini();
65 public: msgs::IMU ImuMessage()
const;
71 public: ignition::math::Vector3d AngularVelocity(
72 const bool _noiseFree =
false)
const;
79 public: ignition::math::Vector3d LinearAcceleration(
80 const bool _noiseFree =
false)
const;
89 public: ignition::math::Quaterniond Orientation()
const;
95 public:
void SetReferencePose();
98 public:
virtual bool IsActive()
const;
108 public:
void SetWorldToReferenceOrientation(
109 const ignition::math::Quaterniond &_orientation);
113 private:
void OnLinkData(ConstLinkDataPtr &_msg);
117 private: std::unique_ptr<ImuSensorPrivate> dataPtr;
ignition::math::Quaterniond Orientation() const
get orientation of the IMU relative to a reference pose Initially, the reference pose is the boot up ...
Forward declarations for the common classes.
Definition: Animation.hh:26
void SetWorldToReferenceOrientation(const ignition::math::Quaterniond &_orientation)
Sets the rotation transform from world frame to IMU's reference frame.
virtual bool UpdateImpl(const bool _force)
This gets overwritten by derived sensor types.
void Load(const std::string &_worldName, sdf::ElementPtr _sdf)
Load the sensor with SDF parameters.
ignition::math::Vector3d LinearAcceleration(const bool _noiseFree=false) const
Returns the imu linear acceleration in the IMU sensor local frame.
msgs::IMU ImuMessage() const
Returns the imu message.
virtual void Init()
Initialize the IMU.
void SetReferencePose()
Sets the current IMU pose as the reference NED pose, i.e.
virtual void Fini()
Finalize the sensor.
virtual ~ImuSensor()
Destructor.
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
Base class for sensors.
Definition: Sensor.hh:51
virtual bool IsActive() const
Returns true if sensor generation is active.
ignition::math::Vector3d AngularVelocity(const bool _noiseFree=false) const
Returns the angular velocity in the IMU sensor local frame.
An IMU sensor.
Definition: ImuSensor.hh:40