CartesianAdmittanceControllerInterface.ice
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::NJointControllerInterface
17  * @author Mirko Waechter ( mirko dot waechter 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 
25 #include <ArmarXCore/interface/serialization/Eigen.ice>
26 
27 #include <RobotAPI/interface/units/RobotUnit/NJointController.ice>
28 #include <RobotAPI/interface/core/Trajectory.ice>
29 
30 module armarx
31 {
32  module detail
33  {
34  module NJBmanCartAdmCtrl
35  {
36  struct Box
37  {
38  // Eigen::Matrix4f initialpose;
39  // Eigen::Vector3f velXYZ;
40  // Eigen::Vector3f velRPY;
41  float width;
42  };
43 
44  struct Nullspace
45  {
46  Ice::FloatSeq desiredJointValuesLeft;
47  Ice::FloatSeq desiredJointValuesRight;
48  float k;
49  float d;
50  };
51  struct Impedance
52  {
53  Eigen::Vector3f KpXYZ;
54  Eigen::Vector3f KpRPY;
55  Eigen::Vector3f KdXYZ;
56  Eigen::Vector3f KdRPY;
57  };
58  struct Admittance
59  {
60  Eigen::Vector3f KpXYZ;
61  Eigen::Vector3f KpRPY;
62  Eigen::Vector3f KdXYZ;
63  Eigen::Vector3f KdRPY;
64  Eigen::Vector3f KmXYZ;
65  Eigen::Vector3f KmRPY;
66  };
67  struct Force
68  {
69  Eigen::Vector3f wrenchXYZ;
70  Eigen::Vector3f wrenchRPY;
71 
72  // static compensation
73  float mass;
74  Eigen::Vector3f com;
75  Eigen::Vector3f offsetForce;
76  Eigen::Vector3f offsetTorque;
77 
78  Eigen::Vector3f forceThreshold;
79  };
80  };
81  };
82 
83  class NJointBimanualCartesianAdmittanceControllerConfig extends NJointControllerConfig
84  {
92 
93  float filterCoeff;
94  float torqueLimit;
96 
99  string ftSensorRight;
100  string ftSensorLeft;
103  };
104 
105  interface NJointBimanualCartesianAdmittanceControllerInterface extends NJointControllerInterface
106  {
107  // bool isAtGoal();
108  // void runDMP(Ice::DoubleSeq goals, double timeDuration);
109  // void runDMPWithVirtualStart(Ice::DoubleSeq starts, Ice::DoubleSeq goals, double timeDuration);
110 
111  // // void setViaPoints(double canVal, Ice::DoubleSeq point);
112  // void setGoals(Ice::DoubleSeq goals);
113  // void setViaPoints(double u, Ice::DoubleSeq viapoint);
115  void setDesiredJointValuesLeft(Ice::FloatSeq cfg);
116  void setDesiredJointValuesRight(Ice::FloatSeq cfg);
117  void setNullspaceConfig(detail::NJBmanCartAdmCtrl::Nullspace nullspace);
118  void setAdmittanceConfig(detail::NJBmanCartAdmCtrl::Admittance admittanceObject);
121 
122  ["cpp:const"] Eigen::Matrix4f getBoxPose();
123  void setBoxPose(Eigen::Matrix4f pose);
124  void setBoxWidth(float w);
125  void setBoxVelocity(Eigen::Vector3f velXYZ, Eigen::Vector3f velRPY);
126  void setBoxPoseAndVelocity(Eigen::Matrix4f pose,
127  Eigen::Vector3f velXYZ,
128  Eigen::Vector3f velRPY);
129  void moveBoxPose(Eigen::Matrix4f pose);
130  void moveBoxPosition(Eigen::Vector3f pos);
131 
132  /*
133  Eigen::Matrix4f initialpose;
134  // Eigen::Vector3f velXYZ;
135  // Eigen::Vector3f velRPY;
136  */
137  };
138 
139 
140 
141 };
142 
armarx::detail::NJBmanCartAdmCtrl::Admittance::KmRPY
Eigen::Vector3f KmRPY
Definition: CartesianAdmittanceControllerInterface.ice:65
armarx::detail::NJBmanCartAdmCtrl::Nullspace
Definition: CartesianAdmittanceControllerInterface.ice:44
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftSensorLeft
string ftSensorLeft
Definition: CartesianAdmittanceControllerInterface.ice:100
armarx::detail::NJBmanCartAdmCtrl::Impedance::KpRPY
Eigen::Vector3f KpRPY
Definition: CartesianAdmittanceControllerInterface.ice:54
set
set(LIB_NAME RobotAPINJointControllers) armarx_component_set_name("$
Definition: _CMakeLists.txt:1
armarx::detail::NJBmanCartAdmCtrl::Admittance
Definition: CartesianAdmittanceControllerInterface.ice:58
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftCalibrationTime
double ftCalibrationTime
Definition: CartesianAdmittanceControllerInterface.ice:95
armarx::NJointBimanualCartesianAdmittanceControllerConfig
Definition: CartesianAdmittanceControllerInterface.ice:83
VirtualRobot
Definition: FramedPose.h:43
armarx::detail::NJBmanCartAdmCtrl::Force::offsetTorque
Eigen::Vector3f offsetTorque
Definition: CartesianAdmittanceControllerInterface.ice:76
armarx::NJointBimanualCartesianAdmittanceControllerConfig::nullspace
detail::NJBmanCartAdmCtrl::Nullspace nullspace
Definition: CartesianAdmittanceControllerInterface.ice:86
armarx::detail::NJBmanCartAdmCtrl::Admittance::KdXYZ
Eigen::Vector3f KdXYZ
Definition: CartesianAdmittanceControllerInterface.ice:62
armarx::detail::NJBmanCartAdmCtrl::Force::mass
float mass
Definition: CartesianAdmittanceControllerInterface.ice:73
armarx::NJointBimanualCartesianAdmittanceControllerInterface
Definition: CartesianAdmittanceControllerInterface.ice:105
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftSensorRight
string ftSensorRight
Definition: CartesianAdmittanceControllerInterface.ice:99
detail
Definition: OpenCVUtil.cpp:127
target_include_directories
target_include_directories(StatechartViewerGuiPlugin SYSTEM PUBLIC ${Graphviz_INCLUDE_DIR}) target_include_directories(StatechartViewerGuiPlugin SYSTEM PUBLIC $
Definition: CMakeLists.txt:132
armarx::detail::NJBmanCartAdmCtrl::Force
Definition: CartesianAdmittanceControllerInterface.ice:67
armarx::NJointBimanualCartesianAdmittanceControllerConfig::filterCoeff
float filterCoeff
Definition: CartesianAdmittanceControllerInterface.ice:93
armarx::NJointBimanualCartesianAdmittanceControllerConfig::admittanceObject
detail::NJBmanCartAdmCtrl::Admittance admittanceObject
Definition: CartesianAdmittanceControllerInterface.ice:89
armarx::detail::NJBmanCartAdmCtrl::Force::wrenchRPY
Eigen::Vector3f wrenchRPY
Definition: CartesianAdmittanceControllerInterface.ice:70
armarx::detail::NJBmanCartAdmCtrl::Force::com
Eigen::Vector3f com
Definition: CartesianAdmittanceControllerInterface.ice:74
armarx_set_target
armarx_set_target("Library: ${LIB_NAME}") armarx_build_if(DMP_FOUND "DMP not available") set(LIBS RobotAPIInterfaces ArmarXCoreObservers ArmarXCoreStatechart ArmarXCoreEigen3Variants RobotUnit dmp) set(LIB_FILES) set(LIB_HEADERS) message(STATUS "DMP libraries is $
Definition: _CMakeLists.txt:4
armarx::detail::NJBmanCartAdmCtrl::Force::wrenchXYZ
Eigen::Vector3f wrenchXYZ
Definition: CartesianAdmittanceControllerInterface.ice:69
armarx::NJointBimanualCartesianAdmittanceControllerConfig::box
detail::NJBmanCartAdmCtrl::Box box
Definition: CartesianAdmittanceControllerInterface.ice:85
armarx::detail::NJBmanCartAdmCtrl::Impedance::KdRPY
Eigen::Vector3f KdRPY
Definition: CartesianAdmittanceControllerInterface.ice:56
armarx::detail::NJBmanCartAdmCtrl::Nullspace::desiredJointValuesLeft
Ice::FloatSeq desiredJointValuesLeft
Definition: CartesianAdmittanceControllerInterface.ice:46
armarx::detail::NJBmanCartAdmCtrl::Box::width
float width
Definition: CartesianAdmittanceControllerInterface.ice:41
armarx::detail::NJBmanCartAdmCtrl::Nullspace::k
float k
Definition: CartesianAdmittanceControllerInterface.ice:48
armarx_add_library
DMPController armarx_add_library("${LIB_NAME}" "${LIB_FILES}" "${LIB_HEADERS}" "${LIBS}") if(DMP_FOUND) target_include_directories("$
Definition: _CMakeLists.txt:52
if
DMPController Eigen3::Eigen if(DMP_FOUND) target_include_directories(armarx_control
Definition: _CMakeLists.txt:38
armarx::detail::NJBmanCartAdmCtrl::Impedance::KpXYZ
Eigen::Vector3f KpXYZ
Definition: CartesianAdmittanceControllerInterface.ice:53
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftSensorLeftFrame
string ftSensorLeftFrame
Definition: CartesianAdmittanceControllerInterface.ice:102
endif
endif() find_package(Simox QUIET) armarx_build_if(Simox_FOUND "Simox not available") if(Simox_FOUND) include_directories($
Definition: CMakeLists.txt:10
armarx::detail::NJBmanCartAdmCtrl::Admittance::KpXYZ
Eigen::Vector3f KpXYZ
Definition: CartesianAdmittanceControllerInterface.ice:60
armarx::detail::NJBmanCartAdmCtrl::Force::forceThreshold
Eigen::Vector3f forceThreshold
Definition: CartesianAdmittanceControllerInterface.ice:78
armarx_component_set_name
armarx_component_set_name("ArmarXTimeserverApp") set(COMPONENT_LIBS ArmarXCoreInterfaces ArmarXCore) set(EXE_SOURCE ArmarXTimeserver.h ArmarXTimeserver.cpp main.cpp) armarx_add_component_executable("$
Definition: CMakeLists.txt:1
armarx::detail::NJBmanCartAdmCtrl::Box
Definition: CartesianAdmittanceControllerInterface.ice:36
armarx::detail::NJBmanCartAdmCtrl::Impedance
Definition: CartesianAdmittanceControllerInterface.ice:51
armarx::NJointBimanualCartesianAdmittanceControllerConfig::impedanceRight
detail::NJBmanCartAdmCtrl::Impedance impedanceRight
Definition: CartesianAdmittanceControllerInterface.ice:88
armarx::NJointBimanualCartesianAdmittanceControllerConfig::kinematicChainLeft
string kinematicChainLeft
Definition: CartesianAdmittanceControllerInterface.ice:98
armarx::detail::NJBmanCartAdmCtrl::Force::offsetForce
Eigen::Vector3f offsetForce
Definition: CartesianAdmittanceControllerInterface.ice:75
armarx::NJointBimanualCartesianAdmittanceControllerConfig::forceLeft
detail::NJBmanCartAdmCtrl::Force forceLeft
Definition: CartesianAdmittanceControllerInterface.ice:90
armarx::detail::NJBmanCartAdmCtrl::Admittance::KmXYZ
Eigen::Vector3f KmXYZ
Definition: CartesianAdmittanceControllerInterface.ice:64
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
armarx_build_if
armarx_build_if(DMP_FOUND "DMP not available") armarx_add_library(LIB_NAME NJointController_BimanualForce SOURCES NJointBimanualCartesianAdmittanceController.cpp NJointBimanualForceController.cpp NJointBimanualObjLevelController.cpp NJointBimanualObjLevelMultiMPController.cpp NJointBimanualObjLevelVelController.cpp HEADERS NJointBimanualCartesianAdmittanceController.h NJointBimanualForceController.h NJointBimanualObjLevelController.h NJointBimanualObjLevelMultiMPController.h NJointBimanualObjLevelVelController.h LIBS ArmarXCoreInterfaces ArmarXCore RobotAPIInterfaces RobotAPICore RobotAPIUnits ArmarXCoreObservers ArmarXCoreStatechart ArmarXCoreEigen3Variants VirtualRobot Saba SimDynamics RobotUnit BimanualForceControlInterfaces $
Definition: _CMakeLists.txt:2
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftSensorRightFrame
string ftSensorRightFrame
Definition: CartesianAdmittanceControllerInterface.ice:101
armarx::NJointBimanualCartesianAdmittanceControllerConfig::forceRight
detail::NJBmanCartAdmCtrl::Force forceRight
Definition: CartesianAdmittanceControllerInterface.ice:91
armarx::NJointBimanualCartesianAdmittanceControllerConfig::torqueLimit
float torqueLimit
Definition: CartesianAdmittanceControllerInterface.ice:94
armarx::detail::NJBmanCartAdmCtrl::Admittance::KdRPY
Eigen::Vector3f KdRPY
Definition: CartesianAdmittanceControllerInterface.ice:63
armarx::NJointBimanualCartesianAdmittanceControllerConfig::impedanceLeft
detail::NJBmanCartAdmCtrl::Impedance impedanceLeft
Definition: CartesianAdmittanceControllerInterface.ice:87
armarx::detail::NJBmanCartAdmCtrl::Admittance::KpRPY
Eigen::Vector3f KpRPY
Definition: CartesianAdmittanceControllerInterface.ice:61
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::detail::NJBmanCartAdmCtrl::Impedance::KdXYZ
Eigen::Vector3f KdXYZ
Definition: CartesianAdmittanceControllerInterface.ice:55
armarx::NJointBimanualCartesianAdmittanceControllerConfig::kinematicChainRight
string kinematicChainRight
Definition: CartesianAdmittanceControllerInterface.ice:97
armarx::detail::NJBmanCartAdmCtrl::Nullspace::desiredJointValuesRight
Ice::FloatSeq desiredJointValuesRight
Definition: CartesianAdmittanceControllerInterface.ice:47
armarx::detail::NJBmanCartAdmCtrl::Nullspace::d
float d
Definition: CartesianAdmittanceControllerInterface.ice:49