Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 1099e73f16f15ba3cf656e619f52a447 > files > 711

ompl-devel-0.9.5-1.fc14.x86_64.rpm

<!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::ODEStatePropagator 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</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_1ODEStatePropagator.html">ODEStatePropagator</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">ompl::control::ODEStatePropagator Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="ompl::control::ODEStatePropagator" --><!-- doxytag: inherits="ompl::control::StatePropagator" -->
<p>State propagation with ODE. Only forward propagation is possible.  
 <a href="classompl_1_1control_1_1ODEStatePropagator.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="ODEStatePropagator_8h_source.html">ODEStatePropagator.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ompl::control::ODEStatePropagator:</div>
<div class="dyncontent">
<div class="center"><img src="classompl_1_1control_1_1ODEStatePropagator__inherit__graph.png" border="0" usemap="#ompl_1_1control_1_1ODEStatePropagator_inherit__map" alt="Inheritance graph"/></div>
<map name="ompl_1_1control_1_1ODEStatePropagator_inherit__map" id="ompl_1_1control_1_1ODEStatePropagator_inherit__map">
<area shape="rect" id="node2" href="classompl_1_1control_1_1StatePropagator.html" title="ompl::control::StatePropagator" alt="" coords="20,5,217,35"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classompl_1_1control_1_1ODEStatePropagator-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="abb81a9eb1b645af56f97cd949101256c"></a><!-- doxytag: member="ompl::control::ODEStatePropagator::ODEStatePropagator" ref="abb81a9eb1b645af56f97cd949101256c" args="(const SpaceInformationPtr &amp;si)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#abb81a9eb1b645af56f97cd949101256c">ODEStatePropagator</a> (const <a class="el" href="classompl_1_1control_1_1SpaceInformationPtr.html">SpaceInformationPtr</a> &amp;si)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a representation of ODE state propagator. If <em>si-&gt;getStateSpace()</em> does not cast to an <a class="el" href="classompl_1_1control_1_1ODEStateSpace.html" title="State space representing ODE states.">ODEStateSpace</a>, an exception is thrown. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada4e8dee03f70fc98681bbc10043201a"></a><!-- doxytag: member="ompl::control::ODEStatePropagator::getEnvironment" ref="ada4e8dee03f70fc98681bbc10043201a" args="(void) const " -->
const <a class="el" href="classompl_1_1control_1_1ODEEnvironmentPtr.html">ODEEnvironmentPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#ada4e8dee03f70fc98681bbc10043201a">getEnvironment</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the ODE environment this state propagator operates on. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac269902d1aee0368a2af8c20950cbc5a"></a><!-- doxytag: member="ompl::control::ODEStatePropagator::canPropagateBackward" ref="ac269902d1aee0368a2af8c20950cbc5a" args="(void) const " -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#ac269902d1aee0368a2af8c20950cbc5a">canPropagateBackward</a> (void) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Some systems can only propagate forward in time (i.e., the <em>duration</em> argument for the <a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#a1bc9b3fab2758857581c8e04059f3acc" title="Propagate from a state, given a control, for some specified amount of time (the amount of time can al...">propagate()</a> function is always positive). If this is the case, this function should return false. Planners that need backward propagation (negative durations) will call this function to check. If backward propagation is possible, this function should return true (this is the default). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#a1bc9b3fab2758857581c8e04059f3acc">propagate</a> (const <a class="el" href="classompl_1_1base_1_1State.html">base::State</a> *state, const <a class="el" href="classompl_1_1control_1_1Control.html">Control</a> *control, const double duration, <a class="el" href="classompl_1_1base_1_1State.html">base::State</a> *result) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Propagate from a state, given a control, for some specified amount of time (the amount of time can also be negative, if <a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#ac269902d1aee0368a2af8c20950cbc5a" title="Some systems can only propagate forward in time (i.e., the duration argument for the propagate() func...">canPropagateBackward()</a> returns true)  <a href="#a1bc9b3fab2758857581c8e04059f3acc"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34c00224375b95acc7eee4f21e55a3c6"></a><!-- doxytag: member="ompl::control::ODEStatePropagator::env_" ref="a34c00224375b95acc7eee4f21e55a3c6" args="" -->
<a class="el" href="classompl_1_1control_1_1ODEEnvironmentPtr.html">ODEEnvironmentPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#a34c00224375b95acc7eee4f21e55a3c6">env_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The ODE environment this state propagator operates on. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>State propagation with ODE. Only forward propagation is possible. </p>
<p>At every propagation step, controls are applied using <a class="el" href="classompl_1_1control_1_1ODEEnvironment.html#a63631eea956ae809f68412fa71218214" title="Application of a control. This function sets the forces/torques/velocities for bodies in the simulati...">ODEEnvironment::applyControl()</a>, contacts are computed by calling <b>dSpaceCollide()</b> on the spaces in <a class="el" href="classompl_1_1control_1_1ODEEnvironment.html#ac0eba2a3d6bb57f365878c70c7f30f00" title="The set of spaces where contacts need to be evaluated before simulation takes place.">ODEEnvironment::collisionSpaces_</a> and then <b>dWorldQuickStep()</b> is called. If the <em>state</em> argument of <a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#a1bc9b3fab2758857581c8e04059f3acc" title="Propagate from a state, given a control, for some specified amount of time (the amount of time can al...">propagate()</a> does not have its <a class="el" href="classompl_1_1control_1_1ODEStateSpace_1_1StateType.html#a1ba5dfafa14052fd4a9ee317cddcd596" title="Flag containing information about state validity.">ODEStateSpace::StateType::collision</a> field set, it is set based on the information returned by contact computation. Certain collisions (contacts) are allowed, as indicated by <a class="el" href="classompl_1_1control_1_1ODEEnvironment.html#ad9a735c35a15101711f7ba96e44ea15e" title="Decide whether a collision is a valid one or not. In some cases, collisions between some bodies can b...">ODEEnvironment::isValidCollision()</a>. </p>

