Supplementary code for SIGGRAPH 2021 paper: Discovering Diverse Athletic Jumping Strategies

Related tags

Miscellaneous Jump
Overview

SIGGRAPH 2021: Discovering Diverse Athletic Jumping Strategies

project page

paper

demo video

image_0032

Prerequisites

Important Notes

We suspect there are bugs in linux gcc > 9.2 or kernel > 5.3 or our code somehow is not compatible with that. Our code has large numerical errors from unknown source given the new C++ compiler. Please use older versions of C++ compiler or test the project on Windows.

C++ Setup

This project has C++ components. There is a cmake project inside Kinematic folder. We have setup the CMake project so that it can be built on both linux and Windows. Use cmake, cmake-gui or visual studio to build the project. It requires eigen library.

Python Setup

Install the Python requirements listed in requirements.txt. The version shouldn't matter. You should be safe to install the latest versions of these packages.

Rendering Setup

To visualize training results, please set up our simulation renderer.

  • Clone and follow build instructions in UnityKinematics. This is a flexible networking utility that will send raw simulation geometry data to Unity for rendering purpose.
  • Copy [UnityKinematics build folder]/pyUnityRenderer to this root project folder.
  • Here's a sample Unity project called SimRenderer in which you can render the scenes for this project. Clone SimRenderer outside this project folder.
  • After building UnityKinematics, copy [UnityKinematics build folder]/Assets/Scripts/API to SimRenderer/Assets/Scripts. Start Unity, load SimRenderer project and it's ready to use.

Training P-VAE

We have included a pre-trained model in results/vae/models/13dim.pth. If you would like to retrain the model, run the following:

python train_pose_vae.py

This will generate the new model in results/vae/test**/test.pth. Copy the .pth file and the associated .pth.norm.npy file into results/vae/models. Change presets/default/vae/vae.yaml under the model key to use your new model.

Train Run-ups

python train.py runup

Modify presets/custom/runup.yaml to change parts of the target take-off features. Refer to Appendix A in the paper to see reference parameters.

After training, run

python once.py runup no_render results/runup***/checkpoint_2000.tar

to generate take-off state file in npy format used to train take-off controller.

Train Jumpers

Open presets/custom/jump.yaml, change env.highjump.initial_state to the path to the generated take-off state file, like results/runup***/checkpoint_2000.tar.npy. Then change env.highjump.wall_rotation to specify the wall orientation (in degrees). Refer to Appendix A in the paper to see reference parameters (note that we use radians in the paper). Run

python train.py jump

to start training.

Start the provided SimRenderer (in Unity), enter play mode, the run

python evaluate.py jump results/jump***/checkpoint_***.tar

to evaluate the visualize the motion at any time. Note that env.highjump.initial_wall_height must be set to the training height at the time of this checkpoint for correct evaluation. Training height information is available through training logs, available both in the console and through tensorboard logs. You can start tensorboard through

python -m tensorboard.main --bind_all --port xx --logdir results/jump***/
Issues
  • Question about novelty reward term

    Question about novelty reward term

    https://github.com/arpspoof/Jump/blob/1c9c1bd5c499e24bab25eb7decaa772b60798794/env/jumper/highjump.py#L184-L199 Hi, I read your paper and got an interest in the reward term. I could not find the intention of a reward term(on line #191-199) from your paper. I wonder the role of the term, and what q_bases is(Why the minimum angle difference from root quaternion should be larger than pi/2?)

    opened by y0ngw00 2
  • there is no run-up process. Is there a problem with my parameter setting?

    there is no run-up process. Is there a problem with my parameter setting?

    after 12000 times of training, run evaluate.py, the render is different from that in the video, and there is no run-up process. Is there a problem with my parameter setting?

    opened by wp133716 0
  • Bayesian Diversity Search

    Bayesian Diversity Search

    Hi,

    I found your paper very interesting!

    I found training p-vae(train_pose_vae.py) and training ppo for motion control (train.py). Can you tell me which part of the released code is about the bayesian diversity search? It says in the paper that it is implemented using GPFlow, but I found no code using it.

    Thank you.

    opened by sunny-Codes 0
  • Cannot learn to jump.

    Cannot learn to jump.

    I cannot get the result the same as the paper. When the training of jump policy, I always gets reward 0.

    The default values to learn runup policy are:

    algorithm.max_iterations: 2000 experiment.env: jumper_run2 env.jumper_run2.angular_v: [-3.0, -3.0, 1.0] env.jumper_run2.linear_v_z: -2.4

    The jump policy with the following parameters, which are the recommended ones to learn Fosbury Flop.

    algorithm.max_iterations: 12000 experiment.env: highjump # initial state file generated by the run-up training env.highjump.initial_state: results/runup-2022-Feb-10-175005/checkpoint_2000.tar.npy # wall orientation in degrees env.highjump.wall_rotation: -0.05 # must correspond to the training height of the checkpoint env.highjump.initial_wall_height: 0.5

    opened by fredericgo 0
  • Input layer size VAE

    Input layer size VAE

    Hi,

    I noticed that you used a layer size of 200 for input features, but at the end you seems to use only the joints position. Is this somethings i'm missing? do you train on larger feature (like velociy) to get more motion differentiation? and then use a small portion (joints positions) that you are adding the offset aftermath?

    Thank you.

    opened by antho6222 0
Sandbox binary and source code for the Siggraph 2017 paper "Water Wave Packets" by Stefan Jeschke (NVIDIA) and Chris Wojtan (IST Austria)

