Class CoveragePOMDP
Defined in File coverage_pomdp.h
Inheritance Relationships
Base Type
public despot::DSPOMDP
Class Documentation
-
class CoveragePOMDP : public despot::DSPOMDP
POMDP model for coverage planning problems under spatio temporal uncertainty.
Members:
_memory_pool: A memory pool for allocating CoverageStates
_fov: A vector of GridCells relative to the robot’s position which capture its FOV.
_imac: The IMac instance used for planning
_beliefSampler: The IMac belief sampler used for the simulator
_timeBound: The planning horizon in timesteps
Public Functions
Constructor initialises members.
- Parameters:
fov – The robot’s field of view as a vector of grid cells relative to the robot’s position
imac – The IMac instance used for planning
timeBound – The planning horizon in timesteps
-
bool Step(despot::State &state, double random_num, despot::ACT_TYPE action, double &reward, despot::OBS_TYPE &obs) const
The deterministic simulative model for the POMDP. Avoids enumerating the whole POMDP, which is huge.
- Parameters:
state – The current state of the system (assumed known). Should be updated with the successor state
random_num – A single random number which should dictate the successor state and observation
action – The action to be executed
reward – The reward value. Should be updated with current step’s reward
obs – The current observation. Should be updated with current step’s observation
- Returns:
True if the successor state is a terminal state
-
int NumActions() const
Returns the number of actions. Makes the assumption that all actions are enabled at each state (not ideal).
TODO: In the future, see if I can extend this to be dependent on the state of belief
- Returns:
The number of executable actions
-
double ObsProb(despot::OBS_TYPE obs, const despot::State &state, despot::ACT_TYPE action) const
Return the probability of observing obs given we took action and reached state.
- Parameters:
obs – The latest observation
state – The state we ended up at after executing action
action – The action executed
- Returns:
The probability of making the observation
-
despot::Belief *InitialBelief(const despot::State *start, std::string type = "DEFAULT") const
Return the initial belief, which corresponds to the initial IMac belief.
- Parameters:
start – A (partial) initial state, e.g. the robot’s initial position
type – A parameter which allows to specify the type of the belief
- Returns:
The initial belief
-
double GetMaxReward() const
Returns the maximal immediate reward.
- Returns:
The maximum immediate reward
-
despot::ValuedAction GetBestAction() const
Returns (a, v), where a is an action with largest minimum reward when it is executed, and v is its minimum reward, that is, a = \max_{a’} \min_{s} R(a’, s), and v = \min_{s} R(a, s) (copied from superclass as I can’t explain it better).
- Returns:
The action with the largest minimum reward
-
despot::ScenarioUpperBound *CreateScenarioUpperBound(std::string name = "DEFAULT", std::string particleBoundName = "DEFAULT") const
Override to allow for MaxCellsUpperBound.
- Parameters:
name – Name of the upper bound
particleBoundName – Name of the base ParticleUpperBound
- Returns:
The upper bound
-
despot::ParticleLowerBound *CreateParticleLowerBound(std::string name = "DEFAULT") const
Override to allow for ZeroParticleLowerBound.
- Parameters:
name – Name of the particle lower bound
- Returns:
The particle lower bound
-
despot::ScenarioLowerBound *CreateScenarioLowerBound(std::string bound_name = "DEFAULT", std::string particleBoundName = "DEFAULT") const
Override to allow for GreedyCoverageDefaultPolicy.
- Parameters:
name – Name of the lower bound
particleBoundName – Name of the ParticleLowerBound to be used
-
void PrintState(const despot::State &state, std::ostream &out = std::cout) const
Prints a state.
- Parameters:
state – The state to print
out – The stream to write the state to
-
void PrintObs(const despot::State &state, despot::OBS_TYPE obs, std::ostream &out = std::cout) const
Prints an observation.
- Parameters:
state – The current state
obs – The latest observation
out – The stream to write the observation to
-
void PrintAction(despot::ACT_TYPE action, std::ostream &out = std::cout) const
Prints an action.
- Parameters:
action – The action to print
out – The stream to write the action to
-
void PrintBelief(const despot::Belief &belief, std::ostream &out = std::cout) const
Prints a belief.
- Parameters:
belief – The belief to print
out – The stream to write the belief to
-
despot::State *Allocate(int state_id = -1, double weight = 0) const
Allocate a state using the memory pool.
- Parameters:
state_id – The state’s ID
weight – The weight of the allocated state
- Returns:
A pointer to the newly allocated state
-
despot::State *Copy(const despot::State *state) const
Copy a state.
- Parameters:
state – The state to copy
- Returns:
A pointer to the state copy
-
void Free(despot::State *state) const
Deallocate a state in the memory pool.
- Parameters:
state – The state to deallocate
-
int NumActiveParticles() const
Returns the number of allocated particles (sampled states). All examples set this to the number of particles in the memory pool.
- Returns:
The number of active particles