Coder Social home page Coder Social logo

mrsp / lcd Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 0.0 10.3 MB

Legged Contact Detection (LCD): A deep learning approach for Contact Estimation of Legged Robots using inertial and F/T measurements

License: Other

Python 100.00%
contact-estimation deep-learning humanoid-robot humanoid-robots humanoid-walking humanoids legged-robot legged-robotics legged-robots open-source-datasets python pytorch state-estimation

lcd's Introduction

Legged Contact Detection (LCD)

LCD is a quality of contact estimation supervised deep learning framework for legged robots. It utilizes leg Force/Torque and IMU measurements to predict the probability of Stable Contact (SC) and Unstable Contact (UC). LCD also works with reduced features (Fz + IMU) in case the robot has point feet, nevertheless the results are slightly worse on datasets with extremely low friction coefficient surfaces (< 0.07). Additionally, LCD generalizes across platforms, meaning it is able to predict the quality of contact on walking gaits for a robot even though it was not trained using data from that particular robot. This indicates that LCD learns some platform-invariant features to classify the quality of contact in walking gaits.

Provided Datasets

The datasets (.csv) provided are self explanatory; name of robot + number of samples + friction coeff. In the "mixed friction" datasets, the friction coefficient varies from 0.03 to 1.2. The labels are either 0 (stable contact), 1 (no contact) and 2 (slip). Labels 1 and 2 are merged into one class by LCD as UC. These samples were collected from a raisim simulated environment and the labels were extracted by utilizing the ground-truth vertical Ground Reaction Force (GRF) and the 3D spatial linear/angular velocity of the foot in contact. Each dataset consists of omni-directional walking gaits of the named robot with a sampling rate of 100 Hz.

Requirements

To train, deploy, and visualize an LCD model the following requirements must be met:

Training and Testing procedure

Initiate a training and testing loop for example:

python train.py --train-dataset-csv=ATLAS_50k_mixedFriction.csv --test-dataset-csv=ATLAS_21k_02ground.csv --epochs=10

Visualize Training and Testing results with tensorboard

After training one can visualize training and testing performance metrics with:

tensorboard --logdir runs

Indicative training on the ATLAS_50k_mixedFriction dataset is illustrated below where the accuracy and loss are shown:

Screenshot

In addition, the confusion matrix is depicted for testing on the ATLAS_21k_02ground dataset:

Screenshot

Results

Walking in extremely low coefficient surface scenarios causes the robot to slip. However, since the robot transfers its weight to the slipping foot, the vertical ground reaction force is high-valued and thus typical GRF-based algorithms for predicting the contact state produce inaccurate results.

The predictions of LCD on an experiment with an ATLAS robot walking on a surface with friction coefficient below 0.1 are presented in the following figure. Top labels indicate stable contacts while the bottom ones are the unstable contacts (no contact + slip):

Screenshot

The first two steps are on a surface with normal friction coefficients and thus the predicted labels behave as expected. Subsequently, in the third and fourth steps the robot slips, notice the GRF values are the same as before.

Reference

For more information regarding the LCD's theory and implementation kindly check our IROS 2022 paper:

Robust Contact State Estimation in Humanoid Walking Gaits

A video presentation is available at:

Watch the video

License

MIT

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.