Giter Club home page Giter Club logo

simple_model_predictive_control's Introduction

simple_model_predictive_control build

Overview

単純なモデル予測制御を実装しました。
予測モデルは、差動二輪ロボットをベースにしています。
最適化のためのソルバーは、ceres-solver/ceres-solverを使用しています。

Install & Build

sudo apt install cmake gnuplot libgoogle-glog-dev libeigen3-dev libceres-dev
git clone [email protected]:uhobeike/simple_model_predictive_control.git
cd simple_model_predictive_control
mkdir build && cd build
cmake .. && make && cd -

Run

./build/simple_mpc

Result

Image from Gyazo

iter      cost      cost_change  |gradient|   |step|    tr_ratio  tr_radius  ls_iter  iter_time  total_time
   0  1.032580e+03    0.00e+00    1.00e+00   0.00e+00   0.00e+00  1.00e+04        0    3.27e-03    3.37e-03
   1  7.124342e+01    9.61e+02    3.14e+00   3.46e-01   9.31e-01  2.78e+04        1    6.00e-03    9.42e-03
   2  3.173822e+01    3.95e+01    3.25e+00   6.66e-01   5.55e-01  2.79e+04        1    6.21e-03    1.57e-02
   3  1.329102e+00    3.04e+01    3.57e+00   4.33e-01   9.58e-01  8.36e+04        1    7.13e-03    2.28e-02
   4  1.512905e-01    1.18e+00    1.73e+00   1.94e-01   8.86e-01  1.55e+05        1    5.87e-03    2.87e-02
   5  1.240095e-02    1.39e-01    2.00e-01   1.65e-01   9.18e-01  3.73e+05        1    6.47e-03    3.52e-02
   6  3.172385e-03    9.23e-03    1.54e-01   1.31e-01   7.44e-01  4.22e+05        1    5.81e-03    4.10e-02
   7  3.842388e-04    2.79e-03    2.31e-02   2.10e-01   8.79e-01  7.47e+05        1    5.52e-03    4.66e-02
   8  1.774499e-04    2.07e-04    9.84e-03   1.92e-01   5.38e-01  7.47e+05        1    6.68e-03    5.33e-02
   9  1.773121e-04    1.38e-07    9.84e-03   6.62e-03   7.76e-04  3.74e+05        1    8.64e-03    6.19e-02
  10  1.773056e-04    1.44e-07    9.84e-03   6.63e-03   8.13e-04  9.34e+04        1    9.77e-03    7.17e-02
  11  1.772665e-04    1.83e-07    9.74e-03   6.70e-03   1.03e-03  4.69e+04        1    1.14e-02    8.32e-02
  12  1.765845e-04    6.82e-07    9.18e-03   3.95e-02   3.85e-03  2.37e+04        1    1.01e-02    9.33e-02
  13  1.743448e-04    2.24e-06    9.26e-03   3.60e-02   1.27e-02  1.23e+04        1    8.72e-03    1.02e-01
  14  1.728743e-04    1.47e-06    9.40e-03   3.11e-02   8.43e-03  6.31e+03        1    8.28e-03    1.10e-01
  15  1.721621e-04    7.12e-07    9.55e-03   2.77e-02   4.12e-03  3.19e+03        1    8.24e-03    1.19e-01
  16  1.713394e-04    8.23e-07    9.67e-03   2.57e-02   4.78e-03  1.62e+03        1    8.30e-03    1.27e-01
  17  1.677175e-04    3.62e-06    1.00e-02   1.18e-01   2.11e-02  8.62e+02        1    5.56e-03    1.32e-01
  18  1.721724e-04   -4.45e-06    1.00e-02   1.38e-01  -2.66e-02  4.31e+02        1    2.94e-02    1.62e-01
  19  1.293387e-04    3.84e-05    8.21e-03   1.38e-01   2.29e-01  3.72e+02        1    5.75e-03    1.68e-01
  20  1.248041e-04    4.53e-06    8.13e-03   3.96e-01   3.51e-02  2.06e+02        1    5.72e-03    1.73e-01
  21  8.394738e-05    4.09e-05    5.91e-03   5.42e-02   3.28e-01  1.98e+02        1    5.68e-03    1.79e-01
  22  7.593300e-05    8.01e-06    5.54e-03   4.08e-02   9.59e-02  1.30e+02        1    6.00e-03    1.85e-01
  23  5.214254e-05    2.38e-05    4.09e-03   2.30e-02   3.15e-01  1.23e+02        1    5.92e-03    1.91e-01
  24  4.569738e-05    6.45e-06    3.73e-03   1.32e-02   1.25e-01  8.67e+01        1    6.03e-03    1.97e-01
  25  3.267195e-05    1.30e-05    2.84e-03   8.74e-03   2.88e-01  8.06e+01        1    6.14e-03    2.03e-01
  26  2.828736e-05    4.38e-06    2.55e-03   7.43e-03   1.36e-01  5.82e+01        1    6.03e-03    2.09e-01
  27  2.048230e-05    7.81e-06    1.96e-03   6.24e-03   2.81e-01  5.36e+01        1    5.81e-03    2.15e-01
  28  1.760299e-05    2.88e-06    1.75e-03   6.21e-03   1.44e-01  3.94e+01        1    5.90e-03    2.21e-01
  29  1.274234e-05    4.86e-06    1.33e-03   5.55e-03   2.84e-01  3.65e+01        1    5.76e-03    2.27e-01
  30  1.086540e-05    1.88e-06    1.17e-03   5.75e-03   1.53e-01  2.73e+01        1    5.83e-03    2.33e-01
  31  7.862919e-06    3.00e-06    8.88e-04   5.19e-03   2.89e-01  2.54e+01        1    5.88e-03    2.39e-01
  32  6.688322e-06    1.17e-06    7.76e-04   5.47e-03   1.58e-01  1.93e+01        1    5.75e-03    2.44e-01
  33  4.878867e-06    1.81e-06    5.82e-04   4.81e-03   2.91e-01  1.80e+01        1    5.88e-03    2.50e-01
  34  4.185668e-06    6.93e-07    5.07e-04   5.00e-03   1.56e-01  1.35e+01        1    5.84e-03    2.56e-01
  35  3.093451e-06    1.09e-06    3.75e-04   4.12e-03   2.91e-01  1.26e+01        1    5.70e-03    2.62e-01
  36  2.712019e-06    3.81e-07    3.29e-04   4.20e-03   1.41e-01  9.22e+00        1    5.85e-03    2.68e-01
  37  2.029543e-06    6.82e-07    2.58e-04   3.16e-03   2.97e-01  8.64e+00        1    5.85e-03    2.74e-01
  38  1.838976e-06    1.91e-07    2.56e-04   3.24e-03   1.16e-01  5.94e+00        1    5.66e-03    2.79e-01
  39  1.392916e-06    4.46e-07    1.98e-04   2.23e-03   3.13e-01  5.65e+00        1    5.73e-03    2.85e-01
  40  1.308650e-06    8.43e-08    1.96e-04   2.43e-03   8.31e-02  3.58e+00        1    5.73e-03    2.91e-01
  41  1.018832e-06    2.90e-07    1.41e-04   1.61e-03   3.29e-01  3.44e+00        1    5.60e-03    2.96e-01
  42  9.805994e-07    3.82e-08    1.31e-04   1.71e-03   6.06e-02  2.05e+00        1    5.67e-03    3.02e-01
  43  8.120806e-07    1.69e-07    9.06e-05   1.26e-03   3.15e-01  1.95e+00        1    5.89e-03    3.08e-01
  44  7.897351e-07    2.23e-08    7.40e-05   1.45e-03   5.55e-02  1.15e+00        1    5.70e-03    3.14e-01
  45  7.024238e-07    8.73e-08    5.59e-05   1.04e-03   2.73e-01  1.05e+00        1    5.67e-03    3.19e-01
  46  6.850532e-07    1.74e-08    4.27e-05   1.62e-03   6.65e-02  6.34e-01        1    5.66e-03    3.25e-01
  47  6.450376e-07    4.00e-08    3.53e-05   9.89e-04   2.05e-01  5.26e-01        1    5.60e-03    3.31e-01
  48  6.310723e-07    1.40e-08    2.69e-05   1.50e-03   8.44e-02  3.34e-01        1    5.66e-03    3.36e-01
  49  6.149139e-07    1.62e-08    2.34e-05   1.06e-03   1.34e-01  2.40e-01        1    5.68e-03    3.42e-01
  50  6.064663e-07    8.45e-09    1.93e-05   1.13e-03   8.82e-02  1.54e-01        1    5.61e-03    3.48e-01
  51  6.002221e-07    6.24e-09    1.76e-05   8.61e-04   9.15e-02  9.97e-02        1    5.64e-03    3.53e-01
  52  5.964460e-07    3.78e-09    1.61e-05   8.85e-04   7.83e-02  6.23e-02        1    5.77e-03    3.59e-01
  53  5.940756e-07    2.37e-09    1.53e-05   7.42e-04   7.37e-02  3.85e-02        1    5.94e-03    3.65e-01
  54  5.926468e-07    1.43e-09    1.47e-05   4.35e-04   6.89e-02  2.35e-02        1    6.86e-03    3.72e-01
  55  5.917875e-07    8.59e-10    1.43e-05   2.31e-04   6.62e-02  1.42e-02        1    5.71e-03    3.78e-01
  56  5.912719e-07    5.16e-10    1.41e-05   1.33e-04   6.46e-02  8.55e-03        1    6.31e-03    3.84e-01
  57  5.909629e-07    3.09e-10    1.40e-05   7.89e-05   6.37e-02  5.13e-03        1    6.44e-03    3.91e-01
  58  5.907779e-07    1.85e-10    1.39e-05   4.72e-05   6.31e-02  3.08e-03        1    5.69e-03    3.96e-01
  59  5.906672e-07    1.11e-10    1.39e-05   2.83e-05   6.27e-02  1.85e-03        1    6.87e-03    4.03e-01
  60  5.906009e-07    6.63e-11    1.38e-05   1.69e-05   6.25e-02  1.10e-03        1    6.19e-03    4.09e-01
  61  5.905612e-07    3.97e-11    1.38e-05   1.01e-05   6.24e-02  6.62e-04        1    6.04e-03    4.15e-01
  62  5.905374e-07    2.37e-11    1.38e-05   6.07e-06   6.23e-02  3.96e-04        1    5.97e-03    4.21e-01
  63  5.905232e-07    1.42e-11    1.38e-05   3.63e-06   6.23e-02  2.37e-04        1    5.73e-03    4.27e-01
  64  5.905147e-07    8.50e-12    1.38e-05   2.17e-06   6.23e-02  1.42e-04        1    5.65e-03    4.33e-01
  65  5.905096e-07    5.09e-12    1.38e-05   1.30e-06   6.23e-02  8.49e-05        1    5.88e-03    4.39e-01
  66  5.905066e-07    3.04e-12    1.38e-05   7.79e-07   6.22e-02  5.08e-05        1    5.60e-03    4.44e-01
  67  5.905048e-07    1.82e-12    1.38e-05   4.66e-07   6.22e-02  3.04e-05        1    5.68e-03    4.50e-01
  68  5.905037e-07    1.09e-12    1.38e-05   2.79e-07   6.22e-02  1.82e-05        1    5.67e-03    4.56e-01
  69  5.905030e-07    6.52e-13    1.38e-05   1.67e-07   6.22e-02  1.09e-05        1    5.52e-03    4.61e-01
