30 #ifndef _MIRA_PILOT_OBJECTIVE_H_ 31 #define _MIRA_PILOT_OBJECTIVE_H_ 45 namespace mira {
namespace pilot {
86 template<
typename Reflector>
89 r.member(
"Permit",
permit,
"");
90 r.member(
"Costs",
costs,
"");
110 mDissatisfactionReason(DissatisfactionReason::NO_REASON) {}
113 template<
typename Reflector>
131 return mSatisfaction;
139 mDissatisfactionReason = DissatisfactionReason::NO_REASON;
146 return mDissatisfactionReason;
166 MIRA_THROW(XNotImplemented,
"You need to implement ONE of the vote() methods");
179 return vote(v,lookAheadTime);
190 assert(!trajectory.empty());
191 return vote(trajectory.back().v, trajectory, lookAheadTime);
210 assert(!trajectory.empty());
228 mHaveWork = haveWork;
233 mSatisfaction = satisfaction;
234 mDissatisfactionReason = reason;
241 DissatisfactionReason mDissatisfactionReason;
Vote(Permit p, double c)
Definition: Objective.h:82
virtual void informDecision(const robot::PoseVelocityTrajectory &trajectory, float dt)
Is called after the decision was made by the local motion planner to inform each objective about the ...
Definition: Objective.h:209
virtual Vote vote(const Velocity2 &v, float lookAheadTime)
DEPRECATED - Please implement vote(const Trajectory& trajectory, float lookAheadTime) Is called multi...
Definition: Objective.h:165
void setHaveWork(bool haveWork)
indicate whether this objective has work or not. If not, it will be skipped by the planner...
Definition: Objective.h:227
virtual void informDecision(const Velocity2 &chosen, float dt)
DEPRECATED - Please implement informDecision(const Trajectory& trajectory, float dt) Is called after ...
Definition: Objective.h:201
std::vector< PoseVelocityTrajectorySample, Eigen::aligned_allocator< PoseVelocityTrajectorySample > > PoseVelocityTrajectory
Objective()
Definition: Objective.h:107
virtual bool reachedTask()
Definition: Objective.h:216
virtual void prepareVote(float lookAheadTime)
Is called before the vote() calls and gives the objective a change to prepare itself, e.g.
Definition: Objective.h:155
Definition: Objective.h:52
#define MIRA_REFLECT_BASE(reflector, BaseClass)
Definition: Objective.h:59
boost::shared_ptr< Task > TaskPtr
Definition: Objective.h:69
static const Vote DENY
Definition: Objective.h:75
virtual Vote vote(const Velocity2 &v, const robot::PoseVelocityTrajectory &trajectory, float lookAheadTime)
DEPRECATED - Please implement vote(const Trajectory& trajectory, float lookAheadTime) Is called multi...
Definition: Objective.h:178
void reflect(Reflector &r)
Definition: Objective.h:87
virtual Vote vote(const robot::PoseVelocityTrajectory &trajectory, float lookAheadTime)
Is called multiple times after prepareVote() to compute a cost value for the given trajectory...
Definition: Objective.h:189
#define MIRA_THROW(ex, msg)
Definition: Objective.h:67
Satisfaction
Definition: Objective.h:64
static const Vote UNREACHABLE
Definition: Objective.h:74
bool hasWork() const
Definition: Objective.h:122
virtual DissatisfactionReason getDissatisfactionReason()
Returns the reason for dissatisfaction.
Definition: Objective.h:145
Permit
Definition: Objective.h:57
virtual void updateRobotModel()
Definition: Objective.h:222
virtual ~Objective()
Definition: Objective.h:111
virtual void setTask(navigation::TaskPtr task)
Definition: Objective.h:214
virtual Satisfaction getSatisfaction()
Returns satisfaction for this Objective.
Definition: Objective.h:130
bool operator<(const Vote &rhs)
Definition: Objective.h:93
virtual void resetDissatisfaction()
Reset any kind of dissatisfaction.
Definition: Objective.h:137
Definition: Objective.h:60
Permit permit
Definition: Objective.h:101
static const Vote ALLOW
Definition: Objective.h:76
Vote()
Definition: Objective.h:78
virtual void update()
Definition: Objective.h:218
Definition: Objective.h:61
Definition: Objective.h:72
virtual void plan(Duration plantime)
Definition: Objective.h:220
Definition: Objective.h:68
double costs
Definition: Objective.h:102
void reflect(Reflector &r)
Definition: Objective.h:114
Definition: Objective.h:66
void setSatisfaction(Satisfaction satisfaction, DissatisfactionReason reason=DissatisfactionReason::NO_REASON)
indicate whether this objective is satisfied, dissatisfied or doesn't care.
Definition: Objective.h:232