diff --git a/source/RobotAPI/interface/CMakeLists.txt b/source/RobotAPI/interface/CMakeLists.txt index bc9e81e3ed47da9b47fdf570caf549ee1fce7e65..2c7d5ff0de9c729009d7b540c31bb5842e610cc0 100644 --- a/source/RobotAPI/interface/CMakeLists.txt +++ b/source/RobotAPI/interface/CMakeLists.txt @@ -81,6 +81,10 @@ set(SLICE_FILES units/RobotUnit/NJointTaskSpaceDMPController.ice units/RobotUnit/NJointBimanualForceMPController.ice + units/RobotUnit/NjointZeroTorqueController.ice + units/RobotUnit/NJointCurrentController.ice + units/RobotUnit/NJointActiveImpedanceController.ice + units/RobotUnit/DSControllerBase.ice units/RobotUnit/TaskSpaceActiveImpedanceControl.ice diff --git a/source/RobotAPI/interface/units/RobotUnit/NJointActiveImpedanceController.ice b/source/RobotAPI/interface/units/RobotUnit/NJointActiveImpedanceController.ice new file mode 100644 index 0000000000000000000000000000000000000000..da687c5d0dd5770d34be1ed680d81f2711543606 --- /dev/null +++ b/source/RobotAPI/interface/units/RobotUnit/NJointActiveImpedanceController.ice @@ -0,0 +1,49 @@ +/* + * This file is part of ArmarX. + * + * ArmarX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * ArmarX is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @package RobotAPI::NJointControllerInterface + * @author Mirko Waechter ( mirko dot waechter at kit dot edu ) + * @date 2017 + * @copyright http://www.gnu.org/licenses/gpl-2.0.txt + * GNU General Public License + */ + +#pragma once + +#include <RobotAPI/interface/units/RobotUnit/NJointController.ice> +#include <RobotAPI/interface/core/Trajectory.ice> + +module armarx +{ + + module RobotUnitControllerNames + { + const string NJointActiveImpedanceController = "NJointActiveImpedanceController"; + }; + + class NJointActiveImpedanceControllerConfig extends NJointControllerConfig + { + float position = 0; + float kp = 0; + float kd = 0; + string deviceName; + }; + + + interface NJointActiveImpedanceControllerInterface extends NJointControllerInterface + { + void setControllerTarget(float position, float kp, float kd); + }; +}; diff --git a/source/RobotAPI/interface/units/RobotUnit/NJointCurrentController.ice b/source/RobotAPI/interface/units/RobotUnit/NJointCurrentController.ice new file mode 100644 index 0000000000000000000000000000000000000000..06e648137cca85c6cd913cc5377e247188d196a5 --- /dev/null +++ b/source/RobotAPI/interface/units/RobotUnit/NJointCurrentController.ice @@ -0,0 +1,47 @@ +/* + * This file is part of ArmarX. + * + * ArmarX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * ArmarX is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @package RobotAPI::NJointControllerInterface + * @author Mirko Waechter ( mirko dot waechter at kit dot edu ) + * @date 2017 + * @copyright http://www.gnu.org/licenses/gpl-2.0.txt + * GNU General Public License + */ + +#pragma once + +#include <RobotAPI/interface/units/RobotUnit/NJointController.ice> +#include <RobotAPI/interface/core/Trajectory.ice> + +module armarx +{ + + module RobotUnitControllerNames + { + const string NJointCurrentController = "NJointCurrentController"; + }; + + class NJointCurrentControllerConfig extends NJointControllerConfig + { + float current = 0; + string deviceName; + }; + + + interface NJointCurrentControllerInterface extends NJointControllerInterface + { + void setControllerTarget(float current); + }; +}; diff --git a/source/RobotAPI/interface/units/RobotUnit/NjointZeroTorqueController.ice b/source/RobotAPI/interface/units/RobotUnit/NjointZeroTorqueController.ice new file mode 100644 index 0000000000000000000000000000000000000000..ed1c98692abf97bfc03e73ac9e75fc02639b4c8a --- /dev/null +++ b/source/RobotAPI/interface/units/RobotUnit/NjointZeroTorqueController.ice @@ -0,0 +1,46 @@ +/* + * This file is part of ArmarX. + * + * ArmarX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * ArmarX is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @package RobotAPI::NJointControllerInterface + * @author Mirko Waechter ( mirko dot waechter at kit dot edu ) + * @date 2017 + * @copyright http://www.gnu.org/licenses/gpl-2.0.txt + * GNU General Public License + */ + +#pragma once + +#include <RobotAPI/interface/units/RobotUnit/NJointController.ice> + +module armarx +{ + + module RobotUnitControllerNames + { + const string NJointZeroTorqueController = "NJointZeroTorqueController"; + }; + + class NJointZeroTorqueControllerConfig extends NJointControllerConfig + { + Ice::StringSeq jointNames; + float maxTorque = 10.0f; + }; + + + interface NJointZeroTorqueControllerInterface extends NJointControllerInterface + { + void setControllerTarget(Ice::FloatSeq targetTorques); + }; +};