Ceres Solver Report: Iterations: 70, Initial cost: 1.032580e+03, Final cost: 5.905030e-07, Termination: CONVERGENCE
Initial velocity: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  omega: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
Final   velocity: 0, 0.135049, 0.149686, 0.147858, 0.134244, 0.133518, 0.131609, 0.128317, 0.124225, 0.120296, 0.116756, 0.110159, 0.104737, 0.0965443, 0.11373, 0.100285, 0.0991691, 0.100067, 0.101409, 0.103747, 0.106785, 0.110393, 0.114405, 0.118741, 0.123498, 0.111281, 0.144437, 0.132301, 0.134725, 0.137329, 0.139179, 0.140103, 0.1405, 0.141048, 0.141598, 0.139138, 0.135506, 0.129373, 0.133489, 0.124917,  omega: 0.563069, 0.271689, 0.0538583, -0.0763308, -0.0786377, -0.0415507, -0.0275034, -0.0382909, -0.0498934, -0.057907, -0.0645367, -0.0720145, -0.0803636, -0.0893672, -0.0942228, -0.0980076, -0.0992069, -0.097782, -0.0916037, -0.0842563, -0.0765681, -0.068881, -0.0611952, -0.053523, -0.0455831, -0.0356321, -0.0330142, -0.0256039, -0.0133146, -0.0112215, -0.0102517, -0.00657962, 0.0104808, 0.0237446, 0.0204859, 0.00376261, 0.0307743, -0.0268024, 0.0936738, 0, 

simple_model_predictive_control's People

Contributors

uhobeike avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.