Class vector_fsm
Defined in File vector_fsm.hpp
Nested Relationships
Nested Types
Inheritance Relationships
Base Types
public cspatial::fsm::util_hfsm
public rer::client< vector_fsm >
public cosm::ta::taskable
(Class taskable)
Class Documentation
-
class vector_fsm : public cspatial::fsm::util_hfsm, public rer::client<vector_fsm>, public cosm::ta::taskable
An FSM used to send a robot to a particular ABSOLUTE location in the arena.
Vectoring is controlled by two PID loops: one for angle between robot heading and the heading to the goal, and one for distance of robot to the goal.
Arrival tolerance can be specified differently depending on what the goal is.
Public Functions
-
vector_fsm(const csfsm::fsm_params *params, rmath::rng *rng)
-
vector_fsm(const vector_fsm&) = delete
-
bool entered_interference(void) const override
-
bool exited_interference(void) const override
-
bool exp_interference(void) const override
-
void init(void) override
Initialize/re-initialize the FSM. After arriving at a goal, this function must be called before vectoring to a new goal will work.
-
boost::optional<rmath::vector3z> interference_loc3D(void) const override
-
vector_fsm &operator=(const vector_fsm&) = delete
-
inline const rmath::vector2d &target(void) const
-
virtual void task_execute(void) override
Execute the task.
-
inline virtual bool task_finished(void) const override
Determine if the task has finished yet.
- Returns:
TRUE
if the task has finished, andFALSE
otherwise.
-
virtual void task_reset(void) override
Reset the task so that it is ready for execution again. Does nothing by default.
-
inline virtual bool task_running(void) const override
Determine if the task has is still running yet.
- Returns:
TRUE
if the task is still running, andFALSE
otherwise.
-
virtual void task_start(ta::taskable_argument *c_arg) override
Start the task with the specified argument. The argument is consumed by the called function.
-
vector_fsm(const csfsm::fsm_params *params, rmath::rng *rng)