Loading...
Searching...
No Matches
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
44namespace ompl
45{
46 namespace control
47 {
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
74
76 void setCurrentState(const base::ScopedState<> &state);
77
79 void setCurrentState(const base::State *state);
80
84 void setup() override;
85
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
Definition of a scoped state.
Definition: ScopedState.h:57
Definition of an abstract state.
Definition: State.h:50
Definition of an abstract control.
Definition: Control.h:48
Create the set of classes typically needed to solve a control problem when forward propagation is com...
base::PlannerStatus solve()
Run the planner until solution is found or user shuts down MORSE.
base::ScopedState< base::MorseStateSpace > getCurrentState() const
Get the current MORSE state (read parameters from MORSE bodies)
void setCurrentState(const base::ScopedState<> &state)
Set the current MORSE state (set parameters for MORSE bodies)
const base::MorseEnvironmentPtr & getEnvironment() const
Get the MORSE environment associated with this setup.
const base::MorseEnvironmentPtr env_
Pointer to the environment representing the MORSE simulation.
void setup() override
This method will create the necessary classes for planning. The solve() method will call this functio...
base::PathPtr simulate(unsigned int steps) const
Simulate the MORSE environment forward for steps simulation steps, using the null control (ompl::cont...
void playSolutionPath() const
Call playPath() on the solution path, if one is available.
void playPath(const base::PathPtr &path) const
Set the MORSE world to the states that are contained in a given path, sequentially.
base::PathPtr simulateControl(const double *control, unsigned int steps) const
Simulate the MORSE environment forward for steps simulation steps, using the control control....
Create the set of classes typically needed to solve a control problem.
Definition: SimpleSetup.h:63
Main namespace. Contains everything in this library.
A class to store the exit status of Planner::solve()
Definition: PlannerStatus.h:49