2
* Copyright (C) 2019 Open Source Robotics Foundation
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
8
* http://www.apache.org/licenses/LICENSE-2.0
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
17
#ifndef IGNITION_GAZEBO_SYSTEMS_IMU_HH_
18
#define IGNITION_GAZEBO_SYSTEMS_IMU_HH_
21
#include <ignition/gazebo/config.hh>
22
#include <ignition/gazebo/System.hh>
28
// Inline bracket to help doxygen filtering.
29
inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE {
32
// Forward declarations.
35
/// \class Imu Imu.hh ignition/gazebo/systems/Imu.hh
36
/// \brief This system manages all IMU sensors in simulation.
37
/// Each IMU sensor eports vertical position, angular velocity
38
/// and lienar acceleration readings over Ignition Transport.
41
public ISystemPreUpdate,
42
public ISystemPostUpdate
44
/// \brief Constructor
45
public: explicit Imu();
48
public: ~Imu() override;
50
/// Documentation inherited
51
public: void PreUpdate(const UpdateInfo &_info,
52
EntityComponentManager &_ecm) final;
54
/// Documentation inherited
55
public: void PostUpdate(const UpdateInfo &_info,
56
const EntityComponentManager &_ecm) final;
58
/// \brief Private data pointer.
59
private: std::unique_ptr<ImuPrivate> dataPtr;