SafetyImpedanceController.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
25
#include <
armarx/control/common/mp/JSMP.h
>
26
#include <
armarx/control/common/mp/MPPool.h
>
27
#include <
armarx/control/common/mp/TSMP.h
>
28
#include <
armarx/control/njoint_controller/task_space/SafetyImpedanceController.h
>
29
#include <armarx/control/njoint_mp_controller/task_space/ControllerInterface.h>
30
31
namespace
armarx::control::njoint_mp_controller::task_space
32
{
33
using namespace
armarx::control::njoint_controller::task_space
;
34
using namespace
armarx::control::common
;
35
36
/**
37
* @defgroup Library-NJointTSSafetyImpedanceMPController NJointTSSafetyImpedanceMPController
38
* @ingroup Library-RobotUnit-NJointControllers
39
* A description of the library NJointTSSafetyImpedanceMPController.
40
*
41
* @class NJointTSSafetyImpedanceMPController
42
* @ingroup Library-NJointTSSafetyImpedanceMPController
43
* @brief Brief description of class NJointTSSafetyImpedanceMPController.
44
*
45
* Detailed description of class NJointTSSafetyImpedanceMPController.
46
*/
47
class
NJointTSSafetyImpedanceMPController
:
48
virtual
public
NJointTaskspaceSafetyImpedanceController
,
49
virtual
public
mp::MPPool
,
50
virtual
public
NJointTSSafetyImpedanceMPControllerInterface
51
{
52
public
:
53
using
MPListConfig
= common::mp::arondto::MPListConfig;
54
55
NJointTSSafetyImpedanceMPController
(
const
RobotUnitPtr& robotUnit,
56
const
NJointControllerConfigPtr& config,
57
const
VirtualRobot::RobotPtr
&);
58
59
std::string getClassName(
const
Ice::Current& = Ice::emptyCurrent)
const override
;
60
61
void
updateMPConfig(
const ::armarx::aron::data::dto::DictPtr
& dto,
62
const
Ice::Current& iceCurrent = Ice::emptyCurrent)
override
;
63
::armarx::aron::data::dto::DictPtr
64
getMPConfig(
const
Ice::Current& iceCurrent = Ice::emptyCurrent)
override
;
65
66
void
additionalTask()
override
;
67
68
protected
:
69
/// this variable is only needed when constructing the MP instances, therefore you don't
70
/// need to use triple buffers
71
MPListConfig
mpConfig
;
72
73
protected
:
74
void
reInitMPInputOutputData();
75
void
limbNonRT(
ArmPtr
& arm);
76
77
private
:
78
// std::atomic<bool> isMPReady{false};
79
std::atomic<bool> additionalTaskRunning{
false
};
80
};
81
}
// namespace armarx::control::njoint_mp_controller::task_space
armarx::control::njoint_mp_controller::task_space::NJointTSSafetyImpedanceMPController
Brief description of class NJointTSSafetyImpedanceMPController.
Definition:
SafetyImpedanceController.h:47
TSMP.h
armarx::control::njoint_mp_controller::task_space::NJointTSSafetyImpedanceMPController::MPListConfig
common::mp::arondto::MPListConfig MPListConfig
Definition:
SafetyImpedanceController.h:53
JSMP.h
armarx::control::njoint_controller::task_space
Definition:
AdmittanceController.cpp:37
armarx::control::common
This file is part of ArmarX.
Definition:
aron_conversions.cpp:29
armarx::control::njoint_controller::task_space::NJointTaskspaceSafetyImpedanceController
Brief description of class NJointTaskspaceSafetyImpedanceController.
Definition:
SafetyImpedanceController.h:55
armarx::control::njoint_mp_controller::task_space::NJointTSSafetyImpedanceMPController::mpConfig
MPListConfig mpConfig
this variable is only needed when constructing the MP instances, therefore you don't need to use trip...
Definition:
SafetyImpedanceController.h:71
armarx::control::njoint_mp_controller::task_space
This file is part of ArmarX.
Definition:
AdmittanceController.cpp:26
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition:
Dict.h:41
SafetyImpedanceController.h
armarx::control::common::mp::MPPool
Definition:
MPPool.h:47
MPPool.h
armarx::control::njoint_controller::task_space::NJointTaskspaceSafetyImpedanceController::ArmPtr
std::unique_ptr< ArmData > ArmPtr
Definition:
SafetyImpedanceController.h:112
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition:
Bus.h:18
armarx::control::NJointTSSafetyImpedanceMPControllerInterface
Definition:
ControllerInterface.ice:77
armarx
control
njoint_mp_controller
task_space
SafetyImpedanceController.h
Generated on Sat Oct 12 2024 09:14:15 for armarx_documentation by
1.8.17