Tip:
Highlight text to annotate it
X
Hello, Good Evening. I am Edwin.
And I am Yong Liang on News MDP Tonight
Local news. Recently, there is a special robot spotted
on the NTU campus which can autonomously explore
an area and plan the route back to the starting point
at the shortest time.
The robot is created by a team of 8 NTU students
and this magnificent robot consist of 4 component.
The Arduino, Raspberry Pi, Android and Algorithm.
Let's pass the time to our on site reporter Rayner
to bring us more about this robot.
Thank you Yong Liang. I am now in NTU with the Team.
I'm here to show you the first hand in-sight of the robot.
Let us see the Algorithm behind the robot.
The algorithm used to compute the shortest path from
starting point to goal is A* algorithm.
The reason we chose this algorithm is that is the
most popular search algorithm which use the heuristic
function to guide itself to search even a potential
large map well. It is a combination of Dijkstra's
algorithm and best-first, while balances two
to get the optimal path.
We did customize the computed route into data format
that meet the needs of our Arduino developer
for easier control in robot's movements.
And the output string combines 2 type of data which
are number and ascii code where the numbers
indicate the direction of movement and the ASCII
character beside each number show how much
to move in each direction.
Now that we have know more about the algorithm,
let us find out how the robot connects
with each of the component.
We know that Raspberry Pi is for connection of
Arduino, PC and Nexus 7 tablet.
For connection,
Arduino, the Raspberry Pi connects it via USB cable.
In this serial communication,
the data is sent as a serial stream.
For the Laptop, the Raspberry Pi and Laptop
communicate via a Wi-Fi dongle device.
In this case, the Raspberry Pi plays a role as Server
point to generate Wi-Fi signals
and wait for connection from the Laptop.
The last one, to connect the Tablet, our Raspberry Pi
also plays a role as Server point, but in this case,
the signals are generated by Bluetooth device.
So now we've already made the connection between
the Laptop, Nexus Tablet and Arduino,
but how could it transmit data between the devices?
So to solve this problem, we set the prefix words
ARD to Arduino , MAP to Laptop & AND for the Nexus.
So now, the Raspberry Pi can understand which data is
sent from which device to run function in the Python
Now that we have know how the robot connect
with each of the component,
I am curious to find out how the map is displayed.
For the Android, it serves as the remote control
for the team's robotic system.
It has two main components, which are the
Bluetooth connection and the real time maze update.
As you can see, this is the page that will be seen by
the user upon running the application.
The main advantages of our application is once a
device is selected from the list of the found devices,
robust connectivity are ensured with the
selected Bluetooth device.
Our android application will not hang up if the
connectivity with the device is temporarily lost.
It will automatically re-established connection once the
Bluetooth device connects with the application again.
Once it is connected, all the buttons are
enabled for user selection.
Besides robust connectivity, real time update of the
robot current status and maze environment
were also provided by the application.
It keeps the user updated with the maze situation
through either manual or auto mode.
The manual update of maze display is triggered
when the user clicks on the update button each time
whereas the auto update will continuously update the
display of maze after the auto button has been clicked.
The time interval was scheduled at 1000 millisecond
which is similar to the time taken by the robot
to move one step.
A set of commands are synchronized between the
Android and Arduino to control the movement of the robot.
Now, the user can control the robot and monitor the
maze environment through the user interface.
Thank you, Rayner.
As Arduino is the main brain of the robot,
we have invited the Team Arduino expert -- Clarence,
to our studio to share more on this component.
Hi Clarence, can you share about how
Arduino control this small wonder?
What puzzle me is how
the robot can explore the surrounding by iteslf?
The basic idea for robot to explore the maze is to
stick to the left wall whenever possible.
The move right turns are adopted when it detects
the obstacle in front of it.
In addition, there is a use of variable counter to
determine whether the robot have enough space
to make a left turn.
A left turn will be safely made when the sensor does not
scan anything on both the front and left for three times.
Even with the obstacle detection,
how do you ensure your robot does not go off course?
To ensure a straight motion,
we have make use of the PID control.
One of the key points to let the robot able to move
straight after a turn is to reset all encoder ticks
and set points.
Besides that, with the help of left sensor,
the robot will be able to move parallel to the left wall.
Basically, we have to find the left sensor value
of previous and current robot position so that the
rotation degree of the robot can be known.
As 10cm is equivalent to 597 ticks,
the left and right wheel encoder ticks is then calculated
by using the formula s=rθ so that at 3rd position
the robot can be moved straight back again.
Thank you Clarence. With your contribution,
we can see a bright future in our technologies.
Ok, now is the end of our news.