-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deploying to gh-pages from @ a25b9d1 🚀
- Loading branch information
1 parent
5dbdc97
commit 63157d9
Showing
224 changed files
with
11,819 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml"> | ||
<head> | ||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | ||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | ||
<meta name="generator" content="Doxygen 1.9.1"/> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"/> | ||
<title>MIMPC++: include/sim/MPCLeafSystem.hpp Source File</title> | ||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="jquery.js"></script> | ||
<script type="text/javascript" src="dynsections.js"></script> | ||
<link href="search/search.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="search/searchdata.js"></script> | ||
<script type="text/javascript" src="search/search.js"></script> | ||
<script type="text/x-mathjax-config"> | ||
MathJax.Hub.Config({ | ||
extensions: ["tex2jax.js"], | ||
jax: ["input/TeX","output/HTML-CSS"], | ||
}); | ||
</script> | ||
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script> | ||
<link href="doxygen.css" rel="stylesheet" type="text/css" /> | ||
</head> | ||
<body> | ||
<div id="top"><!-- do not remove this div, it is closed by doxygen! --> | ||
<div id="titlearea"> | ||
<table cellspacing="0" cellpadding="0"> | ||
<tbody> | ||
<tr style="height: 56px;"> | ||
<td id="projectalign" style="padding-left: 0.5em;"> | ||
<div id="projectname">MIMPC++ | ||
</div> | ||
<div id="projectbrief">A fast typesafe Mixed Integer MPC C++ library</div> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</div> | ||
<!-- end header part --> | ||
<!-- Generated by Doxygen 1.9.1 --> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ | ||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html'); | ||
/* @license-end */ | ||
</script> | ||
<script type="text/javascript" src="menudata.js"></script> | ||
<script type="text/javascript" src="menu.js"></script> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ | ||
$(function() { | ||
initMenu('',true,false,'search.php','Search'); | ||
$(document).ready(function() { init_search(); }); | ||
}); | ||
/* @license-end */</script> | ||
<div id="main-nav"></div> | ||
<!-- window showing the filter options --> | ||
<div id="MSearchSelectWindow" | ||
onmouseover="return searchBox.OnSearchSelectShow()" | ||
onmouseout="return searchBox.OnSearchSelectHide()" | ||
onkeydown="return searchBox.OnSearchSelectKey(event)"> | ||
</div> | ||
|
||
<!-- iframe showing the search results (closed by default) --> | ||
<div id="MSearchResultsWindow"> | ||
<iframe src="javascript:void(0)" frameborder="0" | ||
name="MSearchResults" id="MSearchResults"> | ||
</iframe> | ||
</div> | ||
|
||
<div id="nav-path" class="navpath"> | ||
<ul> | ||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_7a55efb13937f868f8144ef9f510f0c6.html">sim</a></li> </ul> | ||
</div> | ||
</div><!-- top --> | ||
<div class="header"> | ||
<div class="headertitle"> | ||
<div class="title">MPCLeafSystem.hpp</div> </div> | ||
</div><!--header--> | ||
<div class="contents"> | ||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#pragma once</span></div> | ||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  </div> | ||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor">#include "drake/systems/framework/leaf_system.h"</span></div> | ||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include "MPC.hpp"</span></div> | ||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include "<a class="code" href="System_8hpp.html">System.hpp</a>"</span></div> | ||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  </div> | ||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="keyword">namespace </span>mimpc::simulation {</div> | ||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  <span class="keyword">template</span><<span class="keyword">class</span> MPCType> requires std::derived_from<MPCType, MPC<typename MPCType::SYSTEM_TYPE, typename MPCType::SOLVER_TYPE>></div> | ||
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classmimpc_1_1simulation_1_1MPCLeafSystem.html"> 9</a></span>  <span class="keyword">class </span><a class="code" href="classmimpc_1_1simulation_1_1MPCLeafSystem.html">MPCLeafSystem</a> : <span class="keyword">public</span> drake::systems::LeafSystem<double> {</div> | ||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  <span class="keyword">public</span>:</div> | ||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div> | ||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  <a class="code" href="classmimpc_1_1simulation_1_1MPCLeafSystem.html">MPCLeafSystem</a>(MPCType &reacsaSolver, <span class="keywordtype">double</span> control_dt,</div> | ||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  <span class="keyword">const</span> MPCType::SYSTEM_TYPE::StateVec &state_constraints_lb,</div> | ||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  <span class="keyword">const</span> MPCType::SYSTEM_TYPE::StateVec &state_constraints_ub);</div> | ||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div> | ||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  ~<a class="code" href="classmimpc_1_1simulation_1_1MPCLeafSystem.html">MPCLeafSystem</a>() <span class="keyword">override</span>;</div> | ||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div> | ||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="keyword">private</span>:</div> | ||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  MPCType &reacsa_solver_;</div> | ||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keywordtype">double</span> control_dt_;</div> | ||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  MPCType::SYSTEM_TYPE::StateVec state_constraints_lb_;</div> | ||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  MPCType::SYSTEM_TYPE::StateVec state_constraints_ub_;</div> | ||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div> | ||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  drake::systems::InputPort<double> *plant_out_port_;</div> | ||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  drake::systems::OutputPort<double> *mpc_time_port_;</div> | ||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  drake::systems::OutputPort<double> *control_out_port_;</div> | ||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  drake::systems::DiscreteStateIndex control_out_state_;</div> | ||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  drake::systems::DiscreteStateIndex mpc_time_out_state_;</div> | ||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> | ||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  drake::systems::EventStatus discreteUpdate(<span class="keyword">const</span> drake::systems::Context<double> &context,</div> | ||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  drake::systems::DiscreteValues<double> *discrete_state) <span class="keyword">const</span>;</div> | ||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> | ||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  };</div> | ||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> }</div> | ||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "MPCLeafSystem.tpp"</span></div> | ||
<div class="ttc" id="aSystem_8hpp_html"><div class="ttname"><a href="System_8hpp.html">System.hpp</a></div><div class="ttdoc">Abstract class to represent system dynamics.</div></div> | ||
<div class="ttc" id="aclassmimpc_1_1simulation_1_1MPCLeafSystem_html"><div class="ttname"><a href="classmimpc_1_1simulation_1_1MPCLeafSystem.html">mimpc::simulation::MPCLeafSystem</a></div><div class="ttdef"><b>Definition:</b> MPCLeafSystem.hpp:9</div></div> | ||
</div><!-- fragment --></div><!-- contents --> | ||
<!-- start footer part --> | ||
<hr class="footer"/><address class="footer"><small> | ||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 | ||
</small></address> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml"> | ||
<head> | ||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | ||
<meta http-equiv="X-UA-Compatible" content="IE=9"/> | ||
<meta name="generator" content="Doxygen 1.9.1"/> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"/> | ||
<title>MIMPC++: include/MPC.hpp Source File</title> | ||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="jquery.js"></script> | ||
<script type="text/javascript" src="dynsections.js"></script> | ||
<link href="search/search.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="search/searchdata.js"></script> | ||
<script type="text/javascript" src="search/search.js"></script> | ||
<script type="text/x-mathjax-config"> | ||
MathJax.Hub.Config({ | ||
extensions: ["tex2jax.js"], | ||
jax: ["input/TeX","output/HTML-CSS"], | ||
}); | ||
</script> | ||
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script> | ||
<link href="doxygen.css" rel="stylesheet" type="text/css" /> | ||
</head> | ||
<body> | ||
<div id="top"><!-- do not remove this div, it is closed by doxygen! --> | ||
<div id="titlearea"> | ||
<table cellspacing="0" cellpadding="0"> | ||
<tbody> | ||
<tr style="height: 56px;"> | ||
<td id="projectalign" style="padding-left: 0.5em;"> | ||
<div id="projectname">MIMPC++ | ||
</div> | ||
<div id="projectbrief">A fast typesafe Mixed Integer MPC C++ library</div> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</div> | ||
<!-- end header part --> | ||
<!-- Generated by Doxygen 1.9.1 --> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ | ||
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html'); | ||
/* @license-end */ | ||
</script> | ||
<script type="text/javascript" src="menudata.js"></script> | ||
<script type="text/javascript" src="menu.js"></script> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ | ||
$(function() { | ||
initMenu('',true,false,'search.php','Search'); | ||
$(document).ready(function() { init_search(); }); | ||
}); | ||
/* @license-end */</script> | ||
<div id="main-nav"></div> | ||
<!-- window showing the filter options --> | ||
<div id="MSearchSelectWindow" | ||
onmouseover="return searchBox.OnSearchSelectShow()" | ||
onmouseout="return searchBox.OnSearchSelectHide()" | ||
onkeydown="return searchBox.OnSearchSelectKey(event)"> | ||
</div> | ||
|
||
<!-- iframe showing the search results (closed by default) --> | ||
<div id="MSearchResultsWindow"> | ||
<iframe src="javascript:void(0)" frameborder="0" | ||
name="MSearchResults" id="MSearchResults"> | ||
</iframe> | ||
</div> | ||
|
||
<div id="nav-path" class="navpath"> | ||
<ul> | ||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul> | ||
</div> | ||
</div><!-- top --> | ||
<div class="header"> | ||
<div class="headertitle"> | ||
<div class="title">MPC.hpp</div> </div> | ||
</div><!--header--> | ||
<div class="contents"> | ||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#pragma once</span></div> | ||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  </div> | ||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor">#include "<a class="code" href="Solver_8hpp.html">Solver.hpp</a>"</span></div> | ||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include <type_traits></span></div> | ||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include <concepts></span></div> | ||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  </div> | ||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="keyword">namespace </span>mimpc {</div> | ||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  <span class="keyword">template</span><<span class="keyword">class</span> SystemType, <span class="keyword">class</span> SolverType> requires</div> | ||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  std::derived_from<SystemType, System<SystemType::NUM_STATES, SystemType::NUM_CONT_INPUTS, SystemType::NUM_BIN_INPUTS>> &&</div> | ||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  std::derived_from<SolverType, Solver<SystemType, SolverType::PRED_STEPS, SolverType::MIN_STEPS_ON, SolverType::MIN_STEPS_OFF, SolverType::MAX_STEPS_ON, SolverType::NUM_STEPS_SOLVER_DELAY, SolverType::INTEGRATION_SCHEME>></div> | ||
<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classmimpc_1_1MPC.html"> 17</a></span>  <span class="keyword">class </span><a class="code" href="classmimpc_1_1MPC.html">MPC</a> {</div> | ||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="keyword">public</span>:</div> | ||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  <span class="keyword">using</span> SYSTEM_TYPE = SystemType;</div> | ||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keyword">using</span> SOLVER_TYPE = SolverType;</div> | ||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="keyword">private</span>:</div> | ||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  SolverType &solver_;</div> | ||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  Eigen::Matrix<double, SystemType::NUM_STATES, SolverType::PRED_STEPS + 1, Eigen::RowMajor> last_x_;</div> | ||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  Eigen::Matrix<double, SystemType::NUM_CONT_INPUTS +</div> | ||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  SystemType::NUM_BIN_INPUTS, SolverType::PRED_STEPS, Eigen::RowMajor> last_u_;</div> | ||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  Eigen::Matrix<double,</div> | ||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  SystemType::NUM_CONT_INPUTS + SystemType::NUM_BIN_INPUTS,</div> | ||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  SolverType::history_depth + SolverType::NUM_STEPS_SOLVER_DELAY> history_;</div> | ||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">public</span>:</div> | ||
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classmimpc_1_1MPC.html#ad9e6ec21ff1b0b43d022fd536359ee76"> 35</a></span>  <span class="keyword">explicit</span> <a class="code" href="classmimpc_1_1MPC.html#ad9e6ec21ff1b0b43d022fd536359ee76">MPC</a>(SolverType &solver);</div> | ||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> | ||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classmimpc_1_1MPC.html#a4724571ea495f05120558446cfa56931"> 46</a></span>  <a class="code" href="Solver_8hpp.html#a383cda20e6b30b64cccaac7a84042133">SOLVER_RETURN</a> <a class="code" href="classmimpc_1_1MPC.html#a4724571ea495f05120558446cfa56931">control</a>(<span class="keyword">const</span> SystemType::StateVec &state, SystemType::InputVec &input, std::string &stats);</div> | ||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> | ||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">virtual</span> ~<a class="code" href="classmimpc_1_1MPC.html">MPC</a>() = <span class="keywordflow">default</span>;</div> | ||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  };</div> | ||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> };</div> | ||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> | ||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "MPC.tpp"</span></div> | ||
<div class="ttc" id="aSolver_8hpp_html"><div class="ttname"><a href="Solver_8hpp.html">Solver.hpp</a></div><div class="ttdoc">Abstract class that represents any solver interface and provides a low-lever mpc solver interface.</div></div> | ||
<div class="ttc" id="aSolver_8hpp_html_a383cda20e6b30b64cccaac7a84042133"><div class="ttname"><a href="Solver_8hpp.html#a383cda20e6b30b64cccaac7a84042133">mimpc::SOLVER_RETURN</a></div><div class="ttdeci">SOLVER_RETURN</div><div class="ttdef"><b>Definition:</b> Solver.hpp:18</div></div> | ||
<div class="ttc" id="aclassmimpc_1_1MPC_html"><div class="ttname"><a href="classmimpc_1_1MPC.html">mimpc::MPC</a></div><div class="ttdef"><b>Definition:</b> MPC.hpp:17</div></div> | ||
<div class="ttc" id="aclassmimpc_1_1MPC_html_a4724571ea495f05120558446cfa56931"><div class="ttname"><a href="classmimpc_1_1MPC.html#a4724571ea495f05120558446cfa56931">mimpc::MPC::control</a></div><div class="ttdeci">SOLVER_RETURN control(const SystemType::StateVec &state, SystemType::InputVec &input, std::string &stats)</div></div> | ||
<div class="ttc" id="aclassmimpc_1_1MPC_html_ad9e6ec21ff1b0b43d022fd536359ee76"><div class="ttname"><a href="classmimpc_1_1MPC.html#ad9e6ec21ff1b0b43d022fd536359ee76">mimpc::MPC::MPC</a></div><div class="ttdeci">MPC(SolverType &solver)</div></div> | ||
</div><!-- fragment --></div><!-- contents --> | ||
<!-- start footer part --> | ||
<hr class="footer"/><address class="footer"><small> | ||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 | ||
</small></address> | ||
</body> | ||
</html> |
Oops, something went wrong.