STC Robot Optimally Covering an Unknown Indoor Environment Majd Srour, Anis Abboud Under the supervision of: Yotam Elor and Prof. Alfred Bruckstein.

Slides:



Advertisements
Similar presentations
Chapter 5: Tree Constructions
Advertisements

Reactive and Potential Field Planners
Getting started with LEGO NXT Mindstorms software This is intended to be a short introduction to the LEGO Mindstorms software and programming the LEGO.
Area and perimeter calculation using super resolution algorithms M. P. Cipolletti – C. A. Delrieux – M. C. Piccolo – G. M. E. Perillo IADO – UNS – CONICET.
Exact Inference. Inference Basic task for inference: – Compute a posterior distribution for some query variables given some observed evidence – Sum out.
QR Code Recognition Based On Image Processing
Rotary Motion Physics Montwood High School. Rotary motion is the motion of a body around an internal axis. –Rotary motion – axis of rotation is inside.
The Bioloid Robot Project Presenters: Michael Gouzenfeld Alexey Serafimov Supervisor: Ido Cohen Winter Department of Electrical Engineering.
Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.
2.3 – Perform Rotations.
Eyes for Relighting Extracting environment maps for use in integrating and relighting scenes (Noshino and Nayar)
Using the NXT Light Sensor. 2 Connect One Light Sensor – 1 From My Files use Left / Right NXT buttons and get to View menu and push Orange button. From.
Computer Vision Lecture 16: Region Representation
1 Computer Graphics Week6 –Basic Transformations- Translation & Scaling.
READY, GO! Hare and Snail Challenges. 1. What are some design considerations to make a fast robot? 2. What are some design considerations to make a slow.
Bohr Robot Group OpenCV ECE479 John Chhokar J.C. Arada Richard Dixon.
Announcements Final Exam May 16 th, 8 am (not my idea). Practice quiz handout 5/8. Review session: think about good times. PS5: For challenge problems,
Introduction to Robotics
Canny Edge Detector.
Efficient Path Determining Robot RIT Computer Engineering Senior Design Project Jamie Greenberg Jason Torre October 26, 2004 A motorized robot will navigate.
Computerized Labyrinth Solver The board-game ‘Labyrinth’ traditionally uses two manual controls to navigate a marble through a maze. This project proposes.
Describing Angles Lesson
Probability and Statistics in Engineering Philip Bedient, Ph.D.
1 ©2006 INSciTE Lab Two Task: Make the program from Lab One (Move forward 5 rotations and turn right 90 degrees) into a MyBlock.
PH0101 UNIT 4 LECTURE 3 CRYSTAL SYMMETRY CENTRE OF SYMMETRY
Circle Drawing algo..
October 8, 2013Computer Vision Lecture 11: The Hough Transform 1 Fitting Curve Models to Edges Most contours can be well described by combining several.
Construction and Motion control of a mobile robot using Visual Roadmap
By Yevgeny Yusepovsky & Diana Tsamalashvili the supervisor: Arie Nakhmani 08/07/2010 1Control and Robotics Labaratory.
By Meidika Wardana Kristi, NRP  Digital cameras used to take picture of an object requires three sensors to store the red, blue and green color.
Programming Concepts Part B Ping Hsu. Functions A function is a way to organize the program so that: – frequently used sets of instructions or – a set.
October 14, 2014Computer Vision Lecture 11: Image Segmentation I 1Contours How should we represent contours? A good contour representation should meet.
STC Robot 2 Majd Srour, Anis Abboud Under the supervision of: Yotam Elor and Prof. Alfred Bruckstein Optimally Covering an Unknown Environment with Ant-like.
Graph Theory Topics to be covered:
Chapter 9.  Mathematical morphology: ◦ A useful tool for extracting image components in the representation of region shape.  Boundaries, skeletons,
Autonomous Robot Project Lauren Mitchell Ashley Francis.
Edge Detection (with implementation on a GPU) And Text Recognition (if time permits) Jared Barnes Chris Jackson.
CS 6825: Binary Image Processing – binary blob metrics
High-Resolution Interactive Panoramas with MPEG-4 발표자 : 김영백 임베디드시스템연구실.
ENTC 1110 OBLIQUE PICTORIALS.
Digital Image Processing CCS331 Relationships of Pixel 1.
Chapter 10, Part II Edge Linking and Boundary Detection The methods discussed in the previous section yield pixels lying only on edges. This section.
See3PO - A Visually Capable Path Finding Robot See3PO Frank Marino, Nick Wang, Jacky Yu, Hao Wu and Debarati Basu Department of Computer Science University.
Somerset Berkley Regional High School Robotics Engineering with LabView.
Autonomous Navigation Based on 2-Point Correspondence 2-Point Correspondence using ROS Submitted By: Li-tal Kupperman, Ran Breuer Advisor: Majd Srour,
11/23/2015Slide 1 Using a combination of tables and plots from SPSS plus spreadsheets from Excel, we will show the linkage between correlation and linear.
Lecture 3 Transformations. 2D Object Transformations The functions used for modifying the size, location, and orientation of objects or of the camera.
COMP 417 – Jan 12 th, 2006 Guest Lecturer: David Meger Topic: Camera Networks for Robot Localization.
Graphic st aidans high AUXILIARY PLAN.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
Chapter 2: Frequency Distributions. Frequency Distributions After collecting data, the first task for a researcher is to organize and simplify the data.
EV3 Software EV3 Robot Workshop
ROBOTC Software EV3 Robot Workshop
System Model: Physical Module Constraints: 1)A module must have a minimum of two adjacent free sides in order to move. 2) A module must have an adjacent.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
Obstacle Detection. In the previous program the robot moves forward and then checks for something in the way. As we observed it only checks for things.
CSE 110: Programming Language I Matin Saad Abdullah UB 404.
Advanced issues in Robotics and Programming Dr. Katerina G. Hadjifotinou Experimental Junior High School of the University of Macedonia.
CSC317 1 At the same time: Breadth-first search tree: If node v is discovered after u then edge uv is added to the tree. We say that u is a predecessor.
Topic 1: Transformations and Congruence & Geometry Notation
How Do You Make a Program Wait?
What Is an Electric Motor? How Does a Rotation Sensor Work?
Understanding Communication with a Robot? Activity (60 minutes)
Fitting Curve Models to Edges
Robustness of wireless ad hoc network topologies
An Introduction to VEX IQ Programming with Modkit
Robustness of wireless ad hoc network topologies
Canny Edge Detector.
Getting started with LEGO EV3 Mindstorms software
Let’s see why the angles in a triangle add to 180 degrees.
Presentation transcript:

