52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# PythonLinearnNonlinearControl Quickstart Guide
|
|
|
|
This is a quickstart guide for users who just want to try PythonLinearNonlinearControl.
|
|
If you have not installed PythonLinearNonLinearControl, please see the section of "how to setup" in README.md
|
|
|
|
When we design control systems, we should have Environment, Model, Planner, Controller and Runner.
|
|
Therefore your script contains those Modules.
|
|
|
|
First, import each Modules from PythonLinearNonlinearControl.
|
|
|
|
```py
|
|
from PythonLinearNonlinearControl import configs
|
|
from PythonLinearNonlinearControl import envs
|
|
from PythonLinearNonlinearControl import models
|
|
from PythonLinearNonlinearControl import planners
|
|
from PythonLinearNonlinearControl import controllers
|
|
from PythonLinearNonlinearControl import runners
|
|
```
|
|
|
|
Configs contains each modules configurations such as cost functions, prediction length, ...etc.
|
|
|
|
Then you can make each module. (This is example about CEM and CartPole env)
|
|
|
|
```py
|
|
config = configs.CartPoleConfigModule()
|
|
env = envs.CartPoleEnv()
|
|
model = models.CartPoleModel(config)
|
|
planner = controllers.CEM(config, model)
|
|
runner = planners.ConstantPlanner(config)
|
|
controller = runners.ExpRunner()
|
|
```
|
|
|
|
The preparation for experiment has done!
|
|
Please run the runner.
|
|
|
|
```py
|
|
history_x, history_u, history_g = runner.run(env, controller, planner)
|
|
```
|
|
|
|
You can get the results of history of state, history of input and history of goal.
|
|
Use that histories to visualize the Animation or Figures.
|
|
(Note FirstOrderEnv does not support animation)
|
|
|
|
```py
|
|
# plot results
|
|
plot_results(args, history_x, history_u, history_g=history_g)
|
|
save_plot_data(args, history_x, history_u, history_g=history_g)
|
|
|
|
# create animation
|
|
animator = Animator(args, env)
|
|
animator.draw(history_x, history_g)
|
|
``` |