Fast and Flexible Multilegged Locomotion Using Learned Centroidal Dynamics, in proc. ACM SIGGRAPH 2020
Adaptive Tracking of a Single-Rigid-Body Character in Various Environments, In proc. ACM SIGGRAPH ASIA 2023
Linux and MacOS.
- First, install necessary dependencies. This probably installs more than actually necessary:
sudo apt install libfltk1.3-dev libreadline-dev wxpython-tools
cd dependenceies/lua5.1; make install_linux
mkdir ogre-next-source; cd ogre-next-source; git clone https://github.com/OGRECave/ogre-next.git; cd ogre-next; git checkout 50bbee7d
cd dependenceies/ogre-next3; cp -rf ../ogre-next-source/ogre-next/* .
Then you need to apply the patch file in the dependencies/ogre-next3 as follows (untested. you can do this manually by looking at the patch file).
cd dependences/ogre-next3;patch -p0 < ogre-latest_50bbee7d.patch
- Now you can build ogre-next (latest):
cd dependencies/ogre-next3
make linuxbuild
-
Also install python3 and pip3 (versions do not matter.)
-
Now, build this project.
pip3 install stable-baselines3 torch numpy gymnasium
cd src; make
This should work on any versions of ubuntu.
- First, install necessary dependencies:
brew install fltk eigen gsl cmake
pip3 install wxPython
cd dependenceies/lua5.1; make install_macosx
mkdir ogre-next-source; cd ogre-next-source; git clone https://github.com/OGRECave/ogre-next.git; cd ogre-next; git checkout -b v2-3 remotes/origin/v2-3
cd dependenceies/ogre-next3; cp -rf ../ogre-next-source/ogre-next/* .
Then you need to apply the patch file in the dependencies/ogre-next3 as follows (untested. you can do this manually by looking at the patch file).
cd dependences/ogre-next3/ogre-next-deps/src/freetype/src;git checkout -f gzip/zconf.h;patch -p1 gzip/zconf.h < ../../../../zconf.patch
cd dependences/ogre-next3;patch -p0 < ogre-latest_50bbee7d.patch
- Now you can build ogre-next3 (latest):
cd dependencies/ogre-next3
make macbuild
-
Also install python3 and pip3 (versions do not matter.)
-
Now, build this project.
cd src; make
FYI, most linker and compiler settings are in src/taesoolib/Samples/Common_baselib.cmake and Common_mainlib.cmake files.
pip3 install torch python3-tk gymnasium
cd work; python3 test_walk2.py gym_walkCDM/testWalkV2_FA.lua
Choose the opengl or metal renderer if asked to choose one. Also, on Linux, choose 1920x1080 resolution. If you already chose a different resolution, re-try after deleting ogre2_linux.cf2_linux.cfg Now, click the play button, and adjust the slider bars for speed/orientation. Also, you can change the motion type by clicking the button.
cd work; make walk
I will explain the folder structure of this project.
work/gym_cdm2 contains the source codes of "Adaptive Tracking of a Single-Rigid-Body Character in Various Environments".
work/gym_walkCDM contains the source codes of "Fast and Flexible Multilegged Locomotion Using Learned Centroidal Dynamics".
src/taesooLib contains the taesooLib. All of my research projects rely on this library, which contains C++ code related to motion loading, inverse kinematics (IK), rendering, and more.
src/taesooLib/BaseLib contains the core library which is GUI-independent.
src/taesooLib/MainLib extends the core library with Ogre3D and FLTK-based GUI components.
src/taesooLib/PhysicsLib contains a few rigid-body simulators.
src/taesooLib/MainLib/WrapperLua/luna_mainlib.lua defines the functions and classes that can be used in lua scripts.
src/taesooLib/MainLib/python/MainlibPython.hpp defines the functions and classes that can be used in python scripts.