Awesome
PyPnC
PyPnC is a python library designed for generating trajectories for a robot system and stabilizing the system over the trajectories.
Installation
- Install anaconda
- Clone the repository:<br/>
$ git clone https://github.com/junhyeokahn/PyPnC.git
- Create a virtual environment and install dependancies:<br/>
$ conda env create -f pypnc.yml
- Activate the environment:<br/>
$ conda activate pypnc
Running Examples
Three Link Manipulator Control with Operational Space Control
- Run the code:<br/>
$ python simulator/pybullet/manipulator_main.py
Atlas Walking Control with DCM planning and IHWBC
- Run the code:<br/>
$ python simulator/pybullet/atlas_dynamics_main.py
- Send walking commands through keystroke interface. For example, press
8
for forward walking, press5
for in-place walking, press4
for leftward walking, press6
for rightward walking, press2
for backward walking, press7
for ccw turning, and press9
for cw turning. - Plot the results:<br/>
$ python plot/atlas/plot_task.py --file=data/history.pkl
Atlas Locomotion Planning with TOWR+
- For TOWR+, install additional dependancy ifopt
- Train a Composite Rigid Body Inertia network and generate files for optimization:<br/>
$ python simulator/pybullet/atlas_crbi_trainer.py
and press5
for training - Run
TOWR+
:<br/>$ mkdir build && cd build && cmake .. && make -j6 && ./atlas_forward_walk
- Plot the optimized trajectory:<br/>
$ 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:<br/>
$ python simulator/pybullet/atlas_kinematics_main.py --file=data/atlas_forward_walk.yaml
Citation
@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}}