87
Multi-Agent Systems on Arduino & iOS

Multi-Agent Systems on Arduino & iOS

Embed Size (px)

Citation preview

Page 1: Multi-Agent Systems on Arduino & iOS

Tomáš Jukin@Inza

Multi-Agent Systems on Arduino & iOS

Page 2: Multi-Agent Systems on Arduino & iOS

Znáte Half-Life?

Page 3: Multi-Agent Systems on Arduino & iOS
Page 4: Multi-Agent Systems on Arduino & iOS
Page 5: Multi-Agent Systems on Arduino & iOS

Table

Page 6: Multi-Agent Systems on Arduino & iOS
Page 7: Multi-Agent Systems on Arduino & iOS

Robot

Page 8: Multi-Agent Systems on Arduino & iOS
Page 9: Multi-Agent Systems on Arduino & iOS
Page 10: Multi-Agent Systems on Arduino & iOS
Page 11: Multi-Agent Systems on Arduino & iOS

Tomáš Jukin@Inza

www.juicymo.cz@JuicymoCZ

Page 12: Multi-Agent Systems on Arduino & iOS

Tomáš Jukin@Inza

Page 13: Multi-Agent Systems on Arduino & iOS

Tomáš Jukin@Inza

#MachineRoomat #DevFestCZ

MachineRoom

Page 14: Multi-Agent Systems on Arduino & iOS
Page 15: Multi-Agent Systems on Arduino & iOS

Movement Agent

Page 16: Multi-Agent Systems on Arduino & iOS

Movement Agent

Turning Agent

Page 17: Multi-Agent Systems on Arduino & iOS

Movement Agent

Turning Agent

Border Agent

Page 18: Multi-Agent Systems on Arduino & iOS
Page 19: Multi-Agent Systems on Arduino & iOS

When to use MAS?And for what?

Page 20: Multi-Agent Systems on Arduino & iOS

When to use MAS?

“When the solution is complex algorithm …”

Page 21: Multi-Agent Systems on Arduino & iOS

When to use MAS?

“… which is difficult / impossible to

design or code”

Page 22: Multi-Agent Systems on Arduino & iOS

When to use MAS?

Lets split complex behavior to simple

agents

Page 23: Multi-Agent Systems on Arduino & iOS

HOW to use MAS?

A) MANY agents in ONE robot form population of ONE robot !

B) ONE agent per ONE robot form population of MANY robots

Page 24: Multi-Agent Systems on Arduino & iOS

A) MANY agents per robot !

B) ONE agent per robot, MANY robots

HOW to use MAS?

Page 25: Multi-Agent Systems on Arduino & iOS

A) MAS controls one robot !

B) MAS controls MANY robots

HOW to use MAS?

Page 26: Multi-Agent Systems on Arduino & iOS

Today I will talk about A)

MANY agents in ONE robot form population of ONE robot

MAS controls one robot

HOW to use MAS?

Page 27: Multi-Agent Systems on Arduino & iOS

When to use MAS?

Agents do not need to know HOW to solve the

problem

Page 28: Multi-Agent Systems on Arduino & iOS

When to use MAS?

Let them accumulate money instead ;)

(for example)

Page 29: Multi-Agent Systems on Arduino & iOS

When to use MAS?

Let the emergence do the dirty work for us!

Page 30: Multi-Agent Systems on Arduino & iOS

Any dangers?

Emergence is not a cute girl…

Page 31: Multi-Agent Systems on Arduino & iOS

To tune it properly can be tricky…

Page 32: Multi-Agent Systems on Arduino & iOS

Examples?

Airplane navigationRobot control

Network diagnosticsPredictive systems

Simulations

Computer Games AI

Page 33: Multi-Agent Systems on Arduino & iOS

MASculptor

Leden 2014Objective-C

Open Source

Page 34: Multi-Agent Systems on Arduino & iOS

MASculptor

example screenshots, few infoiOS agnostic

demo iOS6 only

Page 35: Multi-Agent Systems on Arduino & iOS

Swift

Page 36: Multi-Agent Systems on Arduino & iOS

What is an agent?

Page 37: Multi-Agent Systems on Arduino & iOS

Co je to agent?

