Skip to content

mrsp/gem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

955ef0b · Nov 10, 2020
Nov 10, 2020
Nov 10, 2020
Mar 6, 2019
Jan 16, 2020
Nov 10, 2020
Sep 11, 2018
Mar 6, 2019
Nov 10, 2020
Apr 24, 2020

Repository files navigation

gem

Gait-phase Estimation Module (GEM) for Humanoid Robot Walking. The code is open-source (BSD License). Please note that this work is an on-going research and thus some parts are not fully developed yet. Furthermore, the code will be subject to changes in the future which could include greater re-factoring.

GEM is an unsupervised learning framework which employs a 2D latent space obtained with PCA and Gaussian Mixture Models (GMMs) to facilitate accurate prediction/classification of the gait phase during locomotion.

Video: https://www.youtube.com/watch?v=w09yb81IXpQ

Papers:

  • Unsupervised Gait Phase Estimation for Humanoid Robot Walking (Intl. Conf. on Robotics and Automation (ICRA), 2019)

GEM functionalities have been encapsulated in the GEM2 package (https://github.com/mrsp/gem2). This package is now deprecated.

Training

Solely proprioceptive sensing is utilized in training, namely joint encoder, F/T, and IMU.

Real-time Gait-Phase Prediction

GEM can be readily employed in real-time for estimating the gait phase. The latter is accomplished by either loading a trained GEM python module and use it for real-time preditiction or by utilizying GEM for real-time estimation based on the sensed contact wrenches and optionally leg kinematics.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Ubuntu 16.04 and later
  • ROS kinetic and later
  • Sklearn
  • Keras 2.2.4
  • tensorflow
  • tested on python3 (3.6.9) and python (2.7.17)

Installing

  • pip install tensorflow
  • pip install keras
  • pip install sklearn
  • git clone https://github.com/mrsp/gem.git
  • catkin_make
  • If you are using catkin tools run: catkin build

ROS Examples

Train the Valkyrie module

  • train: python train.py ../config/gem_params.yaml

Train your own module

  • Save the corresponding files in a similar form as the valkyrie files
  • train: python train.py ../config/gem_params_your_robot.yaml

Run in real-time to infer the gait-phase:

  • configure appropriately the config yaml file (in config folder) with the corresponding topics
  • roslaunch gem gem_ros.launch