Skip to content

Commit a385500

Browse files
committed
OMPL 1.7.0
1 parent e55d68c commit a385500

File tree

6,358 files changed

+157859
-78034
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

6,358 files changed

+157859
-78034
lines changed

2012/03/18/geometric-planning-for-car-like-vehicles.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ <h4><a href="http://mmoll.rice.edu">Mark Moll</a>
156156
</div>
157157

158158
<div class="defaultfullwidth">
159-
<p>For several vehicle models it is possible to compute the optimal (i.e., shortest) path between a start and end state. The two most commonly studied vehicle models are the Dubins car and the Reeds-Shepp car. Both are first-order models. The Dubins car’s controls are: go straight, turn left, and turn right. The Reeds-Shepp car has the same controls, but can also execute them in reverse. The optimal paths for these vehicles can be computed analytically and consist of 3 to 5 circle and straight-line segments. In OMPL we could model cars with a system of differential equations and use a control-based planner. For the Dubins and Reeds-Shepp cars, however, we simply use a geometric planner and plan in SE(2). Rather than straight-line interpolation between states, we’d like to use the appropriate optimal path in our local planner. This is done by creating two new state spaces, <code class="language-plaintext highlighter-rouge">ompl::base::DubinsStateSpace</code> and <code class="language-plaintext highlighter-rouge">ompl::base::ReedsSheppStateSpace</code>, that override the distance and interpolate member functions. The distance is redefined to be the length of the optimal path connecting two states.</p>
159+
<p>For several vehicle models it is possible to compute the optimal (i.e., shortest) path between a start and end state. The two most commonly studied vehicle models are the Dubins car and the Reeds-Shepp car. Both are first-order models. The Dubins car’s controls are: go straight, turn left, and turn right. The Reeds-Shepp car has the same controls, but can also execute them in reverse. The optimal paths for these vehicles can be computed analytically and consist of 3 to 5 circle and straight-line segments. In OMPL we could model cars with a system of differential equations and use a control-based planner. For the Dubins and Reeds-Shepp cars, however, we simply use a geometric planner and plan in SE(2). Rather than straight-line interpolation between states, we’d like to use the appropriate optimal path in our local planner. This is done by creating two new state spaces, <code class="highlighter-rouge">ompl::base::DubinsStateSpace</code> and <code class="highlighter-rouge">ompl::base::ReedsSheppStateSpace</code>, that override the distance and interpolate member functions. The distance is redefined to be the length of the optimal path connecting two states.</p>
160160

161161
<p>There is a demo program (demo_GeometricCarPlanning) that shows how to solve planning problems in this state space. Imagine a long corridor with the start and goal states of a Reeds-Shepp car at each end point, facing the wall. Normally, for a control based planner this could be a very challenging problem. With the Reeds-Shepp state space this is very easy and we get paths that looks like this:</p>
162162

2012/03/28/from-differential-equations-to-planning-in-one-function.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ <h4><a href="http://ryanluna.com">Ryan Luna</a>
162162

163163
<figure class="highlight"><pre><code class="language-c--" data-lang="c++"><span class="kt">void</span> <span class="n">ODE</span><span class="p">(</span><span class="k">const</span> <span class="n">ODESolver</span><span class="o">::</span><span class="n">StateType</span> <span class="o">&amp;</span><span class="n">q</span><span class="p">,</span> <span class="k">const</span> <span class="n">Control</span> <span class="o">*</span><span class="n">c</span><span class="p">,</span> <span class="n">ODESolver</span><span class="o">::</span><span class="n">StateType</span> <span class="o">&amp;</span><span class="n">qdot</span><span class="p">)</span>
164164
<span class="cm">/* Insert code here */</span>
165-
<span class="p">}</span></code></pre></figure>
165+
<span class="err">}</span></code></pre></figure>
166166