STC Robot Optimally Covering an Unknown Indoor Environment Majd Srour, Anis Abboud Under the supervision of: Yotam Elor and Prof. Alfred Bruckstein

STC Robot Task Description Given a floor like this, where the gray cells are the free cells, and white cells describe obstacles. Each gray cell is divided into 4 sub-cells each of the same size as the robot. 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 The On-line STC Algorithm 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. (Incremental DFS)

STC Robot STC Algorithm Example (1)

STC Robot STC Algorithm Example (2)

STC Robot STC Algorithm Example (3)

STC Robot STC Algorithm Example (4)

STC Robot STC Algorithm Example (5)

STC Robot STC Algorithm Example (6)

STC Robot The Robot  Board: PIC-18 board.  Wireless Module: XBee wireless communication module.  Wheels and Motors: 2 main wheels, motorized by two gear motors, and two auxiliary wheels that enable the Robot to perform an on-place 90 degree rotation.  Camera: Wireless camera directed up.  Mirror: A curved spherical mirror, directed down. The Robot (figure 2) is built from Mindstorms Lego. Its major parts are:

STC Robot The Image Because the camera looks up to a spherical mirror, the image captured from the Robot’s camera is something like this:

STC Robot After the Transformation In order to work with the 360 degree panorama view, we apply a transformation, which produces an image like this:

