This repository requires to install idyntree library and MATLAB.
Use the requirements.txt
file to recreate the environment:
conda create --name <new_environment_name> --file requirements.txt
The application for acquiring data for friction identification can be found in https://github.com/LoreMoretti/bipedal-locomotion-framework/tree/add/MotorCurrentTrackingApplication/utilities/motor-current-tracking. You can follow instruction in the repo to install and use it.
Datasets used for this paper for the training can be found at https://huggingface.co/datasets/ami-iit/sensorless-torque-control/tree/main.
After taking data, the first step is data post-processing. Run the bash script postprocess_data.sh
. Example usage for parsing data for the r_ankle_pitch
joint.
bash postprocess_data.sh -f '/home/isorrentino/dev/dataset/friction/r_ankle_pitch/sinusoid' -j 'r_ankle_pitch' -a 'torso_pitch torso_roll torso_yaw l_hip_pitch l_hip_roll l_hip_yaw l_knee l_ankle_pitch l_ankle_roll r_hip_pitch r_hip_roll r_hip_yaw r_knee r_ankle_pitch r_ankle_roll'
Find the Stribeck-Coulomb-Viscous
model for the physics information used by the PINN. Change the joint to model in the script simple_friction_modeling.py
.
python simple_friction_modeling.py
Before running the PINN training you need to specify the configuration file for the join to model. The config
folder contains an example for the r_ankle_roll
joint. After creating the configuration file you can run the training by means of wight&biases
tool:
python feedforwardNN_wandb.py --joint_name "r_ankle_roll"
The trained networks are saved in the results forlder and can be converted in a onnx
model by using the script convert_to_onnx.py
.
The onnx
model is loaded by the device JointTorqueControlDevice
running on the robot torso computer.
This repository is maintained by:
@inessorrentino |