robotology / whole-body-estimators

YARP devices that implement estimators for humanoid robots.
26 stars 12 forks source link

Support specifying the FT sensors to use in the estimation via multipleAnalogSensorsNames::SixAxisForceTorqueSensorsNames without the need to modify the loaded URDF #194

Closed traversaro closed 1 month ago

traversaro commented 1 month ago

In particular:

Fix https://github.com/robotology/whole-body-estimators/issues/183 . Fix https://github.com/robotology/whole-body-estimators/issues/32 .

GiulioRomualdi commented 1 month ago

@traversaro, this feature is a dream! I appreciate it!

isorrentino commented 1 month ago

Thanks a lot @traversaro! Just a curiosity, have you already tested the PR on the robot?

traversaro commented 1 month ago

Thanks a lot @traversaro! Just a curiosity, have you already tested the PR on the robot?

No, I just tested it on the test added in https://github.com/robotology/whole-body-estimators/pull/177 (catching a couple of bugs). The PR does not need any change in the configuration files, so it should be quite straightforward to test on the robot.

traversaro commented 1 month ago

The pixi crash on Windows was a byproduct of switching from Visual Studio to Ninja, by doing so the default build type switched to Debug, and conda-forge binaries are not compatible with Debug. Changing to have explicit build type for all projects fixed the problem.

traversaro commented 1 month ago

CI is happy, PR is ready for review/test on robot/merge.

S-Dafarra commented 1 month ago

With @LoreMoretti we tested it on the robot. We did the following modification

diff --git a/ergoCubSN002/estimators/wholebodydynamics.xml b/ergoCubSN002/estimators/wholebodydynamics.xml
index b662ac180..84e479e7b 100644
--- a/ergoCubSN002/estimators/wholebodydynamics.xml
+++ b/ergoCubSN002/estimators/wholebodydynamics.xml
@@ -27,7 +27,7 @@
   </group>

   <group name="multipleAnalogSensorsNames">
-    <param name="SixAxisForceTorqueSensorsNames">(l_leg_ft, l_foot_front_ft, l_foot_rear_ft, r_leg_ft, r_foot_front_ft, r_foot_rear_ft, r_arm_ft, l_arm_ft)</param>
+    <param name="SixAxisForceTorqueSensorsNames">(l_foot_front_ft, l_foot_rear_ft, r_foot_front_ft, r_foot_rear_ft, r_arm_ft, l_arm_ft)</param>
   </group>

Here is the result with the robot on the ground Screenshot from 2024-07-12 09-59-17

There is no force on the legs :partying_face:

traversaro commented 1 month ago

Great, thanks!