STC Robot

STC
Robot 2
Optimally Covering an Unknown
Environment with Ant-like STC algorithm
Majd Srour, Anis Abboud
Under the supervision of: Yotam Elor and Prof. Alfred Bruckstein
Motivation
STC Robot
Recently, it was shown that a single ant
robot (modeled as FSM) can simulate the
execution of any arbitrary of Turing
machine.
Single ant robot, using pheromones can
execute complex single-robot algorithms.
In this project, we used an algorithm that
leaves Ant-like pheromones on a surface
in order to solve the covering problem.
The Environment
STC Robot
In order to leave pheromones-like traces,
we used a phosphorescent glowing floor,
that can be charged by light.
The robot charges the board using an UV
LEDs which are installed on the back of
the robot.
Task Description
STC Robot
Given a phosphorescent
glowing floor like this:
The robot divides the
floor virtually into sub-cells
of its size, and each 4
adjacent sub-cells are considered one cell.
The Robot’s task is to cover the floor, passing
exactly once over each sub-cell and to return to
the same cell where it started.
Last Project vs This project
STC Robot
 On-line STC
 Board is saved in the
computer
 The computer “remembers” which
cells are visited.
 Normal light conditions
 Floor is physically divided
into cells
 Ant-like STC
 Board is not saved in the
computer
 The robot figures out which cells
are visited based on traces it left.
 Darkness
 Floor is virtually divided
into cells
The Robot
STC Robot
The Robot is built from Lego.
 PIC-18 board with a Wireless module.
 Two main wheels, and two auxiliary wheels.
 These enable it to perform an on-place 90 degree rotation.
 Wireless web camera directed up.
 A curved spherical mirror,
directed down.
 4 UV (Ultraviolet) LEDs
 Enable the robot to leave
green tracks (dots) on the
phosphorescent floor.
Image Transformation (1)
STC Robot
Because the camera looks up to a spherical mirror,
the image captured from the Robot’s camera is
distorted, so we apply the same transformation as
the previous project:
But in the darkness.
Image Transformation (2)
STC Robot
 Problem:
 Visited cells are green, obstacles are red.
 The transformation produces a grayscale image.
• We can’t distinguish between obstacles and visited cells
 Solution:
 Filtering red light, and transforming the image
 Identifying visited sub-cells.
 Filtering green light, and transforming the image
 Identifying obstacles.
Transformation - Example
STC Robot
The Ant-like STC Algorithm
STC Robot
The ant-like version of STC is also an on-line
algorithm, and is similar to the algorithm we used for
the first project (like Incremental DFS).
Idea:
 Each time, visit the first new (not visited) obstacle-free
neighbor in counterclockwise order, starting with parent
cell.
 If all neighbors are visited, go back to parent cell.
The parent cell of 𝑥, is the last cell the robot visited
before his first visit to 𝑥.
Marking Sub-cells
STC Robot
 Each time the robot decides to drive forward, it
turns on the lights for a few seconds before
proceeding, leaving a trace in one edge of the
visited sub-cell.
 Lights are on the back of the robot.
 Traces are left only on the edge of the sub-cell.
 Why not keep lights on?
Finding the Parent cell
STC Robot
 The robot needs only to
 Scan the sub-cells in counterclockwise order, and
 Identify the transition between unmarked and marked
sub-cells.
 The parent cell is in that direction.
(From the STC paper.)
 Upon entering a cell, the robot takes a photo of it,
and finds its parent cell.
 However,
 The robot marks only one edge of each visited sub-cell.
 This edge is shared with the neighboring sub-cell.
Identifying visited sub-cells (1)
STC Robot
Because the robot turns on the light only upon
driving forward, its path in a new cell can be one of
the following four:
Identifying visited sub-cells (2)
STC Robot
By examining all the possibilities where the robot is
visiting a cell, we reached to the conclusion that only
the 5 boxes below can be lit upon entering a cell:
Identifying visited sub-cells (3)
STC Robot
 From the above, we can conclude that:
 sub-cell 1 is visited iff one of the boxes 1 and 5 is lit.
 sub-cell 2 is visited iff one of the boxes 2 and 3 is lit.
 sub-cell 3 is visited iff box 4 is lit.
