Webots Python (Empty worlds: “Lab2_epuck.zip”)
Webots’ e-puck robot has three distance sensors1 (front, left and right). Each distance sensor has a lookupTable field that indicates min and max readings. For the lab, the distance readings are between 0 and 1.27 meters (50 inches).
C.3 Task 3 – Wall FollowingImplement four wall following algorithms while applying the PID controller from Task 1:
Implement “Lab2_Task3_CorridorLeftTurns.py” (Figure 4 – left).Implement “Lab2_Task3_CorridorRightTurns.py” (Figure 4 – left).Implement “Lab2_Task3_MazeLeftTurns.py” (Figure 4 – right).Implement “Lab2_Task3_MazeRightTurns.py” (Figure 4 – right).If the robot reaches 7 inches from any end wall it should make a 90-degree. If no 90-degree turns are possible, it should make a 180-degree turn, and continue wall following in the opposite direction. The robot should navigate no further away than 7 inches from the wall it is following. The robot can start at any grid cell with any orientation and should stop when completing a full path by calculating the time it takes. Depending on the original orientation the robot my follow a different path. Task should be completed in less than 3 minutes. During evaluation, the TA will start the robot at different initial positions and orientations in the corridor or maze.
C.4 Task 4 –Bug Zero AlgorithmImplement a program called “Lab2_Task4.py”. The robot should follow the Bug Zero algorithm, using the world shown in Figure 5. The goal is represented by the yellow-colored cylinder. The robot should follow walls no further than 8.4 inches away from them. The robot may use any of its sensors, including camera. Task should be completed in less than 3 minutes. During evaluation, the TA will start the robot at different initial positions and orientations.
C.5 Task 5 – Tangent Bug Algorithm (Task + Plot) (Extra Credit)Implement three different controllers for the Tangent Bug Algorithm using the Figure 5 world: Implement “Lab2_Task5_ZeroRangeSensor.py” using a sensor range of no further than 7 inches.Implement “Lab2_Task5_FiniteRangeSensor.py” using a sensor range of 15 inches.Implement “Lab2_Task5_InfiniteRangeSensor.py” using an “infinite” sensor range.The algorithm should be based on the Tangent Bug Finite Range Sensor, using the world shown in Figure 5. Provide a diagram showing all hit, leave, and min points for each of the 3 subtasks. Note that you can modify the distance sensor range by: (a) modifying the distance sensor range in Webots corresponding sensor lookup table, or (b) comparing distance ranges directly in your Python code. You should get sensor readings as often as possible, and you may choose to add a Lidar range sensor or rotate your robot in order to get multiple readings of your front distance sensor to obtain endpoints for the intervals of continuity. Task should be completed in less than 3 minutes. During evaluation, the TA will start the robot at different initial positions and orientations.