<p>Definition at line <a class="el" href="ODEStatePropagator_8h_source.html#l00062">62</a> of file <a class="el" href="ODEStatePropagator_8h_source.html">ODEStatePropagator.h</a>.</p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a1bc9b3fab2758857581c8e04059f3acc"></a><!-- doxytag: member="ompl::control::ODEStatePropagator::propagate" ref="a1bc9b3fab2758857581c8e04059f3acc" args="(const base::State *state, const Control *control, const double duration, base::State *result) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ompl::control::ODEStatePropagator::propagate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classompl_1_1base_1_1State.html">base::State</a> *&#160;</td>
          <td class="paramname"><em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classompl_1_1control_1_1Control.html">Control</a> *&#160;</td>
          <td class="paramname"><em>control</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>duration</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classompl_1_1base_1_1State.html">base::State</a> *&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Propagate from a state, given a control, for some specified amount of time (the amount of time can also be negative, if <a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#ac269902d1aee0368a2af8c20950cbc5a" title="Some systems can only propagate forward in time (i.e., the duration argument for the propagate() func...">canPropagateBackward()</a> returns true) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">state</td><td>the state to start propagating from </td></tr>
    <tr><td class="paramname">control</td><td>the control to apply </td></tr>
    <tr><td class="paramname">duration</td><td>the duration for which the control is applied </td></tr>
    <tr><td class="paramname">result</td><td>the state the system is brought to</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This function is <b>not used for integration</b> internally. If integrating a system of differential equations is needed, this should be implemented inside the <a class="el" href="classompl_1_1control_1_1ODEStatePropagator.html#a1bc9b3fab2758857581c8e04059f3acc" title="Propagate from a state, given a control, for some specified amount of time (the amount of time can al...">propagate()</a> function.</dd>
<dd>
The pointer to the starting state and the result state may be the same. </dd></dl>

<p>Implements <a class="el" href="classompl_1_1control_1_1StatePropagator.html#a5f3bedb55a1980d3d2c06ae0a39d8246">ompl::control::StatePropagator</a>.</p>

<p>Definition at line <a class="el" href="ODEStatePropagator_8cpp_source.html#l00098">98</a> of file <a class="el" href="ODEStatePropagator_8cpp_source.html">ODEStatePropagator.cpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/ompl/extensions/ode/<a class="el" href="ODEStatePropagator_8h_source.html">ODEStatePropagator.h</a></li>
<li>src/ompl/extensions/ode/src/<a class="el" href="ODEStatePropagator_8cpp_source.html">ODEStatePropagator.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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</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> &bull;
  <a href="http://www.cs.rice.edu">Department of Computer Science</a> &bull;
  <a href="http://www.rice.edu">Rice University</a><br>
  <div class="gray">Generated on Sun Oct 9 2011 23:04:32 by&#160;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.7.4</div>
</div>
</div>
</body>
</html>