Milo's Softrobot Project (adapted from Yet Another Soft Robot Evolver)
This repository uses Evolution Gym. It's a project in my short-term exchange period in University of Tsukuba.
-
Search.py: uses simple search algorithms to optimize the robot body for a given task. Random Search, GA and ES are implemented. Usepython Search.py -hfor options. -
Visualize.py: Visualizes the result of one robot running on one world file (note: it does not need to be the same ones that ran together originally!). Usepython Visualize -hfor options. -
run.sh: Used to run batch processes with one command.$./run.sh -
EC_algorithms/: To store algorithms and functions used by algorithms. -
EC_algorithms/utils.py: Functions used by algorithms. -
EC_algorithms/logger.py: A object used for record information during the algorithm running. -
world/: Objects define calculation method or start position for different task. The world json files store in evogym_world folder. sim_files include the world files in Evogym that not transform yet. T_world folder include the world files compatible with YASRE. -
world/json_transformer.py: A function can transform world in Evogym to a json file can be used in YASRE. -
robot/: Contain objects for robot. -
log/: Store log files. You can change the path with-doption in Search.py. -
evaluation/evaluate.py: Define evaluation method.
- Create a local python 3.10 environment using pyenv or similar
- Install evogym:
pip install evogym --upgrade(See evogym repository for details) - Install linux dependencies (for evogym):
sudo apt install xorg-dev libglu1-mesa-dev - Install python dependencies (for evogym):
pip install glfw PyOpenGL ttkbootstrap - Install python dependencies (for this repo):
pip install pygifsicle imageio
