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/junhyeokahn/PyPnC.git
- Create a virtual environment and install dependancies:
$ conda env create -f pypnc.yml
- Activate the environment:
$ conda activate pypnc
- 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
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:
$ 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.py
and press5
for 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
- Make sure you use right configuration variables in the TowrPlusConfig Class under
config/atlas_config.py
file:
$ TOWR_PLUS = True
$ SOLUTION_YAML = cwd + "/data/atlas_forward_walk.yaml"
- Run the TOWR+ solution trajectories with IHWBC in the pybullet simulation environment:
$ python simulator/pybullet/atlas_dynamics_main.py --file=data/atlas_forward_walk.yaml
- Plot the cartesian tasks and joints data:
$ python plot/atlas/plot_task.py
@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}}