From 02d08ef4dc5c1ae64dcbe89f8f2bb620505a7047 Mon Sep 17 00:00:00 2001 From: Andre Meixner <andre.meixner@kit.edu> Date: Wed, 9 Oct 2024 18:16:25 +0200 Subject: [PATCH] Added torqueFactor and torqueOffset for hardware config of elbow roll joint for ARMAR-7 --- .../sensor_actor_unit/armar7_wrist/sensor_board/Config.cpp | 6 ++++-- .../sensor_actor_unit/armar7_wrist/sensor_board/Config.h | 3 +++ .../sensor_actor_unit/armar7_wrist/sensor_board/Data.cpp | 4 +++- .../sensor_actor_unit/armar7_wrist/sensor_board/Data.h | 2 ++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Config.cpp b/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Config.cpp index 6364a1d7..ab7f2aa5 100644 --- a/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Config.cpp +++ b/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Config.cpp @@ -29,8 +29,10 @@ namespace devices::ethercat::sensor_actor_unit::armar7_wrist::sensor_board voltageRef(hwConfig.getFloat("elbowTorque.voltage_ref")), sensitivity(hwConfig.getFloat("elbowTorque.sensitivity")), voltageSupplied(hwConfig.getFloat("elbowTorque.voltage_supply")), - voltageFactor(hwConfig.getMatrix<float, 4, 1>("elbowTorque.factor")), - voltageOffset(hwConfig.getMatrix<float, 4, 1>("elbowTorque.offset")), + voltageFactor(hwConfig.getMatrix<float, 4, 1>("elbowTorque.voltage_factor")), + voltageOffset(hwConfig.getMatrix<float, 4, 1>("elbowTorque.voltage_offset")), + torqueFactor(hwConfig.getFloat("elbowTorque.torque_factor")), + torqueOffset(hwConfig.getFloat("elbowTorque.torque_offset")), temperature(hwConfig.getLinearConfig("elbowTorque.temperature")) { } diff --git a/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Config.h b/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Config.h index 5ab8ac90..5f9f63ff 100644 --- a/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Config.h +++ b/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Config.h @@ -56,6 +56,9 @@ namespace devices::ethercat::sensor_actor_unit::armar7_wrist::sensor_board Eigen::Matrix<float, NUM_VALUES, 1> voltageFactor; Eigen::Matrix<float, NUM_VALUES, 1> voltageOffset; + float torqueFactor; + float torqueOffset; + hwconfig::types::LinearConfig temperature; }; diff --git a/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Data.cpp b/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Data.cpp index 3a84fbd8..476e8b63 100644 --- a/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Data.cpp +++ b/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Data.cpp @@ -261,6 +261,8 @@ namespace devices::ethercat::sensor_actor_unit::armar7_wrist::sensor_board unAmplifiedVoltageToTorqueFactor(1 / (config.sensitivity * config.voltageSupplied)), voltageFactor(config.voltageFactor), voltageOffset(config.voltageOffset), + torqueFactor(config.torqueFactor), + torqueOffset(config.torqueOffset), slaveOut(slaveOut), torqueTicks(Veci::Zero()), unAmplifiedVoltage(Vecf::Zero()), @@ -315,7 +317,7 @@ namespace devices::ethercat::sensor_actor_unit::armar7_wrist::sensor_board float ElbowTorqueData::getActualTorque() const { - return torques.mean() +2.75; // HACK FIXME REMOVE + return torqueFactor * torques.mean() + torqueOffset; } std::int32_t diff --git a/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Data.h b/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Data.h index 39885e9d..3e14ad33 100644 --- a/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Data.h +++ b/source/devices/ethercat/sensor_actor_unit/armar7_wrist/sensor_board/Data.h @@ -159,6 +159,8 @@ namespace devices::ethercat::sensor_actor_unit::armar7_wrist::sensor_board const float unAmplifiedVoltageToTorqueFactor; const Vecf voltageFactor; const Vecf voltageOffset; + const float torqueFactor; + const float torqueOffset; sensor_board::SlaveOut* slaveOut; -- GitLab