STC Robot The Transformation idea  Comparing the location of a single pixel in the two images (the curved image and the normal transformed image): 1.Both are in the same axis that connects the pixel with the camera’s center. 2.The pixel in the curved image is closer to the camera.  So what we need to do is to calculate the ratio between its distances of the camera lens in the two pictures.

STC Robot Angle Detection Why do we need it?  Calibration (Lego and battery issues).  Connectivity issues (explained later). What to do?  Calculate the slope of the black lines between the ground cells.

STC Robot Angle Detection – Details (1) Given an image like this (after applying the transformation and cutting unwanted area):

STC Robot Angle Detection – Details (2) 1.We smooth the image.

STC Robot Angle Detection – Details (3) 2.We hide the camera and the two bars that hold it and then calculate the gradient of the smoothed image. mash of the gradient size:

STC Robot Angle Detection – Details (4) 3.We calculate the angle (atan2) between the gradients in x and y direction for each pixel (smoothing it to circularity).

STC Robot Angle Detection – Details (5) 4.We “reshape” the histogram, to show only angles from 0-90 degree (we combine the angles together, (0-90, , 181,270, 271,360) 5.We take the maximum value of the histogram, which is the right angle (In the picture 90 degrees)

STC Robot Rotation time calibration

STC Robot Obstacles Detection  Obstacles are modeled as completely white cells.  Regular cells (path) are gray.  Summing up the values of all the pixels in an obstacle cell should give us a higher value than the sum of all the values of the pixels of a regular free cell.

STC Robot Connectivity Issues (1)  The connection to the robot and the camera is wireless  Many other wireless broadcasters in the area.  Commands sent to the robot from the computer didn’t reach the robot.  Commands are received by the Robot, but the Robot’s response didn’t reach the computer,  Check-sum error occurred.  1 st Step in Solution: Send the command repetitively until we get a reply from the robot that the command was received successfully.

STC Robot Connectivity Issues (2) Trial 1: Initially, rotating and driving forward were done via timing. We send the robot a rotate/drive command, wait the needed time to perform the operation and then send a stop command. Problem: Therefore, because of the connectivity issues, the robot might rotate too much, or drive too much (as stop command didn’t reach the robot). This happened frequently and in order to avoid this,

STC Robot Connectivity Issues (3) Trial 2: Atomic time commands were added to the robot board. For example, with the rotate clockwise command, we sent the robot the time it should spend in the rotation. Problem: When the robot receives our first command, but his reply does not reach out to the computer, the computer will send the command again. Thus, instead of 90 degrees rotation, 180 degrees rotation might occur.

STC Robot Connectivity Issues (4) Trial 3 (Solution): To solve this issue, we used the camera.  Implemented a function that receives two photos, compares them and tells whether or not they were shot from the same position.  Idea:  Subtracting the second photo from the first photo.  Summing up all the pixels (absolute value). Small sum means almost identical photos. i.e. were shot from the same position - no rotation between them.

STC Robot Optimally Covering an Unknown Indoor Environment (OCUIE) MOVIE

STC Robot What’s next?

STC Robot Goal

STC Robot Majd Srour, Anis Abboud Under the supervision of: Yotam Elor and Prof. Alfred Bruckstein

STC Robot BACKUP

STC Robot The On-line STC Algorithm Initialization: Call STC(Null, S), where S is the starting cell. STC(w, x): (A recursive function, x is the current cell and w is the previous cell along the spanning tree) 1.Mark the current cell x as an old cell. 2.While x has a new obstacle-free neighbor: 2.1.Scan for first new neighbor of x in counterclockwise order, starting with parent cell w. Call this neighbor y. 2.2.Construct a spanning-tree edge from x to y. 2.3.Move to a sub-cell of y as described below. The robot moves from its current sub-cell in x to a sub-cell of y by following the right-side of the spanning tree edges, measured with respect to the tool’s direction of motion, as described in the figure above. 2.4.Execute STC(x, y). End of while loop. 3.If x S, move back from x to a sub-cell of w as described below. When the covering tool returns to a parent cell w, it again moves through sub- cells that lie on the right-side of the spanning-tree edge connecting x with w, as shown in the figure above. 4.Return. (End of STC(w, x).)