Upload
drusilla-greer
View
214
Download
1
Tags:
Embed Size (px)
Citation preview
STCRobot 2
Majd Srour, Anis AbboudUnder the supervision of: Yotam Elor and Prof. Alfred Bruckstein
Optimally Covering an Unknown Environment with Ant-like STC algorithm
STC Robot
Motivation
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.
STC Robot
The Environment
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.
STC Robot
Task Description
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.
STC Robot
Last Project vs This project
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
STC Robot
The Robot
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.
The Robot is built from Lego.
STC Robot
Image Transformation (1)
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.
STC Robot
Image Transformation (2)
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.
STC Robot
Transformation - Example
STC Robot
The Ant-like STC Algorithm
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 .
STC Robot
Marking Sub-cells
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?
STC Robot
Finding the Parent cell
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.
STC Robot
Identifying visited sub-cells (1)
Because the robot turns on the light only upon driving forward, its path in a new cell can be one of the following four:
STC Robot
Identifying visited sub-cells (2)
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:
STC Robot
Identifying visited sub-cells (3)
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.
STC Robot
Finding the green dots
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.
STC Robot
Rotation time calibration
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
should give the robot a timestamp of .
STC Robot
Angle Detection
We find 3 green dots in a row. We calculate the slope of the connecting line. We translate this slope into an angle.
STC Robot
Precision
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.
STC Robot
Limitations
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.
STC Robot
Results
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.
STC Robot
Future Work
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.
STC Robot
Video:http://www.youtube.com/watch?v=ZkVvyl5Qmww
Project paper: https://docs.google.com/document/d/1WJP4UTn463Ihyu9oQoWivwV8-8DJsqS6gEC_7ST3_Ws/edit
MOVIE
STCRobot 2
Majd Srour, Anis AbboudUnder the supervision of: Yotam Elor and Prof. Alfred Bruckstein
STC Robot
BACKUP
STC Robot
Finding the Parent Cell
“As long as the four sub-cells of the current cell are not all marked, the robot need only to scan the sub-cells 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
STC Robot
Debugging
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.
STC Robot
Initial Calibration (1)
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.
STC Robot
Initial Calibration (2)
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.