Agent je entita zkonstruována za účelem kontinuálně a do jisté míry autonomně plnit své cíle v adekvátním prostředí na základě vnímání prostřednictvím senzorů a prováděním akcí prostřednictvím aktuátorů. Agent přitom ovlivňuje podmínky v prostředí tak, aby se přibližoval k plnění cílů.

Page 38: Multi-Agent Systems on Arduino & iOS

Co je to agent?

Agent je entita zkonstruována za účelem kontinuálně a do jisté míry autonomně plnit své cíle v adekvátním prostředí na základě vnímání prostřednictvím senzorů a prováděním akcí prostřednictvím aktuátorů. Agent přitom ovlivňuje podmínky v prostředí tak, aby se přibližoval k plnění cílů.

Page 39: Multi-Agent Systems on Arduino & iOS

Co je to agent?

Agent Prostředí

Senzory

Aktuátory

Page 40: Multi-Agent Systems on Arduino & iOS

Co je to agent?

Agent Prostředí

Senzory

Aktuátory

Vnitřní architektura

Znalostní báze

Řídíci jednotka

Page 41: Multi-Agent Systems on Arduino & iOS

Rozdíl je ve vnitřní architektuře

Agent Prostředí

Senzory

Aktuátory

Vnitřní architektura

Page 42: Multi-Agent Systems on Arduino & iOS

Naive(communicating)

agentReactive

agent

Deliberative(planning)

agent

Hybridagent

(reactive + planning)

Page 43: Multi-Agent Systems on Arduino & iOS

performReasoning() { // ...

}

WorldState1 -> Action1 WorldState2 -> Action2 WorldState3 -> Action3 else -> idle

Behavior Pattern TableAbstract Method

Desire > Goal > Intents > Plan > Steps

1) Generate (choose) Plan 2) Execute

Reactive + DeliberativeWorldState1 -> Action1 WorldState2 -> Action2 WorldState3 -> Action3 else -> Deliberative

1) Generate (choose) Plan 2) Execute

Page 44: Multi-Agent Systems on Arduino & iOS

What is an MAS?

Page 45: Multi-Agent Systems on Arduino & iOS

What is MAS?

Multi-Agent System is a system which uses group or population of agents interacting with environment in order to achieve global goal. Typically individual agents do not have a clue about the global goal. They have their own goals. The global goal is achieved by emergence.

Page 46: Multi-Agent Systems on Arduino & iOS

What is MAS?

Multi-Agent System is a system which uses group or population of agents interacting with environment in order to achieve global goal. Typically individual agents do not have a clue about the global goal. They have their own goals. The global goal is achieved by emergence.

Page 47: Multi-Agent Systems on Arduino & iOS
Page 48: Multi-Agent Systems on Arduino & iOS

#Probee Robot

Page 49: Multi-Agent Systems on Arduino & iOS

#Probee Robot

3x UltraSonic Sensor (Forward / Backward / Turret)

4x DC Motor

1x Motor Controller (Left / Right)

1x Arduino UNO (= brain)

1x Bluetooth Module

1x 2x16 I2C LCD (= status display)

Page 50: Multi-Agent Systems on Arduino & iOS

MachineRoom

Page 51: Multi-Agent Systems on Arduino & iOS

How our MAS in #Probee Robot works?

Page 52: Multi-Agent Systems on Arduino & iOS

MAS in #Probee RobotWritten in Wiring/Processing (C dialect)Running on 8bit processor32KB program memory, 2KB RAM

Page 53: Multi-Agent Systems on Arduino & iOS

Concurrency vs. Parallelism

Page 54: Multi-Agent Systems on Arduino & iOS

Parallelism

time →

Page 55: Multi-Agent Systems on Arduino & iOS

Parallelism

Agent 1

Agent 2

Agent 3time →

Page 56: Multi-Agent Systems on Arduino & iOS

Parallelism

Agent 1

Agent 2

Agent 3

How much work can be done in parallel? !

Every agent…time →

Page 57: Multi-Agent Systems on Arduino & iOS

Concurrency

time →

Page 58: Multi-Agent Systems on Arduino & iOS

Concurrency

time →

Agent 1

Agent 2

Agent 3