----------------------------- Manual for wave packet viewer ----------------------------- System requirements: Windows8/8.1/10 with DirectX runtime e

Stefan Jeschke 35 Feb 10, 2022
Semantic Edge Detection with Diverse Deep Supervision

Semantic Edge Detection with Diverse Deep Supervision This repository contains the code for our IJCV paper: "Semantic Edge Detection with Diverse Deep

Yun Liu 11 May 15, 2022
Interactive-hex-meshing - Source code for "Interactive All-Hex Meshing via Cuboid Decomposition [SIGGRAPH Asia 2021]".

Interactive All-Hex Meshing via Cuboid Decomposition Video demonstration This repository contains an interactive software to the PolyCube-based hex-me

Lingxiao Li 128 Aug 5, 2022
The artifact associated with our ISSTA 2021 paper "Seed Selection for Successful Fuzzing"

Seed Selection for Successful Fuzzing The artifact associated with our ISSTA 2021 paper "Seed Selection for Successful Fuzzing". While our primary art

HexHive 28 Jul 21, 2022
A customizable hardware prefetching framework using online reinforcement learning as described in the MICRO 2021 paper by Bera and Kanellopoulos et al.

A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning Table of Contents What is Pythia? About the Framework Prerequisites

SAFARI Research Group at ETH Zurich and Carnegie Mellon University 42 Aug 4, 2022
Repository Containing the Code associated with the Paper: "Learning High-Speed Flight in the Wild"

Learning High-Speed Flight in the Wild This repo contains the code associated with the paper Learning Agile Flight in the Wild. For more information,

Robotics and Perception Group 346 Aug 8, 2022
This repo contains source code of our paper presented in IROS2021 "Single-Shot is Enough: Panoramic Infrastructure Based Calibration of Multiple Cameras and 3D LiDARs"

Single-Shot is Enough: Panoramic Infrastructure Based Calibration of Multiple Cameras and 3D LiDARs Updates [2021/09/01] first commit, source code of

Alibaba 62 Jul 23, 2022
Example code for the research paper "Masked Software Occlusion Culling"; implements an efficient alternative to the hierarchical depth buffer algorithm.

MaskedOcclusionCulling This code accompanies the research paper "Masked Software Occlusion Culling", and implements an efficient alternative to the hi

null 532 Aug 10, 2022
Code for the paper Succinct k-mer Set Representations Using Subset Rank Queries on the Spectral Burrows-Wheeler Transform (SBWT)

SBWT This is the code for the paper Succinct k-mer Set Representations Using Subset Rank Queries on the Spectral Burrows-Wheeler Transform (SBWT). The

Algorithmic Bioinformatics Group @ University of Helsinki 14 Jun 18, 2022
Proof-of-concept implementation for the paper "Osiris: Automated Discovery of Microarchitectural Side Channels" (USENIX Security'21)

Osiris This repository contains the implementation of the Osiris framework discussed in the research paper "Osiris: Automated Discovery of Microarchit

CISPA 38 Aug 8, 2022
DIY Zigbee CC2530 Motion sensor (AM312/ AM412/ BS312/ BS412), Temperature /Humidity /Pressure sensor (BME280), Ambient Light sensor (BH1750), 2.9inch e-Paper Module

How to join: If device in FN(factory new) state: Press and hold button (1) for 2-3 seconds, until device start flashing led Wait, in case of successfu

Sergey Koptyakov 5 Feb 13, 2022
Next gen. of NekoCal: An open-source hackable and programmable e-paper display

NekoInk NekoInk is an open-source, programmable, and versatile E-paper display platform. It offers connectivity options to various type of E-paper scr

Wenting Zhang 42 Jul 27, 2022
DIY Zigbee CC2530 Motion sensor (AM312/ AM412/ BS312/ BS412), Temperature /Humidity /Pressure sensor (BME280), Ambient Light sensor (BH1750), 2.9/2.13/1.54 inch e-Paper Module

How to join: If device in FN(factory new) state: Press and hold button (1) for 2-3 seconds, until device start flashing led Wait, in case of successfu

Sergey Koptyakov 28 Jul 27, 2022
Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags

ATC_TLSR_Paper Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags using the TLSR8359 ARM SOC You can support my work via PayPal: https:

null 63 Aug 2, 2022
lib release of paper [TopoTag: A Robust and Scalable Topological Fiducial Marker System]

Library release of paper TopoTag: A Robust and Scalable Topological Fiducial Marker System. Project page: https://herohuyongtao.github.io/research/pub

Yongtao Hu 7 Jul 13, 2022
White paper describing the Autodesk Standard Surface shader.

Autodesk Standard Surface A white paper specifying an uber surface shader that aims to provide a material representation capable of accurately modelin

Autodesk 308 Aug 9, 2022
The implementation of the 'vSGX: Virtualizing SGX Enclaves on AMD SEV' paper

vSGX: Virtualizing SGX Enclaves on AMD SEV About the Project This is a research project aims to enable binary compatibility execution of Intel SGX enc

Computer Security Laboratory @ OSU 21 Jul 31, 2022
PoC for CVE-2021-28476 a guest-to-host "Hyper-V Remote Code Execution Vulnerability" in vmswitch.sys.

CVE-2021-28476: a guest-to-host "Microsoft Hyper-V Remote Code Execution Vulnerability" in vmswitch.sys. This is a proof of concept for CVE-2021-28476

Axel Souchet 206 Aug 3, 2022