ami-iit / element_weight-retargeting

0 stars 0 forks source link

Implement the WeightRetargetingModule #12

Closed RiccardoGrieco closed 2 years ago

RiccardoGrieco commented 2 years ago

This issue to document the updates on the development of the WeightRetargetingModule.

RiccardoGrieco commented 2 years ago

Update of 15 Dec

The implementation is tracked in the implementation-application branch.

Currently I am using only the right elbow linked to the node 14 with 3 actuators.

The parameters that are in play in the module are:

These parameters are currently hard-coded, but the configuration pipeline file is already almost set up.

in order to run the code:

git clone https://github.com/ami-iit/element_weight-retargeting.git
cd element_weight-retargeting
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="./install"  ..
make
make install

Add the following line to the bashrc(for Linux):

export YARP_DATA_DIRS=$YARP_DATA_DIRS:<directory-of-weight-retargeting>/build/install/share
export PATH=$PATH:<directory-of-weight-retargeting>/build/install/bin

You can then run the weight retargeting module with:

# The following line for running with simulated iCub
WeightRetargetingModule  --robot /icubSim
# The following line for running with real iCub
WeightRetargetingModule  --robot /icub

The module will log the commands it sends.

In order to forward the commands to the iFeelSuit:

yarp connect /WeightRetargeting/output:o /iFeelSuit/WearableActuatorsCommand/input:i

⚠️ More documentation TBD

cc @S-Dafarra

RiccardoGrieco commented 2 years ago

Update of 20 Dec

Config files

The remote control boards, joint axes and related parameters are now to be set in configuration. An example of configuration file is WeightRetargetingElbows.ini

Once the install path is added to the environment variables, the module can be launched with the dedicated application on the yarpmanager. The installed application will use the config file above mentioned by default.

Change the file according the actuator numbers on the Multi haptic nodes you wan to use.

FYK the current association is:

Left biceps: "13@1", "13@6" Left triceps: "13@2", "13@3" Right biceps: "14@6", "14@7" Right triceps: "14@4", "14@5"

RPC

An RPC service has been added. Below, the specification of the implemented methods:

Name Parameters Description
setMaxThreshold Sets the maximum joint torque threshold of a joint axis
1: axis The name of the joint axis (e.g. "l_elbow")
2: value The value of the maximum threshold
setMinThreshold Sets the maximum joint torque threshold of a joint axis
1: axis The name of the joint axis (e.g. "l_elbow")
2: value The value of the minimum threshold
setThresholds Set the minimum and maximum joint torque thresholds
1: axis The name of the joint axis (e.g. "l_elbow")
2: minThreshold The value of the minimum threshold
3: maxThreshold The value of the maximum threshold

This way thresholds can be set in realtime, based on what logged on yarp by the module.

cc @S-Dafarra @lrapetti

RiccardoGrieco commented 2 years ago

Added some documentation about installation and usage in the implementation branch.

RiccardoGrieco commented 2 years ago

Opened PR #13. I will close this issue once it's merged.