InertialMeasurementSubUnit.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @package RobotAPI::ArmarXObjects::InertialMeasurementSubUnit
17  * @author Raphael ( raphael dot grimm at kit dot edu )
18  * @date 2017
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 #pragma once
24 
26 
28 
29 #include "../SensorValues/SensorValueIMU.h"
30 #include "RobotUnitSubUnit.h"
31 
32 namespace armarx
33 {
34  TYPEDEF_PTRS_HANDLE(InertialMeasurementSubUnit);
35 
37  virtual public RobotUnitSubUnit,
38  virtual public InertialMeasurementUnit
39  {
40  public:
41  void update(const SensorAndControl& sc, const JointAndNJointControllers& c) override;
42 
43  // InertialMeasurementUnit interface
44  protected:
45  void
46  onInitIMU() override
47  {
48  }
49 
50  void onStartIMU() override;
51 
52  void
53  onExitIMU() override
54  {
55  }
56 
57  public:
58  std::map<std::string, std::size_t> devs;
59  };
60 } // namespace armarx
armarx::InertialMeasurementSubUnit::update
void update(const SensorAndControl &sc, const JointAndNJointControllers &c) override
Definition: InertialMeasurementSubUnit.cpp:33
armarx::JointAndNJointControllers
Structure used by the RobotUnit to swap lists of Joint and NJoint controllers.
Definition: JointAndNJointControllers.h:32
armarx::TYPEDEF_PTRS_HANDLE
TYPEDEF_PTRS_HANDLE(NJointCartesianNaturalPositionController)
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:43
armarx::RobotUnitSubUnit
Definition: RobotUnitSubUnit.h:35
armarx::detail::ControlThreadOutputBufferEntry
Definition: ControlThreadOutputBuffer.h:177
armarx::InertialMeasurementSubUnit::onStartIMU
void onStartIMU() override
Definition: InertialMeasurementSubUnit.cpp:27
armarx::InertialMeasurementSubUnit
Definition: InertialMeasurementSubUnit.h:36
InertialMeasurementUnit.h
TimestampVariant.h
armarx::InertialMeasurementSubUnit::devs
std::map< std::string, std::size_t > devs
Definition: InertialMeasurementSubUnit.h:58
armarx::InertialMeasurementSubUnit::onInitIMU
void onInitIMU() override
Definition: InertialMeasurementSubUnit.h:46
RobotUnitSubUnit.h
armarx::InertialMeasurementUnit
Base unit for IMU sensors.
Definition: InertialMeasurementUnit.h:55
armarx::InertialMeasurementSubUnit::onExitIMU
void onExitIMU() override
Definition: InertialMeasurementSubUnit.h:53
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28