MorseSimpleSetup.h
1 /*********************************************************************
2 * Software License Agreement (BSD License)
3 *
4 * Copyright (c) 2010, Rice University
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials provided
16 * with the distribution.
17 * * Neither the name of the Rice University nor the names of its
18 * contributors may be used to endorse or promote products derived
19 * from this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 * POSSIBILITY OF SUCH DAMAGE.
33 *********************************************************************/
34 
35 /* Authors: Ioan Sucan, Caleb Voss */
36 
37 #ifndef OMPL_EXTENSION_MORSE_SIMPLE_SETUP_
38 #define OMPL_EXTENSION_MORSE_SIMPLE_SETUP_
39 
40 #include "ompl/control/SimpleSetup.h"
41 #include "ompl/extensions/morse/MorseEnvironment.h"
42 #include "ompl/extensions/morse/MorseStateSpace.h"
43 
44 namespace ompl
45 {
46  namespace control
47  {
50  class MorseSimpleSetup : public SimpleSetup
51  {
52  public:
54  const base::MorseEnvironmentPtr env_;
55 
60  MorseSimpleSetup(const base::MorseEnvironmentPtr &env);
61 
62  virtual ~MorseSimpleSetup()
63  {
64  }
65 
67  const base::MorseEnvironmentPtr &getEnvironment() const
68  {
69  return env_;
70  }
71 
73  base::ScopedState<base::MorseStateSpace> getCurrentState() const;
74 
76  void setCurrentState(const base::ScopedState<> &state);
77 
79  void setCurrentState(const base::State *state);
80 
84  void setup() override;
85 
87  base::PlannerStatus solve();
88 
91  void playPath(const base::PathPtr &path) const;
92 
94  void playSolutionPath() const;
95 
99  base::PathPtr simulateControl(const double *control, unsigned int steps) const;
100 
104  base::PathPtr simulateControl(const Control *control, unsigned int steps) const;
105 
110  base::PathPtr simulate(unsigned int steps) const;
111  };
112  }
113 }
114 
115 #endif
void playPath(const base::PathPtr &path) const
Set the MORSE world to the states that are contained in a given path, sequentially.
const base::MorseEnvironmentPtr env_
Pointer to the environment representing the MORSE simulation.
base::ScopedState< base::MorseStateSpace > getCurrentState() const
Get the current MORSE state (read parameters from MORSE bodies)
base::PathPtr simulate(unsigned int steps) const
Simulate the MORSE environment forward for steps simulation steps, using the null control (ompl::cont...
MorseSimpleSetup(const base::MorseEnvironmentPtr &env)
The control space is assumed to be MorseControlSpace. The state space is assumed to be MorseStateSpac...
void playSolutionPath() const
Call playPath() on the solution path, if one is available.
void setup() override
This method will create the necessary classes for planning. The solve() method will call this functio...
const base::MorseEnvironmentPtr & getEnvironment() const
Get the MORSE environment associated with this setup.
base::PathPtr simulateControl(const double *control, unsigned int steps) const
Simulate the MORSE environment forward for steps simulation steps, using the control control....
void setCurrentState(const base::ScopedState<> &state)
Set the current MORSE state (set parameters for MORSE bodies)
Main namespace. Contains everything in this library.
base::PlannerStatus solve()
Run the planner until solution is found or user shuts down MORSE.