The Performance Indicator computation for Dysturbance Testbench is implemented in MATLAB. Further modifications are still needed to be used within the Eurobench Benchmarking Software.
Characterize the balancing performances of robotic subjects under external disturbances. Technical details on the folder structure are provided in src/README.md
There are two distinct scripts for the PI computation of the DYSTURBANCE testbed:
-
run_local_pi
computes the PI for a specific run on a series of experiments on a given subject.Args (all required):
- an input
.csv
file containing the experiment data; - an input
.yaml
file containing the experiment info (testbed, conditions, etc...) - an input
.yaml
file containing the subject info - an output directory where the results is stored
- an input
-
run_global_pi
computes the PI for a given protocol on the whole series of experiments on a given subject.Args (all required):
- an input directory containing all the data of the tested subject
- an integer which identifies the protocol to be evaluated (1-5)
- an output directory where the results is stored
Assuming folder ./tests/data/input
contains all the raw input data, and that ./tests/data/output
exists and will contain the resulting files, the shell command examples are:
-
./run_local_pi ./tests/data/input/subject_1/protocol_1/subject_1_cond_1008203500/raw_data_input/subject_1_cond_1008203500_run_0_platformData.csv ./tests/data/input/subject_1/protocol_1/subject_1_cond_1008203500/raw_data_input/subject_1_cond_1008203500_testbed.yaml ./tests/data/input/subject_1/subject_1_info.yaml ./tests/data/output/subject_1/protocol_1
-
./run_global_pi ./tests/data/input/subject_1 1 ./tests/data/output
It is not possible to provide a number of arguments as inputs different from the specified one.
The code will automatically open and run MATLAB, providing a set of plots and .csv file containing the results of the PI computation.
Warning: This is only valid from Linux machines. Tested with Matlab R2021a
.
A Docker image can be generated by launch the script docker_gen from the Matlab GUI, or directly from the command line:
matlab -batch docker_gen
An image is also deployed onto DockerHub:
docker pull eurobenchtest/pi_dysturbance
Then the image can be used as follows (for subject1, protocol5, assuming folder out
has been previously created, and being at the root of the repository to access to reference data):
# from subject 1, protocol 1
docker run --rm -v $PWD/Dysturbance_Pi/tests/data/input/subject_1:/in -v $PWD/out:/out pi_dysturbance /in/protocol_1/subject_1_cond_1008203500/raw_data_input/subject_1_cond_1008203500_run_0_platformData.csv /in/protocol_1/subject_1_cond_1008203500/raw_data_input/subject_1_cond_1008203500_testbed.yaml /in/subject_1_info.yaml /out
# from subject 1, protocol 2
docker run --rm -v $PWD/Dysturbance_Pi/tests/data/input/subject_1:/in -v $PWD/out:/out pi_dysturbance /in/protocol_2/subject_1_cond_2101000000/raw_data_input/subject_1_cond_2101000000_run_49_platformData.csv /in/protocol_2/subject_1_cond_2101000000/raw_data_input/subject_1_cond_2101000000_testbed.yaml /in/subject_1_info.yaml /out
# from subject 1, protocol 3
docker run --rm -v $PWD/Dysturbance_Pi/tests/data/input/subject_1:/in -v $PWD/out:/out pi_dysturbance /in/protocol_3/subject_1_cond_3021000000/raw_data_input/subject_1_cond_3021000000_run_0_platformData.csv /in/protocol_3/subject_1_cond_3021000000/raw_data_input/subject_1_cond_3021000000_testbed.yaml /in/subject_1_info.yaml /out
# from subject 1, protocol 4
docker run --rm -v $PWD/Dysturbance_Pi/tests/data/input/subject_1:/in -v $PWD/out:/out pi_dysturbance /in/protocol_4/subject_1_cond_4000000000/raw_data_input/subject_1_cond_4000000000_run_0_platformData.csv /in/protocol_4/subject_1_cond_4000000000/raw_data_input/subject_1_cond_4000000000_testbed.yaml /in/subject_1_info.yaml /out
# from subject 1, protocol 5
docker run --rm -v $PWD/Dysturbance_Pi/tests/data/input/subject_1:/in -v $PWD/out:/out pi_dysturbance /in/protocol_5/subject_1_cond_5000000000/raw_data_input/subject_1_cond_5000000000_run_0_platformData.csv /in/protocol_5/subject_1_cond_5000000000/raw_data_input/subject_1_cond_5000000000_testbed.yaml /in/subject_1_info.yaml /out
Supported by Eurobench - the European robotic platform for bipedal locomotion benchmarking. More information: Eurobench website
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement no. 779963.
The opinions and arguments expressed reflect only the author‘s view and reflect in no way the European Commission‘s opinions. The European Commission is not responsible for any use that may be made of the information it contains.