PRE2015 2 Groep1: Difference between revisions
No edit summary |
|||
(104 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
==Universal Swarm Robotics Software Project== | |||
Swarm robotics is a new approach to the coordination of multirobot systems which consist of large numbers of mostly simple physical robots. It is supposed that a desired collective behavior emerges from the interactions between the robots and interactions of robots with the environment. | Swarm robotics is a new approach to the coordination of multirobot systems which consist of large numbers of mostly simple physical robots. It is supposed that a desired collective behavior emerges from the interactions between the robots and interactions of robots with the environment. The key-factor in swarm robotics is the simplicity of the individual and the possible applications of the applications of the bigger group. Since the individual robots are so simple, researchers are able to use actual hardware instead of simulations. Therefor the researchers come across and resolve a lot more issues than they would be able to using simulations, since research with actual hardware (almost always) brings up new issues which are not covered in the simulations. | ||
The possible applications for this field of research is immense. Since the robots aim to be as simple as possible, it is possible to greatly reduce the size of the individuals. In a world were technology is miniaturizing this is a great plus, for instance think about the field of nano-robotics and micro-robotics. Some known applications in the field of swarm robotics to date are: | |||
*Tasks with cheap design demands, like mining tasks or agricultural foraging tasks. Here you can see a small swarm of robots Deep-Sea mining. | |||
[[File:Deepseamining.jpg|500px]] | |||
*Swarm robotics are also known to be used by artists to realize new forms of interactive art. Here you can see the result of a light painting done using swarms of robot vacuum cleaners. | |||
[[File:Swarmrobotsart.jpg|500px]] | |||
*Another application of the swarm robotic technology is within the military, in order to form an autonomous army. Swarms of micro aerial vehicles have been already tested in tasks of autonomoes surveillance, plume tracking and reconnaissance in compact phalanx. The U.S. Naval forces are also testing with a swarm of autonomous boats that can steer and take offensive action by itself, see picture below. | |||
[[File:Militaryswarm.jpg|500px]] | |||
*But the most promising use of the swarm robotics is within the field of disaster rescue robots, since the robots are a lot more adaptable than the current rescue methods (see [[scenario]]) due to their small size. Therefor the scope of this project will be within the field of disaster rescue robots, see picture below for our own rescue swarm. | |||
[[File:nxtrobots.jpg|500px|]] | |||
==Scenario== | |||
For the scenario of this case, a disaster has struck and demolished many buildings and structures. Whether it was an earthquake, an explosion or an alien attack, there will be debris from fallen structures which make possibly trapped people inaccessible. Till today still many people don't get saved in time and die due to the severity of there injuries. Although the rescue techniques have improved over the years, a better solution has to be made to tackle this problem. Some of the current techniques used in rescue missions are: | |||
*rescue dogs, which able to smell people trapped under layers of debris | |||
*helicopters, which are used to get a global eagle point of view were possible survivors can be spotted | |||
*volunteers, which are a big part of the rescue missions in disaster areas | |||
*Emergency Response Vehicles (ERVs), which are deployed in the disaster areas. Here they circulate throughout affected communities in order to hand out food, relief supplies, information and comfort to people in need | |||
[[File:ScenarioDisaster.jpg]] | |||
Since the help could still be improved for the struck people, an attempt is made here to introduce swarm behavior to this problem. The general idea being that a cooperation swarm of robots gives a greater result then a multi functional unit which has the same capabilities as the swarm as a whole. The key in succeeding is to create a synergy between the swarm units, which is translated into the [[robot control software]]. Since the swarm will be in direct contact with users (for example people struck by the accident) and society, [[USE principles]] will be some of the main guidelines in this design process. | |||
==Goal== | ==Goal== | ||
The goal of this project is to create a framework for | The goal of this project is to create a framework for rescue swarm robots with the [[USE principles]] as the basis of decision making. This project will focus on designing the hardware and developing the software. Our first idea was to use [[freeduino based robots]] as hardware, however after some thought and discussion [[Lego Mindstorms Robots]] will be used. From these robots we upgraded to our final set of [[NXT Robots]]. The software consists of the [[robot control software]] and a [[simulation]]. Using swarm robotics allows us to coordinate a large group of rescue robots. To asses the result a [[final scenario]] will be created. | ||
== USE principles == | |||
The keystone for a good design process are the [[USE principles]], in this case the focus will be on the User and Enterprise. Since the [[USE principles]] of the [[Final scenario]] are less evident than those of the [[simulation]], the main focus here will be on the [[simulation]]. | |||
For the [[Final scenario]] the USE based requirements are: | |||
'''User''' | |||
*''Control'' | |||
*''Care'' | |||
*''Robustness'' | |||
'''Enterprise''' | |||
*''Simplicity'' | |||
*''Flexibility'' | |||
*''Efficiency'' | |||
The configuration of the prior used [[Freeduino based robots]], [[Lego Mindstorms Robots]] and the final [[NXT Robots]] are based on the requirements shown above. The choice of tools and sensors are also requirement based on the [[USE principles]]. | |||
For the [[simulation]] the [[USE principles]] are more evident since this shows a lower level design, where decisionmaking is key for the rescuerobots. These [[USE principles]] are integrated as a set of parameters, where optimum can be achieved after repetitive research on the outcome of varying these parameters. The following parameters are implemented as priorities for the rescue robots: | |||
*''Scaling the amount of people'' | |||
*''Search vs Rescue'' | |||
*''How diffecult is it to save the target'' | |||
*''closest piles first'' | |||
*''Stick to the goal or save people on the way'' | |||
== Final representation == | |||
The final representation is split in: A [[simulation]] which represents the [[Final scenario]] on the big scale and a demonstration which is zoomed in on one pile. | |||
For the [[Final scenario]] a live demo was given using the [[NXT Robots]]. The robots decision making was based on the [[USE principles]] and implemented in the [[Robot control software]]. The main focus in the [[Robot control software]] will be on the '''pathing''', '''localisation''' and '''communication''' of the [[NXT Robots]]. For these three elements the general idea will be explained, followed by pseudo code and the src code will also be made available for possible future use. The pseudo code depicts the whole programming process, but with no programmingplatform considered. Therefore in the future it could be implemented into a different programming language. | |||
The [[simulation]] was implemented in python and incorporates some parameters representing different USE aspects. The simulation as shown at the presentation can be viewed at https://goo.gl/photos/xCoAm1C48F3FVqD97. Also in the main article about the simulation, one can find the code that is used for running and analysing the simulation. | |||
== Conclusion and recommendations == | |||
In conclusion the project has been succefully completed and has learned us alot, altough it could have been planned more thoroughly. Since we didn't have our final [[NXT Robots]] untill the fifth week, the [[final scenario]] with the live demo was lots of last minute work. But the teammembers stepped up and made it happen, unfortunatly te execution during the live demo went not entirely as planned. The main problem here was that we had to little time to properly test with the new floor, which resulted in a slight problem with the calibration of the lightsensors. But luckily this problem was solved after the demo, and the result can be viewed at https://youtu.be/i56Wzx9wmNc. The [[simulation]] process went smooth and was a good platform to implement the [[USE principles]] with the decision making as keystone. We've learned from it that certain ethical choices, such as saving people who are near you first, produce more efficient rescue operations than others. The whole progress of the project can be viewed in the [[Summary of activities arranged by week]]. | |||
For future use we recommend that the demonstration, zoomed in on one pile, should be done with a larger swarm with even more simplified robots, in order to get a realistic image and see the great benefits of swarm behaviour. Also a rougher terrain and real debris (small rocks etc.) could be implemented in order to get a better representation of the [[scenario]]. | |||
For the [[simulation]] we recommend finding a way to give a good graph representation of the world one is exploring on the go, so that shortest paths may be found. Furthermore, we've neglected to put one step of logic in the algorithm for returning to the clear zone, which should be implemented if the heuristic approach is taken. | |||
== Source Code == | |||
[[File:NXTSwarm.zip]] | |||
== Team == | |||
*'''0808084''' S.M. Koop | |||
*'''0770090''' C.M. Mens | |||
*'''0857017''' G.G. de Vries | |||
*'''0854907''' J.T.W. Koenders | |||
*'''0845163''' A.R.A. Ummelen | |||
== Summary of activities by week == | == Summary of activities arranged by week == | ||
See [[Summary of activities arranged by week]]. | |||
Latest revision as of 04:07, 18 January 2016
Universal Swarm Robotics Software Project
Swarm robotics is a new approach to the coordination of multirobot systems which consist of large numbers of mostly simple physical robots. It is supposed that a desired collective behavior emerges from the interactions between the robots and interactions of robots with the environment. The key-factor in swarm robotics is the simplicity of the individual and the possible applications of the applications of the bigger group. Since the individual robots are so simple, researchers are able to use actual hardware instead of simulations. Therefor the researchers come across and resolve a lot more issues than they would be able to using simulations, since research with actual hardware (almost always) brings up new issues which are not covered in the simulations.
The possible applications for this field of research is immense. Since the robots aim to be as simple as possible, it is possible to greatly reduce the size of the individuals. In a world were technology is miniaturizing this is a great plus, for instance think about the field of nano-robotics and micro-robotics. Some known applications in the field of swarm robotics to date are:
- Tasks with cheap design demands, like mining tasks or agricultural foraging tasks. Here you can see a small swarm of robots Deep-Sea mining.
- Swarm robotics are also known to be used by artists to realize new forms of interactive art. Here you can see the result of a light painting done using swarms of robot vacuum cleaners.
- Another application of the swarm robotic technology is within the military, in order to form an autonomous army. Swarms of micro aerial vehicles have been already tested in tasks of autonomoes surveillance, plume tracking and reconnaissance in compact phalanx. The U.S. Naval forces are also testing with a swarm of autonomous boats that can steer and take offensive action by itself, see picture below.
- But the most promising use of the swarm robotics is within the field of disaster rescue robots, since the robots are a lot more adaptable than the current rescue methods (see scenario) due to their small size. Therefor the scope of this project will be within the field of disaster rescue robots, see picture below for our own rescue swarm.
Scenario
For the scenario of this case, a disaster has struck and demolished many buildings and structures. Whether it was an earthquake, an explosion or an alien attack, there will be debris from fallen structures which make possibly trapped people inaccessible. Till today still many people don't get saved in time and die due to the severity of there injuries. Although the rescue techniques have improved over the years, a better solution has to be made to tackle this problem. Some of the current techniques used in rescue missions are:
- rescue dogs, which able to smell people trapped under layers of debris
- helicopters, which are used to get a global eagle point of view were possible survivors can be spotted
- volunteers, which are a big part of the rescue missions in disaster areas
- Emergency Response Vehicles (ERVs), which are deployed in the disaster areas. Here they circulate throughout affected communities in order to hand out food, relief supplies, information and comfort to people in need
Since the help could still be improved for the struck people, an attempt is made here to introduce swarm behavior to this problem. The general idea being that a cooperation swarm of robots gives a greater result then a multi functional unit which has the same capabilities as the swarm as a whole. The key in succeeding is to create a synergy between the swarm units, which is translated into the robot control software. Since the swarm will be in direct contact with users (for example people struck by the accident) and society, USE principles will be some of the main guidelines in this design process.
Goal
The goal of this project is to create a framework for rescue swarm robots with the USE principles as the basis of decision making. This project will focus on designing the hardware and developing the software. Our first idea was to use freeduino based robots as hardware, however after some thought and discussion Lego Mindstorms Robots will be used. From these robots we upgraded to our final set of NXT Robots. The software consists of the robot control software and a simulation. Using swarm robotics allows us to coordinate a large group of rescue robots. To asses the result a final scenario will be created.
USE principles
The keystone for a good design process are the USE principles, in this case the focus will be on the User and Enterprise. Since the USE principles of the Final scenario are less evident than those of the simulation, the main focus here will be on the simulation.
For the Final scenario the USE based requirements are:
User
- Control
- Care
- Robustness
Enterprise
- Simplicity
- Flexibility
- Efficiency
The configuration of the prior used Freeduino based robots, Lego Mindstorms Robots and the final NXT Robots are based on the requirements shown above. The choice of tools and sensors are also requirement based on the USE principles.
For the simulation the USE principles are more evident since this shows a lower level design, where decisionmaking is key for the rescuerobots. These USE principles are integrated as a set of parameters, where optimum can be achieved after repetitive research on the outcome of varying these parameters. The following parameters are implemented as priorities for the rescue robots:
- Scaling the amount of people
- Search vs Rescue
- How diffecult is it to save the target
- closest piles first
- Stick to the goal or save people on the way
Final representation
The final representation is split in: A simulation which represents the Final scenario on the big scale and a demonstration which is zoomed in on one pile. For the Final scenario a live demo was given using the NXT Robots. The robots decision making was based on the USE principles and implemented in the Robot control software. The main focus in the Robot control software will be on the pathing, localisation and communication of the NXT Robots. For these three elements the general idea will be explained, followed by pseudo code and the src code will also be made available for possible future use. The pseudo code depicts the whole programming process, but with no programmingplatform considered. Therefore in the future it could be implemented into a different programming language.
The simulation was implemented in python and incorporates some parameters representing different USE aspects. The simulation as shown at the presentation can be viewed at https://goo.gl/photos/xCoAm1C48F3FVqD97. Also in the main article about the simulation, one can find the code that is used for running and analysing the simulation.
Conclusion and recommendations
In conclusion the project has been succefully completed and has learned us alot, altough it could have been planned more thoroughly. Since we didn't have our final NXT Robots untill the fifth week, the final scenario with the live demo was lots of last minute work. But the teammembers stepped up and made it happen, unfortunatly te execution during the live demo went not entirely as planned. The main problem here was that we had to little time to properly test with the new floor, which resulted in a slight problem with the calibration of the lightsensors. But luckily this problem was solved after the demo, and the result can be viewed at https://youtu.be/i56Wzx9wmNc. The simulation process went smooth and was a good platform to implement the USE principles with the decision making as keystone. We've learned from it that certain ethical choices, such as saving people who are near you first, produce more efficient rescue operations than others. The whole progress of the project can be viewed in the Summary of activities arranged by week.
For future use we recommend that the demonstration, zoomed in on one pile, should be done with a larger swarm with even more simplified robots, in order to get a realistic image and see the great benefits of swarm behaviour. Also a rougher terrain and real debris (small rocks etc.) could be implemented in order to get a better representation of the scenario. For the simulation we recommend finding a way to give a good graph representation of the world one is exploring on the go, so that shortest paths may be found. Furthermore, we've neglected to put one step of logic in the algorithm for returning to the clear zone, which should be implemented if the heuristic approach is taken.
Source Code
Team
- 0808084 S.M. Koop
- 0770090 C.M. Mens
- 0857017 G.G. de Vries
- 0854907 J.T.W. Koenders
- 0845163 A.R.A. Ummelen