PyPnC is a python library designed for generating trajectories for a robot system and stabilizing the system over the trajectories.
- Install anaconda
- Clone the repository:
$ git clone https://github.com/carlosiglezb/PyPnC.git - Create a virtual environment and install dependencies:
$ conda env create -f pypnc_croc.yml - Activate the environment:
$ conda activate pypnc-multicontact
Note: The multicontact modules have only been tested in Ubuntu 20.04 LTS.
If you get an error related to cython (e.g., when installing pypoman),
make sure you have installed the libccd
library for collision detection:
$ sudo apt install libccd-dev
- Run the code:
$ python simulator/pybullet/manipulator_main.py
- Run the code:
$ python simulator/pybullet/atlas_dynamics_main.py - Send walking commands through keystroke interface. For example, press
8for forward walking, press5for in-place walking, press4for leftward walking, press6for rightward walking, press2for backward walking, press7for ccw turning, and press9for cw turning. - Plot the results:
$ python plot/atlas/plot_task.py --file=data/history.pkl
- For TOWR+, install additional dependancy ifopt
- Train a Composite Rigid Body Inertia network and generate files for optimization:
$ python simulator/pybullet/atlas_crbi_trainer.pyand press5for training - Run
TOWR+:
$ mkdir build && cd build && cmake .. && make -j6 && ./atlas_forward_walk - Plot the optimized trajectory:
$ python plot/plot_towr_plus_trajectory.py --file=data/atlas_forward_walk.yaml --crbi_model_path=data/tf_model/atlas_crbi - Replay the optimized trajectory with the robot:
$ python simulator/pybullet/atlas_kinematics_main.py --file=data/atlas_forward_walk.yaml
@article{10.3389/frobt.2021.712239,
author = {Ahn, Junhyeok and Jorgensen, Steven Jens and Bang, Seung Hyeon and Sentis, Luis},
journal = {Frontiers in Robotics and AI},
pages = {257},
title = {Versatile Locomotion Planning and Control for Humanoid Robots},
volume = {8},
year = {2021}}