25#include <SimoxUtility/math/convert/mat4f_to_pos.h>
26#include <SimoxUtility/math/convert/mat4f_to_quat.h>
27#include <SimoxUtility/math/convert/pos_quat_to_mat4f.h>
29#include <ArmarXCore/interface/serialization/Eigen/Eigen_fdi.h>
37#define TS6_DIM_N (MAX_N * 6)
38#define TS7_DIM_N (MAX_N * 7)
40#define MAX_JS_DIM_N (MAX_N * MAX_JS_DIM)
42#define MAX_HC_DIM_N (MAX_N * MAX_HC_DIM)
115 template <
typename NJo
intTaskspaceController>
118 { std::declval<typename NJointTaskspaceController::Config>().kpImpedance };
121 template <
typename NJo
intTaskspaceController>
126 const armarx::NJointControllerConfigPtr& config,
137 return "NJointSharedMemoryTaskspaceUnknownController";
143 unsigned int index)
const
151 unsigned int index)
const
171 unsigned int index)
const
175 writeData.kpImpedance + (
index * 6), config.kpImpedance.data(),
sizeof(
float) * 6);
177 writeData.kdImpedance + (
index * 6), config.kdImpedance.data(),
sizeof(
float) * 6);
183 unsigned int index)
const
187 config.kpImpedance.data(), readData.kpImpedance + (
index * 6),
sizeof(
float) * 6);
190 config.kdImpedance.data(), readData.kdImpedance + (
index * 6),
sizeof(
float) * 6);
204 currentCoordinatedPose.head(3) =
205 simox::math::mat4f_to_pos(this->
coordinator->dataNonRt.currentPose);
206 currentCoordinatedPose.tail(4) =
207 simox::math::mat4f_to_quat(this->
coordinator->dataNonRt.currentPose)
209 std::memcpy(writeData.currentCoordinatedPose,
210 currentCoordinatedPose.data(),
223 Eigen::Map<const Eigen::Matrix<float, 7, 1>> desiredCoordinatedPose(
224 readData.desiredCoordinatedPose);
225 const Eigen::Vector3f& pos = desiredCoordinatedPose.head(3);
226 const Eigen::Vector4f& orientation = desiredCoordinatedPose.tail(4);
227 const Eigen::Matrix4f pose =
std::unique_ptr< SharedMemoryReader< FromSharedMemory > > reader
void writeAdditonalDataToSM(ToSharedMemory &writeData, const typename NJointTaskspaceController::Config &config, unsigned int index) const
void readAdditonalDataFromSM(const FromSharedMemory &readData, typename NJointTaskspaceController::Config &config, unsigned int index) const
void writeAdditonalDataToSM(ToSharedMemory &writeData, const typename NJointTaskspaceController::Config &config, unsigned int index) const
void writeCoordinatorDataToSM(ToSharedMemory &writeData) const
void additionalTask() final
void readCoordinatorDataFromSM(const FromSharedMemory &readData)
NJointSharedMemoryTaskspaceController(const armarx::RobotUnitPtr &robotUnit, const armarx::NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &robot)
void readCoordinatorDataFromSM(const FromSharedMemory &readData)
void readAdditonalDataFromSM(const FromSharedMemory &readData, typename NJointTaskspaceController::Config &config, unsigned int index) const
std::string getClassName(const Ice::Current &) const final
std::unique_ptr< SharedMemoryWriter< ToSharedMemory > > writer
void writeCoordinatorDataToSM(ToSharedMemory &writeData) const
std::shared_ptr< common::coordination::SyncCoordination > coordinator
NJointTaskspaceController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
typename NJointTaskspaceControllerType::Config Config
Quaternion< float, 0 > Quaternionf
std::shared_ptr< class Robot > RobotPtr
IceUtil::Handle< class RobotUnit > RobotUnitPtr
float kpImpedance[TS6_DIM_N]
float desiredHandConfig[MAX_HC_DIM_N]
float desiredTwist[TS6_DIM_N]
float kdImpedance[TS6_DIM_N]
float desiredCoordinatedPose[7]
float desiredJointAngles[MAX_JS_DIM_N]
float desiredPose[TS7_DIM_N]
float kpImpedance[TS6_DIM_N]
float currentJointVelocities[MAX_JS_DIM_N]
float currentTwist[TS6_DIM_N]
float currentForceTorque[TS6_DIM_N]
float currentCoordinatedPose[7]
float currentPose[TS7_DIM_N]
float currentDesiredPose[TS7_DIM_N]
float kdImpedance[TS6_DIM_N]
float currentHandConfig[MAX_HC_DIM_N]
float currentJointAngles[MAX_JS_DIM_N]