Ultimate Virtarium Design¶
This independent study is an intermediate phase to the vision of a vivarium for inanimate (robotic) creatures in the RU atrium, the Sun.
The AirSwimmer toy is a remote controlled helium filled “blimp” in the shape of a fish. Properly balanced the fish has a neutral boyancy in air. It has two actuators; 1) a tail capable of moving left and right (with the neutral position in the middle) and 2) an electronics casing that moves on a track on the belly of the fish. The tail propels the fish forward and can also be used to turn left or right by flapping more to one side. The position of the electronics case controls the pitch of the fish and therefore whether the fish climbs or descends as it is propelled forward using the tail. More information about the AirSwimmer: http://airswimmers.com/
In this project, focus will be on creating a software system capable of imitating the behavior of the AirSwimmers and replicating the environment in which they will live. In other words, create a crude virtual replica of the RU atrium and model the behavior of the AirSwimmers as an agent within that environment. Parallel to this project, another project will be ongoing focusing on the hardware aspect of the AirSwimmer toys, enhancing autonomous capabilities by replacing electronic components and performing tests.
Software design requirements for this project include the following:
- Agent based. Each individual in the environment should have independent autonomous behavior. That is, all logic controlling the behavior of an individual should only be dependant on that individuals nearest surroundings (surroundings that the physical individual could sense with its sensors).
- Flocking / Schooling. The system should implement some sort of flocking/schooling behavior for the AirSwimmers. See http://www.red3d.com/cwr/boids/. Note that this behavior should be implemented on an individual level (inside the agent).
- Maneuvering capabilities. Currently we only have plans for physical implementation of the AirSwimmers but in the future we might add other “creatures” such as crustaceans, jellyfish, penguins etc. Each of these individual types have different maneuvering capabilities. The AirSwimmers can pitch, surge and yaw in three dimensions while a crustacean (which might be physically implemented for example using a Roomba robot) would be limited to only two dimensions (the floor). Yet another example would be a creature implemented using a quad-copter which has much more dynamic maneuvering capabilities than the AirSwimmer.
- Individual types. In addition to maneuvering capabilities the system should support different individual types. Some individuals might have similar (or even the same) maneuvering capabilities but have very different characteristics. An example of this would be the difference between the clown fish AirSwimmer and the shark AirSwimmer. These two have the same maneuvering capabilities but the shark will be defined as a predator while the clown fish would be characterized as prey. Schools of clown fish would therefore gather but if a predator (shark) approaches, the school would break apart to avoid it.
One of the biggest challenges in doing the physical implementation will be the localization of the individuals. This project will ignore this problem to a large extent and assume that agents can get relatively accurate location information about other proximal agents. The agents must however make behavioral decisions themselves based on this information.
The focus will be on the architecture of the system as a whole and the clean separation of agents and environment as well as defining abstractions for individual behavior. Graphics will not play a big role in this iteration of development. Another project has been defined which focuses on modifying the AirSwimmer hardware to better suit autonomy. While being a prerequisite for physical control of the AirSwimmer there is still a key part missing from being able to implement a physical version of Virtarium, namely the localization of physical individuals.
Future work on this project will include implementing the aforementioned physical localization solution and integrating that into the software framework developed in this project. Also, once the AirSwimmer hardware improvement project is done, work can begin on implementing a pilot capable of controlling a physical AirSwimmer.
The software will be released under a permissive open source license (MIT, Apache, BSD) and should preferably be implemented in Python.
Updated by Stefán Freyr Stefánsson over 12 years ago · 1 revisions