<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/> <title>OMPL: ompl::control::ODESimpleSetup Class Reference</title> <meta name="author" content="Ioan A. Șucan, Mark Moll, Lydia E. Kavraki"> <link rel="stylesheet" href="../css/screen.css" type="text/css" media="screen, projection"> <link rel="stylesheet" href="../css/print.css" type="text/css" media="print"> <!--[if lt IE 7]> <script type="text/javascript" src="../js/jquery/jquery.js"></script> <script type="text/javascript" src="../js/jquery/jquery.dropdown.js"></script> <![endif]--> <script type="text/javaScript" src="search/search.js"></script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-9156598-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </head> <body onload='searchBox.OnSelectItem(0);'> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search API'); --></script> <div class="navigation" id="top"> <div class="tabs" id="ompltitle"> <ul class="tablist"> <li>The Open Motion Planning Library</li> <li id="searchli"> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search API" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> <ul id="nav" class="dropdown"> <li class="first"><a href="index.html">Home</a></li> <li><a href="download.html">Download</a></li> <li><a href="documentation.html">Documentation</a></li> <li><span class="dir">Code API</span> <ul> <li><a href="api_overview.html">API Overview</a></li> <li><a href="namespaces.html">Namespaces</a></li> <li><a href="annotated.html">Classes</a></li> <li><a href="files.html">Files</a></li> <li><a href="dirs.html">Directories</a></li> </ul> </li> <li><span class="dir">Community</span> <ul> <li><a href="developers.html">Developers</a></li> <li><a href="thirdparty.html">Contributions</a></li> <li><a href="education.html">Education</a></li> <li><a href="gallery.html">Gallery</a></li> </ul> </li> <li><span class="dir">About</span> <ul> <li><a href="license.html">License</a></li> <li><a href="citations.html">Citations</a></li> <li><a href="acknowledgements.html">Acknowledgments</a></li> <li><a href="contact.html">Contact Us</a></li> </ul> </li> </ul> </div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0"name="MSearchResults" id="MSearchResults"></iframe> </div> <div class="container"> <div class="span-22 push-2 first last"> <div> <!-- Generated by Doxygen 1.7.4 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceompl.html">ompl</a> </li> <li class="navelem"><a class="el" href="namespaceompl_1_1control.html">control</a> </li> <li class="navelem"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html">ODESimpleSetup</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <div class="title">ompl::control::ODESimpleSetup Class Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="ompl::control::ODESimpleSetup" --><!-- doxytag: inherits="ompl::control::SimpleSetup" --> <p>Create the set of classes typically needed to solve a control problem when forward propagation is computed with ODE. <a href="classompl_1_1control_1_1ODESimpleSetup.html#details">More...</a></p> <p><code>#include <<a class="el" href="ODESimpleSetup_8h_source.html">ODESimpleSetup.h</a>></code></p> <div class="dynheader"> Inheritance diagram for ompl::control::ODESimpleSetup:</div> <div class="dyncontent"> <div class="center"><img src="classompl_1_1control_1_1ODESimpleSetup__inherit__graph.png" border="0" usemap="#ompl_1_1control_1_1ODESimpleSetup_inherit__map" alt="Inheritance graph"/></div> <map name="ompl_1_1control_1_1ODESimpleSetup_inherit__map" id="ompl_1_1control_1_1ODESimpleSetup_inherit__map"> <area shape="rect" id="node2" href="classompl_1_1control_1_1SimpleSetup.html" title="Create the set of classes typically needed to solve a control problem." alt="" coords="20,5,199,35"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="classompl_1_1control_1_1ODESimpleSetup-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7fec105008325483fc6603cc101f9e9"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::ODESimpleSetup" ref="ac7fec105008325483fc6603cc101f9e9" args="(const ControlSpacePtr &space)" -->  </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#ac7fec105008325483fc6603cc101f9e9">ODESimpleSetup</a> (const <a class="el" href="classompl_1_1control_1_1ControlSpacePtr.html">ControlSpacePtr</a> &space)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor needs the control space needed for planning. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a038e355a3ad42cddf1f68500610e324a"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::ODESimpleSetup" ref="a038e355a3ad42cddf1f68500610e324a" args="(const base::StateSpacePtr &space)" -->  </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a038e355a3ad42cddf1f68500610e324a">ODESimpleSetup</a> (const <a class="el" href="classompl_1_1base_1_1StateSpacePtr.html">base::StateSpacePtr</a> &space)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The control space is assumed to be <a class="el" href="classompl_1_1control_1_1ODEControlSpace.html" title="Representation of controls applied in ODE environments. This is an array of double values...">ODEControlSpace</a>. Constructor only needs the state space. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac71636c2864bf837020453fc25d259cf"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::ODESimpleSetup" ref="ac71636c2864bf837020453fc25d259cf" args="(const ODEEnvironmentPtr &env)" -->  </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#ac71636c2864bf837020453fc25d259cf">ODESimpleSetup</a> (const <a class="el" href="classompl_1_1control_1_1ODEEnvironmentPtr.html">ODEEnvironmentPtr</a> &env)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The control space is assumed to be <a class="el" href="classompl_1_1control_1_1ODEControlSpace.html" title="Representation of controls applied in ODE environments. This is an array of double values...">ODEControlSpace</a>. The state space is assumed to be <a class="el" href="classompl_1_1control_1_1ODEStateSpace.html" title="State space representing ODE states.">ODEStateSpace</a>. Constructor only needs the ODE environment. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbab64b91c2b550c374b58204217990b"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::getEnvironment" ref="afbab64b91c2b550c374b58204217990b" args="(void) const " --> const <a class="el" href="classompl_1_1control_1_1ODEEnvironmentPtr.html">ODEEnvironmentPtr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#afbab64b91c2b550c374b58204217990b">getEnvironment</a> (void) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the ODE environment associated to the state and control spaces. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5a2cf5e850ea67ea0d025d9a5a58425"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::getCurrentState" ref="ae5a2cf5e850ea67ea0d025d9a5a58425" args="(void) const " --> <a class="el" href="classompl_1_1base_1_1ScopedState.html">base::ScopedState</a>< <a class="el" href="classompl_1_1control_1_1ODEStateSpace.html">ODEStateSpace</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#ae5a2cf5e850ea67ea0d025d9a5a58425">getCurrentState</a> (void) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current ODE state (read parameters from ODE bodies) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9882600709aaeb5c6e458f8b511d2275"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::setCurrentState" ref="a9882600709aaeb5c6e458f8b511d2275" args="(const base::ScopedState<> &state)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a9882600709aaeb5c6e458f8b511d2275">setCurrentState</a> (const <a class="el" href="classompl_1_1base_1_1ScopedState.html">base::ScopedState</a><> &state)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current ODE state (set parameters for ODE bodies) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76e4289383cf64287b998fdbbc668202"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::setCurrentState" ref="a76e4289383cf64287b998fdbbc668202" args="(const base::State *state)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a76e4289383cf64287b998fdbbc668202">setCurrentState</a> (const <a class="el" href="classompl_1_1base_1_1State.html">base::State</a> *state)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current ODE state (set parameters for ODE bodies) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1037f263163e24773eb58cd1b5c7077"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::setVolumeBounds" ref="ad1037f263163e24773eb58cd1b5c7077" args="(const base::RealVectorBounds &bounds)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#ad1037f263163e24773eb58cd1b5c7077">setVolumeBounds</a> (const <a class="el" href="classompl_1_1base_1_1RealVectorBounds.html">base::RealVectorBounds</a> &bounds)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the bounds for the planning volume. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41832954b5e38b4db36a44873ef9ba3e"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::setLinearVelocityBounds" ref="a41832954b5e38b4db36a44873ef9ba3e" args="(const base::RealVectorBounds &bounds)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a41832954b5e38b4db36a44873ef9ba3e">setLinearVelocityBounds</a> (const <a class="el" href="classompl_1_1base_1_1RealVectorBounds.html">base::RealVectorBounds</a> &bounds)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the bounds for the linear velocity. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3feb0b7bdefea9b23baec45981814c8d"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::setAngularVelocityBounds" ref="a3feb0b7bdefea9b23baec45981814c8d" args="(const base::RealVectorBounds &bounds)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a3feb0b7bdefea9b23baec45981814c8d">setAngularVelocityBounds</a> (const <a class="el" href="classompl_1_1base_1_1RealVectorBounds.html">base::RealVectorBounds</a> &bounds)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the bounds for the angular velocity. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04f8efe4335db146c6428a70cad0aea7"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::playPath" ref="a04f8efe4335db146c6428a70cad0aea7" args="(const base::PathPtr &path, double timeFactor=1.0) const " --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a04f8efe4335db146c6428a70cad0aea7">playPath</a> (const <a class="el" href="classompl_1_1base_1_1PathPtr.html">base::PathPtr</a> &path, double timeFactor=1.0) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the ODE world to the states that are contained in a given path, sequentially. Using <em>timeFactor</em>, the speed at which this sequence is iterated through is altered. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7e59917b0d3902cf221e21b3076ea27"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::playSolutionPath" ref="ad7e59917b0d3902cf221e21b3076ea27" args="(double timeFactor=1.0) const " --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#ad7e59917b0d3902cf221e21b3076ea27">playSolutionPath</a> (double timeFactor=1.0) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Call <a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a04f8efe4335db146c6428a70cad0aea7" title="Set the ODE world to the states that are contained in a given path, sequentially. Using timeFactor...">playPath()</a> on the solution path, if one is available. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0be66b54296ac7b1330626d4cc0ac139"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::simulateControl" ref="a0be66b54296ac7b1330626d4cc0ac139" args="(const double *control, unsigned int steps) const " --> <a class="el" href="classompl_1_1base_1_1PathPtr.html">base::PathPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a0be66b54296ac7b1330626d4cc0ac139">simulateControl</a> (const double *control, unsigned int steps) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Simulate the ODE environment forward for <em>steps</em> simulation steps, using the control <em>control</em>. Construct a path representing this action. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb2f9a526c1d3c40cdf3a2cbd09eede3"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::simulateControl" ref="aeb2f9a526c1d3c40cdf3a2cbd09eede3" args="(const Control *control, unsigned int steps) const " --> <a class="el" href="classompl_1_1base_1_1PathPtr.html">base::PathPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#aeb2f9a526c1d3c40cdf3a2cbd09eede3">simulateControl</a> (const <a class="el" href="classompl_1_1control_1_1Control.html">Control</a> *control, unsigned int steps) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Simulate the ODE environment forward for <em>steps</em> simulation steps, using the control <em>control</em>. Construct a path representing this action. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2750bd137966d5bb6a05d0a6ec4465c4"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::simulate" ref="a2750bd137966d5bb6a05d0a6ec4465c4" args="(unsigned int steps) const " --> <a class="el" href="classompl_1_1base_1_1PathPtr.html">base::PathPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#a2750bd137966d5bb6a05d0a6ec4465c4">simulate</a> (unsigned int steps) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Simulate the ODE environment forward for <em>steps</em> simulation steps, using the null control (<a class="el" href="classompl_1_1control_1_1ControlSpace.html#ab0d214352867b65976297b2f0bc6e57f" title="Make the control have no effect if it were to be applied to a state for any amount of time...">ompl::control::ControlSpace::nullControl()</a>). Construct a path representing this action. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4717bef9f554daf4f282a0fe38dd509"></a><!-- doxytag: member="ompl::control::ODESimpleSetup::setup" ref="af4717bef9f554daf4f282a0fe38dd509" args="(void)" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODESimpleSetup.html#af4717bef9f554daf4f282a0fe38dd509">setup</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This method will create the necessary classes for planning. The <a class="el" href="classompl_1_1control_1_1SimpleSetup.html#a279efbe5f659a47e1749a3947a1f978e" title="Run the planner for a specified amount of time (default is 1 second)">solve()</a> method will call this function automatically. <br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Create the set of classes typically needed to solve a control problem when forward propagation is computed with ODE. </p> <p>Definition at line <a class="el" href="ODESimpleSetup_8h_source.html#l00053">53</a> of file <a class="el" href="ODESimpleSetup_8h_source.html">ODESimpleSetup.h</a>.</p> </div><hr/>The documentation for this class was generated from the following files:<ul> <li>src/ompl/extensions/ode/<a class="el" href="ODESimpleSetup_8h_source.html">ODESimpleSetup.h</a></li> <li>src/ompl/extensions/ode/src/<a class="el" href="ODESimpleSetup_8cpp_source.html">ODESimpleSetup.cpp</a></li> </ul> </div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a></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> <div class="footer span-22 push-2 last"> <a href="http://www.kavrakilab.org">Physical and Biological Computing Group</a> • <a href="http://www.cs.rice.edu">Department of Computer Science</a> • <a href="http://www.rice.edu">Rice University</a><br> <div class="gray">Generated on Sun Oct 9 2011 23:04:43 by <a href="http://www.doxygen.org/index.html">doxygen</a> 1.7.4</div> </div> </div> </body> </html>