TrussBot

The simulation and multi-objective optimization framework for trussBot.

Installation

pip install -r requirements.txt

Examples

  1. Train a table for multiple objectives with pure GA.
python examples/train_table_GA.py

GA results will be under './output/GA_{Data}-{Time}' folder, named as 'iPool_{# of generations}'

  1. Visualize the GA result.
python examples/show_table.py
  1. Train RL on top of a GA optimized truss.
python utils/ppo/main.py

A gym environment will be initialized based a GA result. You can change the GA result by changing the following three lines in the main.py file.

data = pickle.loadTruss(open('./output/GA_531-8-36-53/iPool_580', 'rb'))
moo = data['elitePool'][5]['moo']
iObjective = 1
  1. To visualize the training result.
python utils/ppo/visualize.py --env-name='trained_0613'

Make sure the GA result is the same as the one in main.py Change the env-name to the .pt file generated by main.py, which is by default in the trained_models directory. Keep closing the visualization window to see the frame-by-frame motions