Robot Requirements
- If the robot is at its destination (goal distance = 0 km) and its previous action was going forward or backward, the robot shall stop.
- The robot shall not attempt to take a sample unless it is in sampling mode, nor shall it attempt to take a sample if its battery level is depleted.
- If the robot is in sampling mode and cannot take a sample, it shall stop to recharge until its battery level is full (5).
- The robot shall not take a sample when its memory is full; instead the robot shall report its data to empty its memory before continuing to take samples.
- The robot shall not report its data when its battery level is depleted.
- The robot shall not attempt to move or turn when its battery level is low or depleted.
- If the robot has been sampling and now has a new destination (goal distance > 0 km) then it shall report its data before turning to face its new destination.
- The robot shall continue moving in the same direction if the goal distance is at least 1 km and its mode is enroute.
- If the robot's battery level is depleted, the robot's next action shall be stop.
- If the robot's path is blocked, it shall go backwards if its mode is random; otherwise, it shall turn.
- The robot shall move backward if it is mode is enroute and it missed its goal (goal distance < 0 km).
- The robot shall turn if its goal distance is at least 2 km and its mode is random.
- The robot shall submit a report only if its battery level is high or full.
- In case of any other ambiguity with regards to which action to take, the robot shall stop.