167-
<p>This method takes the input state q and a control c, and computes the change in the value of q, storing the differential into <code class="language-plaintext highlighter-rouge">qdot</code>. The <a href="http://ompl.kavrakilab.org/classompl_1_1control_1_1ODESolver.html">ODESolver</a> wraps around the open-source <a href="http://odeint.org">ODEInt library</a>, which provides methods for high-order numerical integration. Gone are the days of worrying about the numerical instability and potential large error of quick and dirty Euler integration. A StatePropagator object can be extracted from the ODESolver class which encapsulates the entire integration and update process.</p>
167+
<p>This method takes the input state q and a control c, and computes the change in the value of q, storing the differential into <code class="highlighter-rouge">qdot</code>. The <a href="http://ompl.kavrakilab.org/classompl_1_1control_1_1ODESolver.html">ODESolver</a> wraps around the open-source <a href="http://odeint.org">ODEInt library</a>, which provides methods for high-order numerical integration. Gone are the days of worrying about the numerical instability and potential large error of quick and dirty Euler integration. A StatePropagator object can be extracted from the ODESolver class which encapsulates the entire integration and update process.</p>
168168

169169
<p>A <a href="http://ompl.kavrakilab.org/odeint.html">tutorial</a> has been created to show how to use OMPL’s ODESolver class in further detail. A new demo is also bundled in OMPL v0.10, <a href="http://ompl.kavrakilab.org/RigidBodyPlanningWithODESolverAndControls_8cpp_source.html">rigid body planning with ODESolver and controls</a>, which shows a comparison with the “old” way of doing things and how the ODESolver simplifies this process. The ODEInt library is bundled with OMPL, so there is no extra dependency to install, and by using the ODESolver class you’ll be planning for your system in no time! Below are plots of actual paths computed using the ODESolver for an inverted pendulum and a second-order car:</p>
170170

2013/10/03/extending-ompl-support-for-optimal-path-planning-2.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,15 +162,15 @@ <h4><a href="http://luis.web.unc.edu">Luis Torres</a>
162162

163163
<h3 id="generalized-optimization-objectives">Generalized Optimization Objectives</h3>
164164

165-
<p>We refined and extended the interface for defining optimization objectives for planning in OMPL. Users can define their own objectives by implementing the <code class="language-plaintext highlighter-rouge">ompl::base::OptimizationObjective</code> interface. OMPL also includes predefined implementations of the following optimization objectives:</p>
165+
<p>We refined and extended the interface for defining optimization objectives for planning in OMPL. Users can define their own objectives by implementing the <code class="highlighter-rouge">ompl::base::OptimizationObjective</code> interface. OMPL also includes predefined implementations of the following optimization objectives:</p>
166166
<ul>
167167
<li>path length</li>
168168
<li>minimum path clearance</li>
169169
<li>general state cost integrals</li>
170170
<li>mechanical work</li>
171171
</ul>
172172

173-
<p>We also include functionality to easily combine optimization objectives using the <code class="language-plaintext highlighter-rouge">ompl::base::MultiOptimizationObjective</code> class.</p>
173+
<p>We also include functionality to easily combine optimization objectives using the <code class="highlighter-rouge">ompl::base::MultiOptimizationObjective</code> class.</p>
174174

175175
<h3 id="extending-optimizing-planner-support-for-generalized-optimization-objectives">Extending Optimizing Planner Support for Generalized Optimization Objectives</h3>
176176

