Figs.
WALL
FOLLOWING
Abstract
The lab is composed of designing and
building a robot using LEGO
Mindstorm® EV3 kit, installing the
leJOS software on it, and writing java
code for two types of controller
namely Bang-bang controller and P-
controller to run on the system. The
primary objective is to make the robot
‘autonomously implement a wall-
following routine. The Robot is
required to use the Ultrasonic sensor
to detect some wooden blocks that
form the wall and navigate around
without touching it. The wall contains
gaps, both concave and convex
corners and the robot is required to
make successful laps around the wall
set up.
Group: 22
Tanbin Tahsin Chowdhury
Michel AbdelnourDesign Evaluation
The EV3 brick with an attached
rechargeable 10v battery, is the core of
the structure and the brain of the robot
that runs the software. The three other
major components are the two motors
and the ultrasonic sensor. The two
motors are attached on either side of the
brick while the sensor is placed on top-
left hand side at a 45-degree angle. A
third wheel arrangement was attached at
the back for balance and allowed to
rotate freely to work with turns. The
motors and the sensor was connected to
the brick using ethernet cables. All the
parts were attached with different
combinational pillars and parts
emphasizing to keep the center of gravity
low and produce a compact, functional,
and robust structure. A micro SD card
inserted to the brick ran the lelOS
software with the code being provided
from a computer through a micro-USB
cable.
To run the robot, two different
controllers; bang-bang, and p type
controllers were implemented. The bang-
bang controller operates like a step-
function that abruptly switches between
Figsa.2 two states- on or off depending on the
feedback. The p controller on the other
hand uses proportionality logic to
determine the output based on the error
and alters the speed to make the desired
motion. (error= distance-band-center)Test Data
Bang-bang controller
Test # Does it Complete lap? _| Band-Centre (cm) Observations
1 No 25 = Oscillates
back and
forth.
- Failed to
make a 180
degree turn
2 No 30 - No
oscillation
- Hits the wall
when it
gets too
close to it.
3 yes 35 = No
oscillation
- Wide turns
P controller
Does it
Testi Multiplier (left- Band-Center (cm) complete —_| Observations
Right) (cm) fap?
1 22 40 No = Slower Concave
turns
2 12-2 40 No -Failed to
make a 180
degree turn
3 82 40 Yes “Successfully done
Table: 1.0Test Analysis
Majority of the data collection was done by visual supervision while performing
trial and error to obtain the optimal values that ensure the desired motion for the
robot. In the Bang-Bang controller, the band-center was introduced for the robot
to maintain a required distance from the wall, while being within the range of the
bandwidth. However, in practice, both controllers failed at keeping the required
distance from the wall as the robot oscillated within the bandwidth range.
This is a consequence of over-correction. The bandwidth makes the robot run ina
straight line once it is within the required distance. After making a turn through a
corner, the robot was not being able to maintain the band Centre consistently. It
mostly entered the bandwidth range where it was too close to the wall and it kept
going straight until the threshold was reached.
When the robot was going beyond the bandwidth range, the outer wheel would
speed up to make the robot stay within the range. Therefore, after making a turn,
it went straight at a different angle until it reached the threshold again. This
process kept repeating itself and the robot kept oscillating from one side of the
band Centre to other.
Since in Bang-Bang controller, motors had fixed speeds when entering a specific
distance range from the wall, it was more prominent compared to P-controller.Observation and Conclusion
The ultrasonic sensor detected very large distances when the robot got too close
to the wall. A large value, i.e., 20k+ would show up on the EV3 display. However,
the sensor quickly oscillated between this large value and the correct value. This
behavior of the robot was observed more after turning through convex corners;
the robot would travel straight to the wall rather than following it. This large
value was a false negative since the sensor could not detect the wall too close to
it. This problem was solved by making a sharp right turn whenever the sensor
detected the correct value. This way, the robot could overcome left turns caused
by the large value. The sensor detected no false positives.
Initially, the ultrasonic sensor faced difficulties detecting gaps between the
wooden bricks. Particularly, in cases, when the robot completed a turn through
corners or made a complete 180-degree turn. This problem was solved by using
the given filter in p controller as well as performing trial and error to adjust the
band Centre and change the speed of wheels while turning corners.
For concave corners, adjusting the band Centre and increasing the speed of inner
wheel and decreasing the speed of the outer wheel helped to make turns
smoother. In the case of convex corners, the speed of outer wheel was increased
and the inner wheel was decreased proportionally by performing trial and error.Further Improvements
Sensor Rotation:
The robot would have detected the gaps better if the sensor was allowed to rotate but
would cause a time delay, which can be fixed by deciding the time and angle of rotation.
More number of sensors:
One sensor does not give enough information in all scenarios. Using two sensors instead of
one would result in better performance of the robot. One sensor placed parallel to the wall,
the other one situated at a 45-degree angle would detect the wall and make turns
smoother.
Backwards Travel:
Implementing a code that allows the robot to go backwards after it had crashed the wall,
instead of being stuck trying to rotate the wheels, would enable the robot to continue
even after if it had made error in judgements and lead to better efficiency of the robot.
PID controller:
Using PID (Proportional Integrated Derivative) controller instead of Bang-Bang or p type
controller would have resulted in better performance, since PID controller is more efficient.
Batteries fully charge
During testing, we observed that the sensor performance slightly depends on the amount
of charge in the battery. Hence, charging the battery fully before testing can bring
improvements in performance.Appen
; ba Borg Conbrsliec