Project Elements - TomHulme/306-Swarm-Robotics-Project GitHub Wiki
SoftEng 306: Project 1
Robotic Node
-
each node must have: -robot-id -pose (x,y,theta)eta -linear velocity (^x,^y) -angular velocity(^theta)
-
the nodes current state must be represented by
- pose and velocity
-
robot-id: identification number
-
pose (x,y,theta): x - horizontal position in world frame y - vertical position in world frame theta - heading of robot in world frame
-
linear velocity (^x, ^y): ^x - speed of node in horizontal axis ^y - speed of node in vertical axis
-
angular velocity (^theta): change in heading
Farm: Includes at least 4 fields Needs to have an output area
Fields: A rectangular area of the farm. The farm has 4 fields.
- each field has its own soil parameter
Soil: A single parameter defining the type of soil a field currently has.
- can potentially range from arid to fertile. <-arid-------normal------fertile->
Water: Rain calculated farm wide. If its raining there will be less sunlight -> sunshowers Controls how much rainfall a field has in a day.
- implemented with the use of a probability distribution.
- gaussian with a mean rainfall per day and a variance
Grass: Instance of Robotic Node Grass instance has no need for movement
- Creation and destruction of grass relies on Water, Soil, and Sunlight.
- Grass grows when certain criteria is met: e.g - soil is normal or fertile - average rainfall is at least xx - average amount of light is above xx
- Can potentially use probability, normal soil has lower chance to grow grass than fertile soil
- Grass is destroyed when the criteria is not met:
- grass may be able to decay when criteria is not met
- if grass stays decayed for too long then it dies off
- decayed grass can then lead into sheep illness
- Grass can have 2 levels, sheep needs to eat both levels of grass to destroy node
Sheep: Instance of Robotic Node Able to utilise all apsects of the robotic node
- When a sheep is near grass, it eats it.
- Sheep can grow (change scale perhaps)
- Can sense grass (perhaps moves towards it when it is near)
- Sheep can get ill, recovers from illness over time.
- Sheep can get ill if not eating enough, if eating decaying grass
- Sheep excretes waste: -Excrete can be a function of Sheep, chance to do it. Higher chance if ill -Will create a small robotic node (excretion) that will dissapear over time. -Can make other sheep ill -Nearby sheep may get ill, similar to below
- Sheep reacts to other sheep
- danger sense
- other sheep sense that a nearby sheep is in danger and then run with it
- sheep may end up just running to a good bit of grass
- Sheep can only communicate with other sheep that are close to them
Farmer: Instance of Robotic Node Able to utilise all aspects of the robotic node
- Herds together sheep
- Moves them to be picked up by a truck, which sells the sheep for money
Innovations: Day Night Cycle could be introduced into the simulation. Meaningful sunlight data. Counter for how much money is made from the sheep. - base price for a normal sized sheep - bigger sheep sell for more - e.g Sheep that is 10% bigger sells for 10% more Mad Sheep disease. - chance when ill for sheep to start eating other sheep - potential to extend it to eating farmer - eating sheep will make it grow much faster Sheep dog. - farmer directs sheep dog - farmer can communicate with sheep dog regardless of position
For the Alpha: - 4 set fields - Simple parameter for soil - may not effect on anything - Simple rain for farm, no effect on anything - Grass dies on being eaten, doesnt grow - Sheep just moves and eat grass - Farmer just moves around
Generating a world file for our simulation - For alpha, just a simple pre written world file - Need to generate world files before we run our simulation