GithubHelp home page GithubHelp logo

maegant / icra2021-learninghzd Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 1.0 9.55 MB

Learning algorithm, experimental results, and documentation for the ICRA 2021 submission "Preference-Based Learning for User-Guided HZD Gait Generation on Bipedal Walking Robots"

Home Page: https://maegant.github.io/ICRA2021-LearningHZD/

License: Other

MATLAB 100.00%

icra2021-learninghzd's Introduction

ICRA2021-LearningHZD

This repository includes the learning algorithm, experimental results and documentation for the ICRA 2021 submission "Preference-Based Learning for User-Guided HZD Gait Generation on Bipedal Walking Robots".

The main contents include the following:

  • LineCoSparNLP algorithm for learning 5 optimization constraints (average forward velocity, minimum foot clearance, impact velocity, step length, tau at which to enforce minimum foot clearance)
  • Experimental Results
  • Plotting code to visualize results

LineCoSparNLP Framework

The learning framework is implemented as the class @linecospar_amber. The procedure of the framework is as follows. First, the learning is initialized by the command:

alg = linecospar_amber();

and the essential constraints chosen to learn over are selected by the command:

alg.addParameters(numberConstraintsToInclude);

for example, to include all of the constraints use the command

alg.addParameters(1:5);

The first actions are sampled randomly using the command:

alg.getFirstActions(num_sims);

where num_sims = 2 for the published experimental results. This command updates the parameters in alg.currentAction. Gaits are then generated for these actions using the command:

for i = 1:num_sims
    currentParams = alg.currentAction(i,:);
    gaitName{i} = sprintf('Iteration%i_Action%i',iter,i);
    [params, logger, sol, status] = runOpt(currentParams, 
        nlp,behavior, save_folder, gaitName{i});
end

The generated gaits are then executed on hardware and a pairwise preference between the executed actions is obtained from the human operator. The preference is subjective to the operator. The criteria used in the published experiments was as follows (in order of prioritization):

  • Capable of walking
  • Robust to perturbations in treadmill speeds
  • Robust to external forces
  • Does not exhibit harsh noise
  • Is visually appealing (intuitive judgement)

Preferences are recorded as 0 (if the first gait is preferred) and 1 (if the second gait is preferred). The actions associated with the preference are recorded in terms of their associated indices in the matrix of executed actions. For example, if the second unique gait generated is compared to the seventh unique gait generated, the comparison would be [2,7].


Once the preference is obtained, new actions to execute are sampled using the command:

alg.getNextActions(comparisons, preference, C, num_sims);

where C is coactive feedback. However, in the published experiments, coactive feedback is not used so C is empty.


ICRA 2021 Experimental Results

The results of the experiment on AMBER-P is included in the folder Results/AMBER-P. The results of the experiment on AMBER-S is included in the folder Results/AMBER-S.

A few scripts were written to plot the experimental results including:

  • animateICRA2021Posterior.m: A script to animate the posteriors for both experiments
  • evaluateResults.m: A script to evaluate the order of preference associated with the executed gaits
  • finalICRA2021Plots.m: A script to generate the static plots of the final obtained posteriors on the executed actions for both experiments

icra2021-learninghzd's People

Contributors

maegant avatar

Stargazers

Chen Yao avatar songchao avatar jiawei avatar

Watchers

 avatar Wen-Loong Ma avatar

Forkers

icra-2021

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.