NetLogo User Community Models
(back to the NetLogo User Community Models)
by Mike Borowczak
WHAT IS IT?
In order to showcase the needs and benefits behind run-time safety we have devised and implemented multiple revisions of a simple intelligent clustering scenario. The scenario is based off of the real-world need for independent patrol agents to locate and create a perimeter around any stationary target. In our scenario an agentŐs primary objective is to come within a specified radius of the target source without colliding with any other agents. Our aim is to show the methodology used in developing our implementation such that the agentŐs objective is satisfied, and safety is guaranteed. We begin by describing the world, the target, and the agent model as all three form the basis for the primary objective. We will then describe the three major developmental stages of our agents; covering their governing rules, initialization within the world, pros and cons and finally performance and safety issues.
I. The World
The world we have defined mimics that of a simple bounded square sector, though again our work is easily extensible to any shaped sector. Our world is referenced using the standard Cartesian coordinate system, with the origin located at the center of the world.
II. The Target
The target, for simplicity is located at the origin and is a static element of the world. Its properties and location are fixed throughout the scenarios. In addition, we assume the target emits a signal, which has intensity inversely proportional to the distance away from it. Thus we create, without formal definition, an ever-decreasing gradient field away from the target.
III. The Agents
Our agents are modeled as independent entities with simple control mechanisms. They are at their core, extensions of the classic Braitenberg vehicles. Our agents have the capability to detect two different types of signals, say visible light and radiation; they are repulsed by one and attracted to the other. The agents have the ability to rotate based off of simple connections between the input sensors and the agentŐs wheel motors. Directional movement of the agents is restricted bi-directionally along its sagittal axis, allowing movement only forwards and backwards. Formally stated, the rules that govern the agents in our model are a direct consequence of their physical enbodiment. The presence of certain signals causes rotation, and movement relative to the signal source.
HOW TO USE IT
Use the given control to set up #robots and activate them - turn on and off collision detection - interesting behavior is when it is turned off - few collisions occur unless 1. space contraints are exceeded
2. initial placement causes issues
THINGS TO NOTICE
Observe the self-organizing nature of the system!
During each time steps two different goals are considered:
1. Is the robot within the acceptable radius (blue area) from the epicenter (purple area)?
a. Since the Robot can detect the distance and bearing to the epicenter we simply:
i. Face the Epicenter
ii. Check if our distance is within the bounds that are preprogrammed to maintain
1. (OutterRadius > Our Radius > InnerRadius)
iii. If we are outside the outer radius move #CentRule units towards the epicenter
iv. If we are inside the inner radius we move #CentRule units away from the epicenter
2. Can the robot ÔseeŐ another robot?
a. Robot can detect closest neighbor, X
i. Face X
ii. Rotate #rotateAmt
iii. Move #DisperseRule units away from X
THINGS TO TRY
1. View connections/links
2. Change dispersion of robots etc.
CREDITS AND REFERENCES
Copyright 2008 Mike Borowczak (http://www.ece.uc.edu/~borowcm) . Digital Design Environments Lab (http://www.ece.uc.edu/~ddel) All rights reserved.