Page 59: Multi-Agent Systems on Arduino & iOS

Concurrency

time →

Agent 1

Agent 2

Agent 3

How much work is actually computed in parallel? !

Only one (serialization)

Page 60: Multi-Agent Systems on Arduino & iOS

MAS in #Probee RobotWritten in Wiring/Processing (C dialect)Running on 8bit processor32KB program memory, 2KB RAM

Page 61: Multi-Agent Systems on Arduino & iOS

MAS in #Probee RobotWritten in Wiring/Processing (C dialect)Running on 8bit processor32KB program memory, 2KB RAM

Parallelism

4

Page 62: Multi-Agent Systems on Arduino & iOS

MAS in #Probee RobotWritten in Wiring/Processing (C dialect)Running on 8bit processor32KB program memory, 2KB RAM

Parallelism

4Concurrency

1 (serialization)

Page 63: Multi-Agent Systems on Arduino & iOS

MAS in #Probee RobotWritten in Wiring/Processing (C dialect)Running on 8bit processor32KB program memory, 2KB RAM

Parallelism

4Concurrency

1 (serialization)

Agents

4

Page 64: Multi-Agent Systems on Arduino & iOS
Page 65: Multi-Agent Systems on Arduino & iOS

A1StopperAgent

Page 66: Multi-Agent Systems on Arduino & iOS

A1StopperAgent

A2Communicating

Agent

Page 67: Multi-Agent Systems on Arduino & iOS

A1StopperAgent

A2Communicating

Agent

A3PlannerAgent

Page 68: Multi-Agent Systems on Arduino & iOS

A1StopperAgent

A2Communicating

Agent

A3PlannerAgent

A4Movement

Agent

Page 69: Multi-Agent Systems on Arduino & iOS

Stop when collision would

happen

Connect with user

(send sensor data, receive motor data)

“Plan” the next action

Control movement based on orders

from A2/A3

Page 70: Multi-Agent Systems on Arduino & iOS

A1 Stopper

A2 Communicator

A3 Planner A4 Mover

Environment

Sensors

Actuators

Sensors

Actuators

Sensors

Actuators

Sensors

Actuators

Page 71: Multi-Agent Systems on Arduino & iOS

A1 Stopper

A2 Communicator

A3 Planner A4 Mover

Sensors

Actuators

Sensors

Actuators

Sensors

Actuators

Sensors

Actuators

Environment

Blackboard MotorsBluetooth

a1_vars

a2_vars a4_varsUltrasonic Sensors

a3_vars

Page 72: Multi-Agent Systems on Arduino & iOS
Page 73: Multi-Agent Systems on Arduino & iOS
Page 74: Multi-Agent Systems on Arduino & iOS

MAS run even on places you do not expect!M

Page 75: Multi-Agent Systems on Arduino & iOS

Anyone can make Software, try Hardware as well!A

Page 76: Multi-Agent Systems on Arduino & iOS

Seize the opportunity and make your MAS today!S

Page 77: Multi-Agent Systems on Arduino & iOS
Page 78: Multi-Agent Systems on Arduino & iOS

M

Page 79: Multi-Agent Systems on Arduino & iOS

A

M

Page 80: Multi-Agent Systems on Arduino & iOS

S

A

M

Page 81: Multi-Agent Systems on Arduino & iOS

S

A

MAS run even on places you do not expect!M

Page 82: Multi-Agent Systems on Arduino & iOS

S

Anyone can make Software, try Hardware as well!A

MAS run even on places you do not expect!M

Page 83: Multi-Agent Systems on Arduino & iOS

Seize the opportunity and make your MAS today!S

Anyone can make Software, try Hardware as well!A

MAS run even on places you do not expect!M

Page 84: Multi-Agent Systems on Arduino & iOS

Interested?

Build or ImplementYOUR own MAS!

You can start right now……with any language…

…or on Arduino!

Page 85: Multi-Agent Systems on Arduino & iOS

Questions?

Page 86: Multi-Agent Systems on Arduino & iOS

Tomáš Jukin@Inza

www.juicymo.cz@JuicymoCZ

Page 87: Multi-Agent Systems on Arduino & iOS

Photo Credits

All photos used are CC from Flickr!