2015/11/16/ompl-1-1.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ <h4><a href="http://mmoll.rice.edu">Mark Moll</a>
173173
<li><a href="http://omplapp.kavrakilab.org">New web-based based version of OMPL.app!</a> The web app has all the functionality of the standalone GUI. In addition, it allows you to interactively construct benchmark jobs that can be submitted to a benchmark server. We have a public version of the web app and benchmarking server running at <a href="http://omplapp.kavrakilab.org">http://omplapp.kavrakilab.org</a>, but the web app and benchmark server can also be run locally.</li>
174174
<li>There are two new concepts, ompl::base::InformedSampler and ompl::base::InformedStateSampler, that capture the idea of using information about the state space and the current solution cost to limit future search to a planning subproblem that contains all possibly better solutions. The ompl::base::PathLengthDirectInfSampler is derived from InformedStateSampler and can be used to limit sampling to only those states that can lead to a shorter path than the best-found solution so far. This sampler is used in ompl::geometric:InformedRRTstar and ompl::geometric::BITstar.</li>
175175
<li>The ompl::geometric::PathSimplifier can now also optimize a path with respect to a (sampleable) goal. This means, for example, that a solution path is no longer “stuck” with an awkward inverse kinematics solution for a goal.</li>
176-
<li>Added a <code class="language-plaintext highlighter-rouge">plannerarena</code> script to simplify running <a href="http://plannerarena.org">Planner Arena</a> locally.</li>
176+
<li>Added a <code class="highlighter-rouge">plannerarena</code> script to simplify running <a href="http://plannerarena.org">Planner Arena</a> locally.</li>
177177
<li>Added a new planner termination conditions that allow one to terminate after a fixed number of iterations.</li>
178178
<li>The GNAT data structure for nearest neighbor queries has been updated and should be faster in general. There is now also non-threadsafe version of the GNAT data structure that is automatically selected for single-threaded planners. This version should be even faster.</li>
179179
<li>Added an option to turn off the path simplification in benchmarking.</li>

