Swarm Intelligence in Robotics
Dr. Alaa Khamis Pattern Analysis and Machine Intelligence University of Waterloo
[email protected] MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
1/22 1
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
2/22 2
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
3/22 3
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Introduction • PAMI Research Group Synchromedia Synchromedia Lab Lab
CIM CIM Lab Lab
Intelligent Multi-crane CRS F3 and CRS T265
Pattern Pattern Analysis Analysis Lab Lab Speech Understanding
Pattern Analysis
Mobile Mobile Robotics Robotics Lab Lab Magellan Pro
Computer vision
Data Mining Services Catalog
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
ATRV-mini Soccer-playing Robots
4/22 4
Introduction • Swarm Intelligence in Robotics The objective of this talk is to highlight the different applications of the rapidly emerging field of swarm intelligence in solving complex problems of traditional and swarm robotics.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
5/22 5
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
6/22 6
Body/Brain Evolution Brains SI
Swarm Robotics
Cognitive Robotics
100s
DAI
Multiagent
Distributed Robot System
10s
AI 1
Robotics
Centralized Control
Machine
Multiple Machines
1
10s
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
MEMS-based Multiple Machines Bodies 100s 7/22 7
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
8/22 8
Traditional Robotics The Evolutionary Stages
Industrial Robotics
Service Robots for Professional Use
Service Robotics Evolution
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Service Robots for Personal Use
Personal Robotics
9/22 9
Traditional Robotics • Traditional Problems Environment Perception SLAM Path Planning Navigation Autonomy Human Interaction Learning
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
10/22 10
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
11/22 11
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Swarm Robotics • Definition Swarm robotics is the study of how large number of relatively simple physically embodied agents can be designed such that a desired collective behavior emerges from the local interactions among agents and between the agents and the environment. Resolving complexity. Increasing performance. Simplicity in design. Reliable. Box Pushing
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
12/22 12
Swarm Robotics • Typical Problem Domains Box-pushing Foraging Aggregation and Segregation Formation Control Cooperative Mapping Soccer Tournaments Site Preparation Sorting
http://www.robocup.org/
Collective Construction
http://www.fira.net/
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
13/22 13
Swarm Robotics • Applications of Swarm Robotics Autonomous inspection of complex engineered structures. Distributed sensing tasks in micromachinery or the human body. Killing Cancer Tumors in Human Body Mining Agricultural Foraging Cooperative Tracking UAV drones Interactive Art Space-based Construction Spy robots Rescue Operations Humanitarian Demining Surveillance, Reconnaissance and Intelligence. Mobile Trackers MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
14/22 14
Swarm Robotics • Projects
http://www.swarm-bots.org/
The SWARM-BOT project aims to study a novel swarm robotics system. It is directly inspired by the collective behavior of social insects and other animal societies. It focuses on self-organization and self-assembling of autonomous agents. Its main scientific challenge lays in the development of a novel hardware and of innovative control solutions.
Swarm-bots, Marco Dorigo, 2005 15/22 15
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Swarm Robotics • Projects
PAMI Lab http://horizon.uwaterloo.ca/multirobot/
Leaderless Distributed (LD) Flocking Algorithm Flocking in Embedded Robotic Systems CORO - Caltech
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
16/22 16
Swarm Robotics • Team Size and Composition Team Size
Alone
Pair
Team Composition
Limited Group
Infinite Group
Homogenous
Heterogeneous
17/22 17
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Swarm Robotics • Team Reconfigurability Team Reconfigurability
Static
coordinated
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Dynamic
18/22 18
Swarm Robotics • Communication Pattern Implicit Communication
Explicit Communication
Broadcast
Graph
Interaction via Environment (Stigmergy)
Interaction via Sensing
Action Action
Perception
Environment
Perception
Virtual Pheromone
Perception
1 to
6
Address or Directed Messages
11 to 8
19/22 19
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Swarm Robotics • Communication Range and Bandwidth Communication Bandwidth
Communication Range
None
Near
Infinite
High
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Moderate
Low
zero
20/22 20
Swarm Robotics • Challenging Problems Coordination Algorithm Design Implementation and Test Analysis and Modelling
21/22 21
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Swarm Robotics • Challenging Problems: Coordination Coordination
Cooperation
Collaboration
Planning
Centralized
Decentralized
Hierarchical
Competition
Negotiation
Holonic
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
22/22 22
Swarm Robotics • Challenging Problems: Algorithm Design Swarm roboticists face the problem of designing both the physical morphology and behaviours of the individual robots such that when those robots interact with each other and their environment, the desired overall collective behaviours will emerge. At present there are no principled approaches to the design of low-level behaviours for a given desired collective behaviour [1]. “collective behavior is not simply the sum of each participant’s behavior, as others emerge at the society level” [2]. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
23/22 23
Swarm Robotics • Challenging Problems: Implementation and Test To build and rigorously test a swarm of robots in the laboratory requires a considerable experimental infrastructure. Real-robot experiments thus typically proceed hand-in-hand with simulation and good tools are essential [1].
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
24/22 24
Swarm Robotics • Challenging Problems: Implementation and Test Advanced Robotics Interface for Applications (ARIA): Robotic Sensing and Control Libraries. Open Robot Control Software (OROCOS): open-source real time control architecture for different machines. Microsoft Robotics Studio: is a Windows-based environment for robot control and simulation. Player/Stage/Gazebo: PSG is open source software that used and developed by an international community of researchers from over 30 universities/companies. 25/22 25
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Swarm Robotics • Challenging Problems: Implementation and Test Stage 3.0 [3]
2,000 minibots MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
100 Pioneer Robots 26/22 26
Swarm Robotics • Challenging Problems: Analysis and Modelling A robotic swarm is typically a stochastic, non-linear system and constructing mathematical models for both validation and parameter optimization is challenging. Such models would surely be an essential part of constructing a safety argument for real-world applications [1].
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
27/22 27
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
28/22 28
Swarm Intelligence DNA
Cellular Automata
Brain
Neural Networks Protection of computers and networks
Immune System Evolution
Genetic Algorithms
Social Insects
Swarm Intelligence
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
29/22 29
Swarm Intelligence Analogies
Nature
Unmanned Autonomous Vehicles (UAVs)
Ants/UAVs
Prey/Target
Predators/Threats
Environment/ Battlefield
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
30/22 30
Swarm Intelligence • Definition Swarm intelligence (SI) refers to the phenomenon of a system of spatially distributed individuals coordinating their actions in a decentralized and self-organized manner so as to exhibit complex collective behavior. “SI is the property of a system whereby the collective behaviors of (unsophisticated) agents interacting locally with their environment cause coherent functional global patterns to emerge.” Swarm intelligence solves optimization problems. 31/22 31
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Swarm Intelligence • Key Elements A large number of “simple” processing elements; Neighborhood communication; Though convergence in guaranteed, time to convergence is uncertain. Most of the research are experimental: Observation
Create Create
Extract Extract
Metaheuristic Build Build
Test Test
Refine
Model
Simulation Algorithm MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
32/22 32
Swarm Intelligence • SI-based Approaches Initialize parameters Initialize population While (end condition not satisfied ) loop over all individuals Find best so far Find best neighbor Update individual
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
33/22 33
Swarm Intelligence • SI-based Approaches Ant Colony Optimization (ACO) Particle Swarm Optimization (PSO) Stochastic Diffusion Search (SDS)
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
34/22 34
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
35/22 35
SI in Traditional Robotics • ACO-based Motion Planning [4] • PSO-based Motion Planning [5] • Wall-following autonomous robot (WFAR) navigation [6] • Gait Optimization [7] • Kinematics and Dynamics of Robot Manipulators [8,9] • Learning [10]
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
36/22 36
SI in Traditional Robotics • Motion Planning Path planning is a process to compute a collision-free path for a robot from a start position to a given goal position, amidst a collection of obstacles. T
S MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
37/22 37
SI in Traditional Robotics • ACO-based Motion Planning [4] Proposed Method Step 1: MAKLINK graph theory to establish the free space model of the mobile robot; Step 2: utilizing the Dijkstra algorithm to find a suboptimal collision-free path; Step 3: utilizing the ACS algorithm to optimize the location of the sub-optimal path so as to generate the globally optimal path.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
38/22 38
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 1: MAKLINK-based Free Space Model 1. The heights of the environment and obstacles can be ignored; 2. There exist some known obstacles distributed in the environment, both the environment and the obstacles have a polygonal shape; 3. In order to avoid a moving path too close to the obstacles, the boundaries of every obstacle can be expanded.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
39/22 39
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 1: MAKLINK-based Free Space Model Real Obstacle
Grown Obstacle
Free MAKLINK line: 1) Either its two end points are two vertices on two different grown obstacles or one point is a vertex of a grown obstacle and the other is located on a boundary of the environment; 2) Every free MAKLINK line cannot intersect any of the grown obstacles. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
boundary 40/22 40
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 1: MAKLINK-based Free Space Model [11,5] ◊ Constructing MAKLINK graph 1. Find all the lines that connect one of the corners that belong to a polygonal obstacle, with all the other obstacles’ corners including the corners of the current obstacle; S
T 41/22 41
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 1: MAKLINK-based Free Space Model [11,5] ◊ Constructing MAKLINK graph 2. Delete the redundant free links to make every free space, of which the edges are free links, obstacle edges and boundary walls, be a convex polygon and its area be largest; S
T MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
42/22 42
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 1: MAKLINK-based Free Space Model [11,5] ◊ Constructing MAKLINK graph 3. Find the midpoint of the remained free links and take them as the path nodes, labeling orderly as 1, 2,…, n. The connections among the midpoints that belong to the same convex area compose a network. S
T MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
43/22 43
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 1: MAKLINK-based Free Space Model v1, v2, . . . , vl are the middle points of these free MAKLINK lines; l is total number of the free MAKLINK lines on a MAKLINK graph. l=26 v0 is S vl+1 is T
Network graph for free motion of robot
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
44/22 44
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 2: Dijkstra Algorithm Sub-optimal path S →v1 →v2 →v10 →v11 →v12 →v13 → v16 →v17 →v24 →T
Path length= 507.692 m. This path is just a sub-optimal path because it passes only through the middle points of those free MAKLINK lines Sub-optimal path generated by Dijkstra 45/22 45
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm Assume sub-optimal path generated by the Dijkstra algorithm is
P0 → P1 → P2 → ... → Pd +1 These path nodes lie on the middle points of the relevant free MAKLINK lines. Now, we need to adjust and optimize their locations on their corresponding free MAKLINK lines.
Pi = Pi1 + ( Pi 2 − Pi1 ) × hi , Pi = Pi1
i = 1, 2 ,..., d
hi = 0
Pi = ( Pi1 + Pi 2 ) / 2 Pi = Pi 2
hi ∈ [ 0 ,1],
hi = 0 . 5 midpoint
hi = 1
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Path Coding Method
46/22 46
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm The objective function of the optimization problem will be:
L=
d
∑ length { P ( h ),P i=0
i
i
i +1
( hi +1 )}
ACS algorithm is used to find the optimal parameter set
{ h *1 , h * 2 ,..., h * d } such that L has the minimum value.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
47/22 47
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm Grid graph on which there are dx11 nodes in total. nij is node j on line hi. The path of an ant depart from the starting point S is
S → n1 j → n 2 j → ... → n dj → T Generating of nodes and moving paths MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
48/22 48
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm ◊ Pheromone Concentration
Assume that at initial time t =0
All the nodes have the same pheromone concentration τ0:
τ ij ( 0 ) = τ o ( i = 1, 2 ,..., d ;
j = 0 ,1, 2 ,..., 10 )
49/22 49
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm ◊ Transition Rule
Assume the number of ants is m.
In moving process, for an ant k, when it locates on line hi-1, it will choose a node j from the eleven nodes of the next line hi to move to according to the following rule:
arg max j= J ,
u∈ A
{[τ iu ( t )].[ η iu ] β },
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
if q ≤ q o
if q f q o 50/22 50
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm ◊ Transition Rule
arg max j= J ,
u∈ A
{[τ iu ( t )].[ η iu ] β },
if q ≤ q o
if q f q o
where A represents the set: {0, 1, 2, . . . , 10}; τiu(t) is the pheromone concentration of node niu;
51/22 51
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm ◊ Transition Rule
arg max j= J ,
β τ η {[ ( t )].[ ] }, u∈ A iu iu
if q ≤ q o
if q f q o
ηiu represents the visibility of node niu and is computed by the following equation: *
η ij =
1 . 1 − y ij − y
ij
1 .1
yij is the y-coordinate of node nij and y*ij are values that are corresponding to the path nodes on the optimal robot path generated by the ACS algorithm in the previous iteration. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
52/22 52
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm ◊ Transition Rule
arg max j= J ,
u∈ A
{[τ iu ( t )].[ η iu ] β },
if q ≤ q o
if q f q o
β is an adjustable parameter which controls the relative importance of visibility ηiu versus pheromone concentration τiu(t); q is a random variable uniformly distributed over [0, 1]; q0 is a tunable parameter (0≤q0≤ 1); 53/22 53
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm ◊ Transition Rule
arg max j= J ,
β τ η {[ ( t )].[ ] }, u∈ A iu iu
if q ≤ q o
if q f q o
J is a node which is selected according to the following probability formula and “Roulette Wheel Selection Method”
P (t ) = k iJ
[τ iJ ( t )].[ η iJ ] β 10
[τ ∑ ω =0
β ( t )].[ η ] iw iw
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
54/22 54
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm ◊ Pheromone Update: After Each Iteration
τ ij ( t ) ← (1 − ρ ).τ ij ( t ) + ρ .∆ τ ij ( t ) 0 p ρ p1
∆ τ ij ( t ) =
1 L+
where L+ is the length of robot path corresponding to the best ant tour. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
55/22 55
SI in Traditional Robotics • ACO-based Motion Planning [4] Step 3: ACS Algorithm ◊ Pheromone Update: After passing through a node nij
τ ij ( t ) ← (1 − ρ ).τ ij ( t ) + ρ .τ o When a node is visited several times by ants, repeatedly applying the local updating rule will make the pheromone level of this node diminish. This has the effect of making the visited nodes less and less attractive to the ants, which indirectly favors the exploration of not yet visited nodes. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
56/22 56
SI in Traditional Robotics • ACO-based Motion Planning [4] Results ACS Algorithm
Realcoded GA
Average CPU time per iteration (sec.)
0. 00059
0. 00067
Average number of iterations needed for convergence
175
912
Average CPU time needed for obtaining optimal solution (sec.)
0.1033
0.6110
57/22 57
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Traditional Robotics • PSO-based Motion Planning [5] Sub-optimal path from Dijkstra algorithm is
P0 → P1 → P2 → ... → Pd +1 These path nodes lie on the middle points of the relevant free MAKLINK lines. Location adjustment:
Pi = Pi1 + ( Pi 2 − Pi1 ) × hi , Pi = Pi1
i = 1, 2 ,..., d
hi = 0
Pi = ( Pi1 + Pi 2 ) / 2 Pi = Pi 2
hi ∈ [ 0 ,1],
hi = 0 . 5 midpoint
hi = 1 Path Coding Method
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
58/22 58
SI in Traditional Robotics • PSO-based Motion Planning [5] Each particle Xi is constructed as:
X i = ( h1 , h2 ,... h d )
Pi ( hi )
Euclidian Distance
The fitness value of each particle is:
f (Xi) =
d
∑ length { P ( h ),P i=0
i
i +1
i
( hi +1 )}
Pi +1 ( hi +1 )
The smaller the fitness value is, the better the solution is.
59/22 59
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Traditional Robotics • PSO-based Motion Planning [5] 1. Initialize particles at random, and set pBest= Xi; 2. Calculate each particle’s fitness value according to equation
f (Xi) =
d
∑ length { P ( h ), P i=0
i
i
i +1
( hi + 1 )}
and label the particle with the minimum fitness value as gBest;
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
60/22 60
SI in Traditional Robotics • PSO-based Motion Planning [5] 3. For k1=1 to k1max do { 4. For each particle Xi do { 5. Update vi and xi according to the following equations: vi ( k + 1) = ω × vi ( k ) + c1 × rand () × [ pBest i ( k ) − xi ( k )] + c 2 × rand () × [ gBest ( k ) − xi ( k )] xi ( k + 1) = xi ( k ) + vi ( k + 1),
1 ≤ i ≤ n,
6. Calculate the fitness according to equation f (Xi) =
d
∑ length { P ( h ),P i=0
i
i
i +1
( hi +1 )}
7. Update gBest and pBesti ; 8. If ||v|| ≤ε , terminate ;} MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
61/22 61
SI in Traditional Robotics • PSO-based Motion Planning [5]
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
62/22 62
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
63/22 63
SI in Swarm Robotics • Multirobot Control [12] • Collective Robotic Search (CRS) [13] • Odor-source Localization [14,15] • Mobile Sensor Deployment [16] • Learning [17] • Communication Relay [18] • Group Behavior [19]
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
64/22 64
SI in Swarm Robotics • Multirobot Control [12] Unintelligent carts are commonly found in large airports. Travelers pick up carts at designated points and leave them in arbitrary places. It is a considerable task to re-collect them. It is, therefore, desirable that intelligent carts (intelligent robots) draw themselves together automatically.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
65/22 65
SI in Swarm Robotics • Multirobot Control [12] Objectives Using mobile software agents to locate robots scattered in a field, e.g. an airport, and make them autonomously determine their moving behaviors by using an ACO-based clustering algorithm.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
66/22 66
SI in Swarm Robotics • Multirobot Control [12] Assumptions - Each robot has a function for collision avoidance; - Each robot has a function to sense RFID embedded in the floor carpet to detect its precise coordinate in the field.
A team of mobile robots work under control of mobile agents
RFID under a carpet tile 67/22 67
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Swarm Robotics • Multirobot Control [12] Quasi Optimal Robots Collection Step 1: One mobile agent issued from the host computer visits scattered robots one by one and collects the positions of them.
Mobile Agent
Host Computer
Assembly Point
Assembly Point Intelligent Cart
Assembly Point MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
68/22 68
SI in Swarm Robotics • Multirobot Control [12] Quasi Optimal Robots Collection Step 2: Another agent called the simulation agent, performs ACC algorithm and produces the quasi optimal gathering positions for the mobile robots. The simulation agent is a static agent that resides in the host computer. Assembly Point
Host Computer
Assembly Point Intelligent Cart
Simulation Agent ACO-based Clustering
Assembly Point 69/22 69
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Swarm Robotics • Multirobot Control [12] Quasi Optimal Robots Collection Step 3: A number of mobile agents are issued from the host computer. One mobile agent migrates to a designated mobile robot, and drives the robot to the assigned quasi optimal position that is calculated in step 2. Mobile Agents
Host Computer
Assembly Point
Assembly Point Intelligent Cart
Assembly Point MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
70/22 70
SI in Swarm Robotics • Multirobot Control [12] ACO-based Clustering - More objects are clustered in a place where strong pheromone sensed. - When the artificial ant finds a cluster with certain number of objects, it tends to avoid picking up an object from the cluster. This number can be updated later. - If the artificial ant cannot find any cluster with certain strength of pheromone, it just continues a random walk.
71/22 71
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Swarm Robotics Start
• Multirobot Control [12] ACO-based Clustering Picking up or not unlocked object is probabilistically determined using the formula:
( p + l) * k f ( p) = 1 − 100 p: density of pheromone= number of adjacent objects. Thus, when an object is completely surrounded by other objects, p is the max. value=9 MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
yes
Have an object
no
Pheromone walk Empty space detected?
Random walk object detected?
no
yes
yes
Put object
no
no
Catch object
Satisfied requirement? yes
End 72/22 72
SI in Swarm Robotics • Multirobot Control [12] ACO-based Clustering
f ( p) = 1 −
( p + l) * k 100
k: constant value Authors selected k= 13 in order to prevent any object surrounded by other eight objects be picked up.
f ( p) = 1 −
(8 + 0) *13 = 1 − 1.04 = −0.04 ≈ 0 100
(never pick it up).
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
73/22 73
SI in Swarm Robotics • Multirobot Control [12] ACO-based Clustering
f ( p) = 1 −
( p + l) * k 100
l: constant value to make an object be locked. l = zero (not locked). If c=# of clusters & o=# of objects
c p 2 3o c p 1 3o
and and
p f 3⇒ l = 6 pf7⇒l =3 p f 9 ⇒ l =1
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Any objects meet these conditions are locked. This lock process prevents artificial ants remove objects from growing clusters. 74/22 74
SI in Swarm Robotics Start
• Multirobot Control [12] ACO-based Clustering In “pheromone walk” state, an artificial ant tends probabilistically move toward a place it senses the strongest pheromone. The probability that the artificial ant takes a certain direction is n/10, where n is the strength of the sensed pheromone of that direction.
yes
Have an object
Pheromone walk Empty space detected?
no
yes
Put object
no
Satisfied requirement? yes
End 75/22 75
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Swarm Robotics Start
• Multirobot Control [12] ACO-based Clustering An artificial ant carrying an object determines whether to put the carrying object or to continue to carry. This decision is made based on the formula:
p*k f ( p) = 100 The more it senses strong pheromone, the more it tends to put the carrying object. The probability f(p)=1 (must put it down).
yes
Have an object
Pheromone walk Empty space detected?
no
yes
Put object
no
Satisfied requirement? yes
End MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
76/22 76
SI in Swarm Robotics Start
• Multirobot Control [12] ACO-based Clustering
yes
Have an object
Termination Condition: Pheromone walk
The number of resulted clusters is less than ten, and
Empty space detected?
all the clusters have more or equal
no
yes
to three objects.
Put object
no
Satisfied requirement? yes
End 77/22 77
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Swarm Robotics • Multirobot Control [12] Results Airport Field (Objects: 400, Ant Agent: 100) Airport field
Ant Colony Clustering
Specified Position Clustering
Cost
Ave
Clust
Cost
Ave
Clust
1
4822
12.05
1
11999
29.99
4
2
3173
7.93
6
12069
30.17
4
3
3648
9.12
4
12299
30.74
4
4
3803
9.51
3
12288
30.72
4
5
4330
10.82
5
1215
30.31
4
Clust represents the number of clusters, and Ave represents the average distance of all the objects moved. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
78/22 78
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] A group of unmanned mobile robots are searching for a specified target in a high risk environment.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
79/22 79
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] Assumptions - A number of robots/particles are randomly dropped into a specified area and flown through the search space with one new position calculated for each particle per iteration; - The coordinates of the target are known and the robots use a fitness function, in this case the Euclidean distance of the individual robots relative to the target, to analyze the status of their current position; - Obstacle’s boundary coordinates are known.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
80/22 80
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] PSO-CRS Algorithm Step 1: A population of robots is initialized in the search environment containing a target and an obstacle, with random positions, velocities, personal best positions (pid), and global best position (pgd). MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
81/22 81
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] PSO-CRS Algorithm Step 2: The fitness value, Euclidean distance from the robot to the target, is determined for each robot where Tx and Ty are the targets coordinates and Px and Py are the current coordinates of the individual robot. fitness =
(T x − Px ) 2 + (T y − Py ) 2
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
82/22 82
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] PSO-CRS Algorithm Step 3: The robot’s fitness is compared with its previous best fitness (pBestid) for every iteration to determine the next possible coordinate position for each robot in the search environment. The next possible velocity and position of each robot are determined according to the following equations:
vid ( k + 1) = ω × vid ( k ) + c1 × rand () × [ pBest id ( k ) − xid ( k )] + c2 × rand () × [ gBest d ( k ) − xid ( k )] xid ( k + 1) = xid ( k ) + vid ( k + 1) MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
83/22 83
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] PSO-CRS Algorithm Step 4: If the next possible position xid(k+1) resides within the obstacle space, the obstacle avoidance mechanism is employed, otherwise the robot moves to this new position.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
84/22 84
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] PSO-CRS Algorithm Obstacle avoidance mechanism:
( horiz , vert , next ) = arc ( x _ start , y _ start , x _ center , y _ center , dir , points ) dir: CW – CCW points=4
nearest corner of the obstacle
The new position of the particle is set at the second point in the arc. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
85/22 85
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] PSO-CRS Algorithm Step 5: The pBestid with the best fitness for the entire swarm is determined and the global best coordinate location, gBestd, is updated with this pBestid. Step 6: Until convergence is reached, repeat steps.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
86/22 86
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] Simulation Results Search space: 20 by 20 units. Vmax = 0.5 units. # of robots = 10 # of targets = 1 # of obstacles=1
87/22 87
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] Simulation Results
Robots’ pathways to the target location. Two robots collide into the obstacle. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
Robots’ pathways to the target location with obstacle avoidance mechanism. 88/22 88
SI in Swarm Robotics • Collective Robotic Search (CRS) [13] Simulation Results Average Number of Iterations taken by the Swarm with standard deviations over 20 trails Obstacle Type Square
Circle
PSO Parameters 1c1=0.5,c2=2, w=0.6
PSO Parameters 2c1=2,c2=2, w=0.6
Average±std
89.43±9.86
105.6±10.68
Maximum
104
128
Minimum
66
85
Average±std
76.75±8.75
106.1±11.61
Maximum
95
128
Minimum
64
78
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
89/22 89
Outline • Introduction • Body/Brain Evolution
MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University of Waterloo
• Traditional Robotics • Swarm Robotics • Swarm Intelligence (SI) • SI in Traditional Robotics • SI in Swarm Robotics • Concluding Remarks
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
90/22 90
Concluding Remarks • Swarm intelligence techniques such as Ant Colony Optimization (ACO) and Particle Swarm Optimization (PSO) have shown to be an effective global optimization algorithms in traditional and swam robotics. • ACO and PSO have been successfully applied in solving problems such as motion planning, gait optimization, group behavior, control, learning, odor-source localization, collective robotic search and mobile sensor deployment, to mention a few.
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
91/22 91
References [1] E. Sahin and A. Winfield, “Special issue on swarm robotics,” Swarm Intelligence, 2: 69–72, Springer Science, 2008. [2] Pasteels et al. From Individual to Collective Behavior in Social Insects. Pages 155-175, 1987. [3] Richard Vaughan, “Massively multi-robot simulation in stage,” Swarm Intelligence 2: 189–208, 2008. [4] T. Guan-Zheng, H. Huan and S. Aaron, "Ant Colony System Algorithm for Real-Time Globally Optimal Path Planning of Mobile Robots", Acta Automatica Sinica, 33(3), p. 279-285, March 2007. [5] Xueping Zhang, Hui Yin, Hongmei Zhang and Zhongshan Fan, “Spatial Clustering with Obstacles Constraints by Hybrid Particle Swarm Optimization with GA Mutation “, LNCS, Springer, ISBN 978-3-540-87731-8, pp.569578, 2008. [6] Mehtap Kose and Adnan Acan, “Knowledge Incorporation into ACO-Based Autonomous Mobile Robot Navigation”, LNCS, Springer, ISBN 978-3-540-23526-2, pp. 41-50, 2004. [7] Cord Niehaus, Thomas R¨ofer, Tim Laue, "Gait Optimization on a Humanoid Robot using Particle Swarm Optimization", The second workshop on Humanoid Soccer Robots, 2007. [8] Gursel Alıcıa, Romuald Jagielskib, Y. Ahmet Sekerciogluc, Bijan Shirinzadehd, “Prediction of geometric errors of robot manipulators with Particle Swarm Optimisation method”, Robotics and Autonomous Systems 54, pp. 956–966, 2006. [9] Takeshi Matsui, Masatoshi Sakawa, Takeshi Uno, Kosuke Kato, Mitsuru Higashimori, and Makoto Kaneko, "Particle Swarm Optimization for Jump Height Maximization of a Serial Link Robot", Journal of Advanced Computational Intelligence and Intelligent Informatics, Vol.11, No.8 pp. 956-963, 2007. [10] Fabien Moutarde, “A robot behavior-learning experiment using Particle Swarm Optimization for training a neural-based Animat”, 10th International Conference on Control, Automation, Robotics and Vision (ICARCV 2008), 2008. MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
92/22 92
References [11] Maki K. HABIB, Hajime ASAMA, “Efficient method to generate collision free paths for autonomous mobile robot based on new free space structuring approach,” In Proceedings of International Workshop on Intelligent Robots and Systems. Japan, November, 1991, 563-567. [12] Yasushi Kambayashi, Yasuhiro Tsujimura, Hidemi Yamachi, Munehiro Takimoto and Hisashi Yamamoto, “Design of a Multi-Robot System Using Mobile Agents with Ant Colony Clustering”, Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009. [13] Smith, L., Venayagamoorthy, G. K. and Holloway, P. (2006): Obstacle Avoidance in Collective Robotic Search Using Particle Swarm Optimization. IEEE Swarm Intelligence Symposium, Indianapolis, Indiana, USA, May 2006. [14] Fei Li, Qing-Hao Meng, Shuang Bai, Ji-Gong Li and Dorin Popescu, "Probability-PSO Algorithm for Multirobot Based Odor Source Localization in Ventilated Indoor Environmen", LNCS, Springer, 978-3-540-88512-2, pp. 1206-1215, 2008. [15] Wisnu Jatmiko, Petrus Mursanto, Benyamin Kusumoputro, Kosuke Sekiyama and Toshio Fukuda, "Modified PSO algorithm based on flow of wind for odor source localization problems in dynamic environments", WSEAS TRANSACTIONS on SYSTEMS archive, 7(2), pp. 106-113, 2008. [16] Wu Xiaoling, Shu Lei, Yang Jie, Xu Hui, Jinsung Cho and Sungyoung Lee,“Swarm Based Sensor Deployment Optimization in Ad Hoc Sensor Networks,“ LNCS, Springer, ISBN 978-3-540-30881-2, pp. 533-541, 2005. [17] Jim Pugh and Alcherio Martinoli, “Multi-robot learning with particle swarm optimization”, International Conference on Autonomous Agents,ISBN:1-59593-303-4, p. 441-448, Japan, 2006. [18] Sabine Hauert, Laurent Winkler, Jean-Christophe Zufferey, and Dario Floreano, “Ant-based swarming with positionless micro air vehicles for communication relay”, Swarm Intell (2008) 2: 167–188. 2008. [19] Yan Meng, Olorundamilola Kazeem and Juan C. Muller, “A Hybrid ACO/PSO Control Algorithm for Distributed Swarm Robots,” Proceedings of the 2007 IEEE Swarm Intelligence Symposium (SIS 2007).
MUSES_SECRET: ORF-RE - © PAMI Research Group of – University ECE493T8:2008-2009 - © Project PAMI Research Group – University Waterloo of Waterloo
93/22 93