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.
© Copyright 2026 Paperzz