ImpedanceController.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 ...
17  * @author Jianfeng Gao ( jianfeng dot gao at kit dot edu )
18  * @date 2021
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 #pragma once
24 
29 #include <armarx/control/njoint_mp_controller/task_space/ControllerInterface.h>
30 #include <armarx/control/njoint_mp_controller/task_space/aron/NJointMPControllerConfig.aron.generated.h>
31 
32 
34 {
36  using namespace armarx::control::common;
37 
40  {
42  };
43 
44  /**
45  * @defgroup Library-NJointTSImpedanceMPController NJointTSImpedanceMPController
46  * @ingroup Library-RobotUnit-NJointControllers
47  * A description of the library NJointTSImpedanceMPController.
48  *
49  * @class NJointTSImpedanceMPController
50  * @ingroup Library-NJointTSImpedanceMPController
51  * @brief Brief description of class NJointTSImpedanceMPController.
52  *
53  * Detailed description of class NJointTSImpedanceMPController.
54  */
57  , virtual public mp::MPPool
59  {
60  public:
61  using AronDTO = arondto::TSImpedanceMPConfig;
63 
64  NJointTSImpedanceMPController(const RobotUnitPtr& robotUnit, const NJointControllerConfigPtr& config, const VirtualRobot::RobotPtr&);
65 
66  std::string getClassName(const Ice::Current&) const override;
67  void updateConfig(const ::armarx::aron::data::dto::DictPtr& dto,
68  const Ice::Current& iceCurrent = Ice::emptyCurrent) override;
69  void rtPreActivateController() override;
70  void additionalTask() override;
71 
72  protected:
75 
76  private:
77  std::atomic<bool> isMPReady{false};
78  };
79 }
armarx::control::njoint_controller::task_space::NJointTaskspaceImpedanceController
Brief description of class NJointTaskspaceImpedanceController.
Definition: ImpedanceController.h:52
TSMP.h
armarx::control::njoint_mp_controller::task_space::NJointTSImpedanceMPController
Brief description of class NJointTSImpedanceMPController.
Definition: ImpedanceController.h:55
JSMP.h
armarx::control::njoint_controller::task_space
Definition: AdmittanceController.cpp:35
armarx::control::NJointTSImpedanceMPControllerInterface
Definition: ControllerInterface.ice:162
armarx::control::common
This file is part of ArmarX.
Definition: aron_conversions.cpp:25
armarx::control::njoint_mp_controller::task_space::NJointTSImpedanceMPController::bufferUserToRt
TripleBuffer< BO > bufferUserToRt
Definition: ImpedanceController.h:74
armarx::control::njoint_mp_controller::task_space::NJointTSImpedanceMPController::bufferUserToAdditionalTask
TripleBuffer< BO > bufferUserToAdditionalTask
Definition: ImpedanceController.h:73
armarx::control::njoint_mp_controller::task_space::TSImpedanceMPConfig::mpConfig
mp::MP::MPListConfig mpConfig
Definition: ImpedanceController.h:41
armarx::control::njoint_mp_controller::task_space
This file is part of ArmarX.
Definition: AdmittanceController.cpp:28
armarx::control::njoint_controller::task_space::NJointTaskspaceImpedanceController::BO
law::TaskspaceImpedanceController::Config BO
Definition: ImpedanceController.h:59
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition: Dict.h:41
armarx::control::common::mp::MP::MPListConfig
Definition: MP.h:102
armarx::control::njoint_controller::task_space::NJointTaskspaceImpedanceController::AronDTO
law::arondto::TaskspaceImpedanceControllerConfig AronDTO
Definition: ImpedanceController.h:58
armarx::control::common::mp::MPPool
Definition: MPPool.h:45
ImpedanceController.h
MPPool.h
armarx::control::njoint_mp_controller::task_space::TSImpedanceMPConfig
Definition: ImpedanceController.h:38
armarx::control::common::control_law::TaskspaceImpedanceController::Config
you can set the following values from outside of the rt controller via Ice interfaces
Definition: TaskspaceImpedanceController.h:42
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:18
armarx::TripleBuffer< BO >