SWARM (Roboterschwärme)
Participants
- Matthias Esau
- Sergius Gaulik
- Michael Goerlich
Project Supervisors
- René Griessl
- Stefan Herbrechtsmeier
- Ulrich Rückert
- Andry Tanoto
Motivation
- Solving problems with "divide and conquer"-type algorithms leads to simpler problems that might be solved by an simple, cheap device.
- This can accelerate the search for a solution to a problem.
- simple and easy programmable behavior can solve complex problem robustly in case it is executed by many independent communicating agents.
- Embodiment (physical presents of the agents) gives an implicit context of the situation.
- Examples could be distributed searching, distributed mapping or building complex formations with simple design rules
- Communication is an important as well as access of the devices sensors and and actors.
- Thus we created a toolkit that allows communication as well as sensor processing and actor control.
Application Scenario
As testbed for swarm algorithms we utilize the Telewerkbank environment from the cognitronic and sensoric group. Our toolkit simplifies control of the robots actors (engines, LEDs), grants easy access to the sensors (camera, infrared distance sensors) and allows communication between the robots through RSB.
Possible scenarios would be:
- distributed search for a colored object placed inside the Telewerkbank area
- distributed exploration of an unknown area built inside the Telewerkbank
Objectives
The project goals are
- to access the Bebot camera through v4l2 without automatic correction for ambient-light-independent blob detection
- to access the infrared sensors for object evasion
- to control the LEDs of the robot
- to control the robots' motors together with infrared information to allow crash avoidance
- to approximate the robots' resulting position through kinematic equations
- to find simple equations to approximate the distances of the robot to objects through camera images and infrared intensities
- package all above functions into a toolkit for easy implementation of swarm algorithms
- demonstrating the toolkit by implementing a simple distributed search algorithm
- automatically configure the robots
- predict sensor information to overcome sensor input delays (had to be cancelled due to time issues)
Description
The project lays the basis for the fast development of simple swarm algorithms with the Bebot robots. It allows easy access to all the Bebots sensors (camera, infrared distance sensors), control of the actors (engine, LEDs) and communication between the robots through RSB.
The resulting toolkit allows easy configuration of new robots and provides to the developer all tools to build an agent following the model of a reactive agent. All accessible information is polled and preprocessed asynchronously to overcome sensors having different polling rates while taking care of all necessary synchronisation.
For demonstration purposes a simple search algorithm was implemented that follows the simple state machine below
The bots search for an object (green). In case one robot was successful it stop moving and turns red. In case a robot found somebody that has found the object (a red bot) it turns red as well and approach it. They wait until every bot has found either the object or a bot that has found the object. Then they approach the green object together. This simple behavior allows the whole swarm to find the target and surround it.
Results
- The sensor information is acquired asynchronously.
- We have implemented and evaluated Algorithms for crash avoidance.
- The distributed search algorithm for demonstration purposes was implemented and is shown in action in the demonstration video.
Discussion and Conclusion
- Most planned features initially set have been implemented.
- Due to hardware constraints (sensor input delay) the system was not working as fast and responsive (infrared signals come in delayed as well as low frame rates of the camera) as we hoped.
- A possible solution would have been the prediction of sensor data which, however, was beyond the scope of this term's project.
Outlook
To further develop the project we would like to implement a distributed mapping algorithm. This means that the Bebots solve the task to create a map containing all static obstacles in their environment. For that reason we will enhance the toolkit to allow the Bebots to access their built-in gyroscope to use them as orientation sensor. Additionally we will add support for state machines to further simplify the implementation of new behaviors and add the possibility to reuse the existing behaviors.