Finding the green dots
STC Robot
 Crop the relevant section of the image.
 Look for the square of pixels (of a dot’s size) that
has the highest average value.
 Looking for a square, instead of a single pixel allows
ignoring noise.
 If the maximum found value is under a threshold, then
the sub-cell was not visited.
 Black out the square, and look for a new dot.
Rotation time calibration
STC Robot
 Initial 90-degree rotation time = T.
 After sending the robot a command to rotate for
time T:
 We detect the actual angle the robot rotated in.
 Let’s say we got  instead of 90. So next time, we
90
should give the robot a timestamp of ∙ 𝑇.

Angle Detection
STC Robot
 We find 3 green dots in a row.
 We calculate the slope of the connecting line.
 We translate this slope into an angle.
Precision
STC Robot
 In the previous project, we only needed to identify
whether or not a cell is an obstacle.
 In this project, if a cell is not an obstacle cell, we
need to identify visited and free sub-cells.
 A sub-cell’s area is only fourth of a cell’s area.
 Moreover, we have markers only on the edges of
the sub-cells.
Limitations
STC Robot
The camera we used, was not intended to
work with low-light conditions, and it
couldn’t identify the green light dots after
less than a minute.
The system can be improved if we use
different technique for identifying the
green lights.
 Using better camera.
 Using better sensors.
Results
STC Robot
Using a simple and cheap robot with
limited sensing and computational
capabilities, we succeeded in solving the
covering problem using the Ant-like
approach, where the robot leaves
pheromones-like markers on the surface.
Future Work
STC Robot
Using a better camera (preferably camera
with a fully controlled integration time) to
try covering a bigger environment.
Try to implement the whole algorithm on
the robot itself, without the help of an
external Computer.
Try solving more complex problems with
ant-like approach solutions.
MOVIE
STC Robot
Video:
http://www.youtube.com/watch?v=ZkVvyl5Qmww
Project paper:
https://docs.google.com/document/d/1WJP4UTn463Ihyu9oQo
WivwV8-8DJsqS6gEC_7ST3_Ws/edit
STC
Robot 2
Majd Srour, Anis Abboud
Under the supervision of: Yotam Elor and Prof. Alfred Bruckstein
STC Robot
BACKUP
Finding the Parent Cell
STC Robot
“As long as the four sub-cells of the current cell are
not all marked, the robot need only to scan the subcells in counterclockwise order and identify the
transition between unmarked and marked sub-cells.
The two sub-cells bordering this transition have an
exterior edge in common. This edge is necessarily
the boundary edge between the current cell and its
parent cell in the spanning tree.”
p.84
Debugging
STC Robot
Small inaccuracies stemming from the camera, the
environment, a low light from the outside, or a
deviation of the robot, can cause the robot to make
wrong decisions.
 We saved a copy of each taken snapshot, with a
timestamp on it. Thus, being able to later track the
robot’s path and spot the issues.
 In addition, we added a two-step initial calibration.
Initial Calibration (1)
STC Robot
Transformation Calibration:
 The robot is placed on the lab floor with light on.
 A snapshot is shown to the user.
 The user clicks on the camera lens’ center.
 The image is transformed, with the camera
center’s coordinates as parameters.
 The user is shown a transformed image and is
asked if it’s good.
 The parameters are serialized and can be reused.
Initial Calibration (2)
STC Robot
Neighbors Calibration:
 The user is shown a transformed image.
 The user clicks on the
12 vertices of the
neighbor cells:
 These are used to divide the snapshots to cells as
accurately as possible.
 The parameters are serialized and can be reused.