ABITstar_8cpp_source.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,16 @@
199199
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; : <a class="code" href="namespaceompl.html">ompl</a>::geometric::BITstar(si, name)</div>
200200
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
201201
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// Enable cascading rewirings.</span></div>
202-
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classompl_1_1geometric_1_1BITstar_1_1SearchQueue.html#a2d47478fee6fc3223daa2febb4a0b57c">enableCascadingRewirings</a>(<span class="keyword">true</span>);</div>
202+
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; enableCascadingRewirings(<span class="keyword">true</span>);</div>
203203
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
204204
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Set the default initial inflation factor to very high.</span></div>
205-
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classompl_1_1geometric_1_1BITstar.html#a982de9ae5184862a71568959778f35f2">setInitialInflationFactor</a>(1000000.0);</div>
205+
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; setInitialInflationFactor(1000000.0);</div>
206206
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
207207
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Set the default inflation factor parameter to something reasonable.</span></div>
208-
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classompl_1_1geometric_1_1BITstar.html#a56b9b06f50f2ba2b4a297ad42c4a535d">setInflationScalingParameter</a>(10.0);</div>
208+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; setInflationScalingParameter(10.0);</div>
209209
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
210210
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Set the default truncation factor parameter to something reasonable.</span></div>
211-
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classompl_1_1geometric_1_1BITstar.html#ae3b0af00afd03522917165a4a3adf3e2">setTruncationScalingParameter</a>(5.0);</div>
211+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; setTruncationScalingParameter(5.0);</div>
212212
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
213213
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Declare the planner parameters.</span></div>
214214
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; Planner::declareParam&lt;double&gt;(<span class="stringliteral">&quot;initial_inflation_factor&quot;</span>, <span class="keyword">this</span>, &amp;<a class="code" href="classompl_1_1geometric_1_1ABITstar.html#a3345469c48c49dc44a8a5caa825d5d52">ABITstar::setInitialInflationFactor</a>,</div>
@@ -270,7 +270,6 @@
270270
<div class="ttc" id="aclassompl_1_1geometric_1_1BITstar_html_a2cae192982cb112cc37a5e314e3a351e"><div class="ttname"><a href="classompl_1_1geometric_1_1BITstar.html#a2cae192982cb112cc37a5e314e3a351e">ompl::geometric::BITstar::getInitialInflationFactor</a></div><div class="ttdeci">double getInitialInflationFactor() const</div><div class="ttdoc">Get the inflation factor for the initial search.</div><div class="ttdef"><b>Definition:</b> <a href="BITstar_8cpp_source.html#l01180">BITstar.cpp:1180</a></div></div>
271271
<div class="ttc" id="aclassompl_1_1geometric_1_1ABITstar_html_a3345469c48c49dc44a8a5caa825d5d52"><div class="ttname"><a href="classompl_1_1geometric_1_1ABITstar.html#a3345469c48c49dc44a8a5caa825d5d52">ompl::geometric::ABITstar::setInitialInflationFactor</a></div><div class="ttdeci">void setInitialInflationFactor(double factor)</div><div class="ttdoc">Set the inflation factor for the initial search.</div><div class="ttdef"><b>Definition:</b> <a href="ABITstar_8cpp_source.html#l00131">ABITstar.cpp:131</a></div></div>
272272
<div class="ttc" id="aclassompl_1_1geometric_1_1BITstar_html_a6c9eb86bf2a66c0a4b310075bbed0ab8"><div class="ttname"><a href="classompl_1_1geometric_1_1BITstar.html#a6c9eb86bf2a66c0a4b310075bbed0ab8">ompl::geometric::BITstar::getCurrentTruncationFactor</a></div><div class="ttdeci">double getCurrentTruncationFactor() const</div><div class="ttdoc">Get the truncation factor for the current search.</div><div class="ttdef"><b>Definition:</b> <a href="BITstar_8cpp_source.html#l01200">BITstar.cpp:1200</a></div></div>
273-
<div class="ttc" id="aclassompl_1_1geometric_1_1BITstar_1_1SearchQueue_html_a2d47478fee6fc3223daa2febb4a0b57c"><div class="ttname"><a href="classompl_1_1geometric_1_1BITstar_1_1SearchQueue.html#a2d47478fee6fc3223daa2febb4a0b57c">ompl::geometric::BITstar::SearchQueue::enableCascadingRewirings</a></div><div class="ttdeci">void enableCascadingRewirings(bool enable)</div><div class="ttdoc">Set whether cascading of rewirings is enabled.</div><div class="ttdef"><b>Definition:</b> <a href="SearchQueue_8cpp_source.html#l00135">SearchQueue.cpp:135</a></div></div>
274273
<div class="ttc" id="aclassompl_1_1geometric_1_1ABITstar_html_af051fb2c65aa866a21d2b39ca94c953c"><div class="ttname"><a href="classompl_1_1geometric_1_1ABITstar.html#af051fb2c65aa866a21d2b39ca94c953c">ompl::geometric::ABITstar::setInflationScalingParameter</a></div><div class="ttdeci">void setInflationScalingParameter(double parameter)</div><div class="ttdoc">Set the parameter for the inflation factor update policy.</div><div class="ttdef"><b>Definition:</b> <a href="ABITstar_8cpp_source.html#l00136">ABITstar.cpp:136</a></div></div>
275274
<div class="ttc" id="aclassompl_1_1geometric_1_1ABITstar_html_a20dc5dc1fed1c28c9af1c7cb195e1c8f"><div class="ttname"><a href="classompl_1_1geometric_1_1ABITstar.html#a20dc5dc1fed1c28c9af1c7cb195e1c8f">ompl::geometric::ABITstar::getInflationScalingParameter</a></div><div class="ttdeci">double getInflationScalingParameter() const</div><div class="ttdoc">Get the inflation scaling parameter.</div><div class="ttdef"><b>Definition:</b> <a href="ABITstar_8cpp_source.html#l00151">ABITstar.cpp:151</a></div></div>
276275
<div class="ttc" id="aclassompl_1_1geometric_1_1BITstar_html_ae3b0af00afd03522917165a4a3adf3e2"><div class="ttname"><a href="classompl_1_1geometric_1_1BITstar.html#ae3b0af00afd03522917165a4a3adf3e2">ompl::geometric::BITstar::setTruncationScalingParameter</a></div><div class="ttdeci">void setTruncationScalingParameter(double parameter)</div><div class="ttdoc">Sets the parameter that scales the truncation factor for the searches of each RGG approximation....</div><div class="ttdef"><b>Definition:</b> <a href="BITstar_8cpp_source.html#l01170">BITstar.cpp:1170</a></div></div>

0 commit comments

Comments
 (0)