ROME_P5

Dependencies:   mbed

Committer:
Inaueadr
Date:
Fri Apr 27 08:47:34 2018 +0000
Revision:
0:29be10cb0afc
Hallo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Inaueadr 0:29be10cb0afc 1 /*
Inaueadr 0:29be10cb0afc 2 * TaskMove.h
Inaueadr 0:29be10cb0afc 3 * Copyright (c) 2018, ZHAW
Inaueadr 0:29be10cb0afc 4 * All rights reserved.
Inaueadr 0:29be10cb0afc 5 */
Inaueadr 0:29be10cb0afc 6
Inaueadr 0:29be10cb0afc 7 #ifndef TASK_MOVE_H_
Inaueadr 0:29be10cb0afc 8 #define TASK_MOVE_H_
Inaueadr 0:29be10cb0afc 9
Inaueadr 0:29be10cb0afc 10 #include <cstdlib>
Inaueadr 0:29be10cb0afc 11 #include "Controller.h"
Inaueadr 0:29be10cb0afc 12 #include "Task.h"
Inaueadr 0:29be10cb0afc 13
Inaueadr 0:29be10cb0afc 14 /**
Inaueadr 0:29be10cb0afc 15 * This is a specific implementation of a task class that moves the robot with given velocities.
Inaueadr 0:29be10cb0afc 16 */
Inaueadr 0:29be10cb0afc 17 class TaskMove : public Task {
Inaueadr 0:29be10cb0afc 18
Inaueadr 0:29be10cb0afc 19 public:
Inaueadr 0:29be10cb0afc 20
Inaueadr 0:29be10cb0afc 21 static const float DEFAULT_DURATION; /**< Default duration, given in [s]. */
Inaueadr 0:29be10cb0afc 22
Inaueadr 0:29be10cb0afc 23 TaskMove(Controller& controller, float translationalVelocity, float rotationalVelocity);
Inaueadr 0:29be10cb0afc 24 TaskMove(Controller& controller, float translationalVelocity, float rotationalVelocity, float duration);
Inaueadr 0:29be10cb0afc 25 virtual ~TaskMove();
Inaueadr 0:29be10cb0afc 26 virtual int run(float period);
Inaueadr 0:29be10cb0afc 27
Inaueadr 0:29be10cb0afc 28 private:
Inaueadr 0:29be10cb0afc 29
Inaueadr 0:29be10cb0afc 30 Controller& controller; // reference to controller object to use
Inaueadr 0:29be10cb0afc 31 float translationalVelocity; // translational velocity, given in [m/s]
Inaueadr 0:29be10cb0afc 32 float rotationalVelocity; // rotational velocity, given in [rad/s]
Inaueadr 0:29be10cb0afc 33 float duration; // duration to move the robot, given in [s]
Inaueadr 0:29be10cb0afc 34 float time; // current time, given in [s]
Inaueadr 0:29be10cb0afc 35 };
Inaueadr 0:29be10cb0afc 36
Inaueadr 0:29be10cb0afc 37 #endif /* TASK_MOVE_H_ */
Inaueadr 0:29be10cb0afc 38