A boat that can travel autonomously in a pool is to be developed. This boat should be able to avoid other boats, obstacles and walls. Furthermore, the boat should have additional functions which fulfill tasks in a scenario.
A pool which is 2m*3m large serves as a project area. In the middle of the pool there is an island. In the basin floats buoys on which RFID tags are placed. These are raw materials. The island is to be supplied autonomously with raw materials. The boat should move independently in the basin and scan the RFID tag when passing over a buoy. As soon as a boat has scanned an associated tag, it drives back to the island and switches back to the collection mode when it reaches the island.
We implemented three ultrasonic sensors on the front of our boat. It is constantly checked whether the distance of the central sensor falls below a threshold value. When this happens, the measured distances of the outer sensors are compared and a control signal is sent to the motors to the direction with the highest distance. By sensing the distance of the ultrasonic sensors, the boat can autonomously drive around objects.
The prototyping process covered three iterations.
With the different prototypes we carried out tests on code, ultrasonic sensors, fuselage and engine control. The knowledge gained from these tests was incorporated into the new prototypes at each iteration.
In order to guide the boat to the island after scanning an RFID buoy, we decided to track the boat with the help of certain markers from a camera, thereby reading out its coordinates and navigating it on the basis of the calculation of its rotation status towards the island. The tracking was forwarded to the Arduinodes Bootes via the Hiro library and a web socket. This knows the position and the rotation of the boat and its destination - the island or a resource day. Now the website tells the boat to rotate in a certain direction until the boat points straight ahead to its destination. Now the boat is supposed to drive in the direction of the target, where the direction is controlled again and again. If the boat knows an obstacle, an evasive manoeuvre is initiated until the obstacle is no longer in sight, then the position and rotation are checked again and the boat navigates again in the direction of the target.