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/core/Trajectory.ice>
28 #include <RobotAPI/interface/units/RobotUnit/NJointController.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 
52  struct Impedance
53  {
54  Eigen::Vector3f KpXYZ;
55  Eigen::Vector3f KpRPY;
56  Eigen::Vector3f KdXYZ;
57  Eigen::Vector3f KdRPY;
58  };
59 
60  struct Admittance
61  {
62  Eigen::Vector3f KpXYZ;
63  Eigen::Vector3f KpRPY;
64  Eigen::Vector3f KdXYZ;
65  Eigen::Vector3f KdRPY;
66  Eigen::Vector3f KmXYZ;
67  Eigen::Vector3f KmRPY;
68  };
69 
70  struct Force
71  {
72  Eigen::Vector3f wrenchXYZ;
73  Eigen::Vector3f wrenchRPY;
74 
75  // static compensation
76  float mass;
77  Eigen::Vector3f com;
78  Eigen::Vector3f offsetForce;
79  Eigen::Vector3f offsetTorque;
80 
81  Eigen::Vector3f forceThreshold;
82  };
83  };
84  };
85 
86  class NJointBimanualCartesianAdmittanceControllerConfig extends NJointControllerConfig
87  {
95 
96  float filterCoeff;
97  float torqueLimit;
99 
103  string ftSensorLeft;
106  };
107 
108  interface NJointBimanualCartesianAdmittanceControllerInterface extends NJointControllerInterface
109  {
110  // bool isAtGoal();
111  // void runDMP(Ice::DoubleSeq goals, double timeDuration);
112  // void runDMPWithVirtualStart(Ice::DoubleSeq starts, Ice::DoubleSeq goals, double timeDuration);
113 
114  // // void setViaPoints(double canVal, Ice::DoubleSeq point);
115  // void setGoals(Ice::DoubleSeq goals);
116  // void setViaPoints(double u, Ice::DoubleSeq viapoint);
118  void setDesiredJointValuesLeft(Ice::FloatSeq cfg);
119  void setDesiredJointValuesRight(Ice::FloatSeq cfg);
120  void setNullspaceConfig(detail::NJBmanCartAdmCtrl::Nullspace nullspace);
121  void setAdmittanceConfig(detail::NJBmanCartAdmCtrl::Admittance admittanceObject);
122  void setForceConfig(detail::NJBmanCartAdmCtrl::Force left,
124  void setImpedanceConfig(detail::NJBmanCartAdmCtrl::Impedance left,
126 
127  ["cpp:const"] Eigen::Matrix4f getBoxPose();
128  void setBoxPose(Eigen::Matrix4f pose);
129  void setBoxWidth(float w);
130  void setBoxVelocity(Eigen::Vector3f velXYZ, Eigen::Vector3f velRPY);
131  void setBoxPoseAndVelocity(
132  Eigen::Matrix4f pose, Eigen::Vector3f velXYZ, Eigen::Vector3f velRPY);
133  void moveBoxPose(Eigen::Matrix4f pose);
134  void moveBoxPosition(Eigen::Vector3f pos);
135 
136  /*
137  Eigen::Matrix4f initialpose;
138  // Eigen::Vector3f velXYZ;
139  // Eigen::Vector3f velRPY;
140  */
141  };
142 };
armarx::detail::NJBmanCartAdmCtrl::Admittance::KmRPY
Eigen::Vector3f KmRPY
Definition: CartesianAdmittanceControllerInterface.ice:67
armarx::detail::NJBmanCartAdmCtrl::Nullspace
Definition: CartesianAdmittanceControllerInterface.ice:44
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftSensorLeft
string ftSensorLeft
Definition: CartesianAdmittanceControllerInterface.ice:103
armarx::detail::NJBmanCartAdmCtrl::Impedance::KpRPY
Eigen::Vector3f KpRPY
Definition: CartesianAdmittanceControllerInterface.ice:55
set
set(LIB_NAME RobotAPINJointControllers) armarx_component_set_name("$
Definition: _CMakeLists.txt:1
armarx::detail::NJBmanCartAdmCtrl::Admittance
Definition: CartesianAdmittanceControllerInterface.ice:60
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftCalibrationTime
double ftCalibrationTime
Definition: CartesianAdmittanceControllerInterface.ice:98
armarx::NJointBimanualCartesianAdmittanceControllerConfig
Definition: CartesianAdmittanceControllerInterface.ice:86
VirtualRobot
Definition: FramedPose.h:42
DMP
Definition: NJointTaskSpaceAdaptiveDMPController.h:24
armarx::detail::NJBmanCartAdmCtrl::Force::offsetTorque
Eigen::Vector3f offsetTorque
Definition: CartesianAdmittanceControllerInterface.ice:79
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:650
armarx::NJointBimanualCartesianAdmittanceControllerConfig::nullspace
detail::NJBmanCartAdmCtrl::Nullspace nullspace
Definition: CartesianAdmittanceControllerInterface.ice:89
armarx::detail::NJBmanCartAdmCtrl::Admittance::KdXYZ
Eigen::Vector3f KdXYZ
Definition: CartesianAdmittanceControllerInterface.ice:64
armarx::detail::NJBmanCartAdmCtrl::Force::mass
float mass
Definition: CartesianAdmittanceControllerInterface.ice:76
armarx::NJointBimanualCartesianAdmittanceControllerInterface
Definition: CartesianAdmittanceControllerInterface.ice:108
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftSensorRight
string ftSensorRight
Definition: CartesianAdmittanceControllerInterface.ice:102
detail
Definition: OpenCVUtil.cpp:128
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:70
armarx::NJointBimanualCartesianAdmittanceControllerConfig::filterCoeff
float filterCoeff
Definition: CartesianAdmittanceControllerInterface.ice:96
armarx::NJointBimanualCartesianAdmittanceControllerConfig::admittanceObject
detail::NJBmanCartAdmCtrl::Admittance admittanceObject
Definition: CartesianAdmittanceControllerInterface.ice:92
armarx::detail::NJBmanCartAdmCtrl::Force::wrenchRPY
Eigen::Vector3f wrenchRPY
Definition: CartesianAdmittanceControllerInterface.ice:73
armarx::detail::NJBmanCartAdmCtrl::Force::com
Eigen::Vector3f com
Definition: CartesianAdmittanceControllerInterface.ice:77
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:72
armarx::NJointBimanualCartesianAdmittanceControllerConfig::box
detail::NJBmanCartAdmCtrl::Box box
Definition: CartesianAdmittanceControllerInterface.ice:88
armarx::detail::NJBmanCartAdmCtrl::Impedance::KdRPY
Eigen::Vector3f KdRPY
Definition: CartesianAdmittanceControllerInterface.ice:57
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:54
armarx::NJointBimanualCartesianAdmittanceControllerConfig::ftSensorLeftFrame
string ftSensorLeftFrame
Definition: CartesianAdmittanceControllerInterface.ice:105
armarx::detail::NJBmanCartAdmCtrl::Admittance::KpXYZ
Eigen::Vector3f KpXYZ
Definition: CartesianAdmittanceControllerInterface.ice:62
armarx::detail::NJBmanCartAdmCtrl::Force::forceThreshold
Eigen::Vector3f forceThreshold
Definition: CartesianAdmittanceControllerInterface.ice:81
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:52
armarx::NJointBimanualCartesianAdmittanceControllerConfig::impedanceRight
detail::NJBmanCartAdmCtrl::Impedance impedanceRight
Definition: CartesianAdmittanceControllerInterface.ice:91
armarx::NJointBimanualCartesianAdmittanceControllerConfig::kinematicChainLeft
string kinematicChainLeft
Definition: CartesianAdmittanceControllerInterface.ice:101
armarx::detail::NJBmanCartAdmCtrl::Force::offsetForce
Eigen::Vector3f offsetForce
Definition: CartesianAdmittanceControllerInterface.ice:78
armarx::NJointBimanualCartesianAdmittanceControllerConfig::forceLeft
detail::NJBmanCartAdmCtrl::Force forceLeft
Definition: CartesianAdmittanceControllerInterface.ice:93
armarx::detail::NJBmanCartAdmCtrl::Admittance::KmXYZ
Eigen::Vector3f KmXYZ
Definition: CartesianAdmittanceControllerInterface.ice:66
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:104
armarx::NJointBimanualCartesianAdmittanceControllerConfig::forceRight
detail::NJBmanCartAdmCtrl::Force forceRight
Definition: CartesianAdmittanceControllerInterface.ice:94
armarx::NJointBimanualCartesianAdmittanceControllerConfig::torqueLimit
float torqueLimit
Definition: CartesianAdmittanceControllerInterface.ice:97
armarx::detail::NJBmanCartAdmCtrl::Admittance::KdRPY
Eigen::Vector3f KdRPY
Definition: CartesianAdmittanceControllerInterface.ice:65
endif
endif() find_package(Simox QUIET) armarx_build_if(Simox_FOUND "Simox not available") find_package(PythonLibs 3.6 QUIET) armarx_build_if(PYTHONLIBS_FOUND "Python libs not available") if(PYTHONLIBS_FOUND) include_directories($
Definition: CMakeLists.txt:10
armarx::NJointBimanualCartesianAdmittanceControllerConfig::impedanceLeft
detail::NJBmanCartAdmCtrl::Impedance impedanceLeft
Definition: CartesianAdmittanceControllerInterface.ice:90
armarx::detail::NJBmanCartAdmCtrl::Admittance::KpRPY
Eigen::Vector3f KpRPY
Definition: CartesianAdmittanceControllerInterface.ice:63
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::detail::NJBmanCartAdmCtrl::Impedance::KdXYZ
Eigen::Vector3f KdXYZ
Definition: CartesianAdmittanceControllerInterface.ice:56
armarx::NJointBimanualCartesianAdmittanceControllerConfig::kinematicChainRight
string kinematicChainRight
Definition: CartesianAdmittanceControllerInterface.ice:100
armarx::detail::NJBmanCartAdmCtrl::Nullspace::desiredJointValuesRight
Ice::FloatSeq desiredJointValuesRight
Definition: CartesianAdmittanceControllerInterface.ice:47
armarx::detail::NJBmanCartAdmCtrl::Nullspace::d
float d
Definition: CartesianAdmittanceControllerInterface.ice:49