Class EnergyFunctionalCoverageRobot

Inheritance Relationships

Base Type

Class Documentation

class EnergyFunctionalCoverageRobot : public POMDPCoverageRobot

Subclass of POMDPCoverageRobot which instead uses the energy functional method in ‘New brooms sweep clean - An autonomous robotic cleaning assistant for professional office cleaning’.

At each time step, the robot chooses a target which minimises an energy function. If the target is not a neighbour, we choose the neighbour which gets us closest.

Members: As in superclass, plus:

  • _useWallPointTerm: A boolean flag. If true, we use the wall point term that appears in the reference implementation, but not the relevant papers.

Public Functions

inline EnergyFunctionalCoverageRobot(const GridCell &currentLoc, int timeBound, int xDim, int yDim, const std::vector<GridCell> &fov, std::shared_ptr<IMacExecutor> exec, std::shared_ptr<IMac> groundTruthIMac = nullptr, const ParameterEstimate &estimationType = ParameterEstimate::posteriorSample, bool useWallPointTerm = true)

Constructor calls super constructor and initialises new members.

Parameters:
  • currentLoc – The robot’s current location

  • timeBound – The planning time bound

  • xDim – The x dimension of the map

  • yDim – The y dimension of the map

  • exec – The IMacExecutor representing the environment

  • fov – The robot’s FOV as a vector of relative grid cells

  • groundTruthIMac – The ground truth IMac instance (if we don’t want to use BiMac)

  • estimationType – The type of parameter estimation to use for IMac instance for episode

  • useWallPointTerm – If true, we use the wall point term that appears in the reference implementation, but not the relevant papers.