PRE2017 3 Group15: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
mNo edit summary
 
(453 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Problem statement and objectives ==
<div style="color: #333; font-weight: 400; margin-left: 0px; margin-right: 12.2em; background-color: white; padding-top: 5px;">


Litter is a very big problem, because litter is not only annoying it can also attract pests like rats and flies, which can result in human diseases. It can bring harm to animal life. It can increase the use of fossil fuel instead of recycling and it can reduce the sense of safety. To prevent this, public places should remain clean. 
== Group members ==


{| class="wikitable" style="border-style: solid; border-width: 1px;" cellpadding="3"
!style="text-align:left;"| Name
!style="text-align:left;"| Student ID
|-
| Ruben Beumer || 0967254
|-
| Niek Blankers || 0935876
|-
| Kyle van Oosterhout || 0936196
|-
| Martijn Schipper || 0951375
|-
| Martijn Timmermans || 0956838
|-
|}


objectives
== Introduction ==


Using multiple robots that work together to clean the streets
=== Problem statement ===


== Who are the users? ==
Litter brings many problems to the society. First and foremost, people do not feel at ease when litter is present <ref name="MilieuCentraal15">Milieu Centraal. 2015. Utrecht, Zwerfafval. S. de Waart, W. de Jong, M. Tijs</ref>. When ignored, it can take more than one hundred years for the litter to decay. This will cause a huge buildup of litter and in very extreme cases, it can attract pests such as rats and flies which in turn can result in the transmission of human diseases. It is not only dangerous to the people but also dangerous for animals or small children, which are unaware of the danger and might interact with the litter and thereby for example cutting themselves. The RSPCA, a charity organization operating in England who promote and investigate animal welfare, stated that they receive 14 calls per day regarding animals affected by litter.


Luckily, the government also recognizes that litter is a serious problem. Using manual sweeping with brooms, blowing tools or driving sweeping vehicles the streets are kept clean. This is a tedious, low profile job carried out by the people. Keeping the streets tidy is however certainly not cheap due to all the man-hours and equipment. In America, the government spends 11.5 billion dollars to keep the streets clean <ref name="USELitterPrevention">Litter prevention. (2018, May 05). From https://www.kab.org/?pagename=focus_litter_prevention</ref>. It might be possible however to automate this job. As often seen with robots, as soon as people are replaced with machines, the job can be performed cheaper, more efficiently and possibly more thoroughly.


It is well understood that the creation of any product takes much time to develop, build and thoroughly test. Therefore this paper does not pretend to give a full solution to this problem. Rather, the purpose of this paper is to make the next step towards fully autonomous cleaning robots. Luckily, it is not necessary to make the first step since research has already been done in this area and research groups have even performed some rudimentary tests with cleaning robots as can be read in the [[#State_of_the_art:_literature_study|literature study.]]


== What do they require? ==
From the literature study, it becomes clear that extensive research has already been executed. The theoretical groundwork has been done regarding the development of a robot which is able to collect litter in well paved environments such as the mall. Furthermore, it has been shown in “Inzamel- en beloningsystemen ter vermindering van zwerfafval”<ref name="CEdelftinzamel">CE Delft. 01.5090.21/Inzamel- en beloningsystemen ter vermindering van zwerfafval. Bergsma et al.</ref> that 76% of the people is very annoyed by the litter that lies on the beaches. Little research has been done on how a cleaning robot would operate on a beach. Operating a cleaning robot on sand is non-trivial, since the locomotion and collection of litter need to be specially designed to work in sandy environments.
This paper tries to bridge a part of the gap in the research. More specifically, this paper shows the various trade-offs for every subsystem. Furthermore, the energy usage for every subsystem is estimated, in order for the robot to be simulated. With this simulation, the efficiency and behavior of the robot is shown, from which one can infer the usability. It is however possible that during testing it is discovered that the energy usage of for example the pickup system is slightly higher than estimated in this paper. This new value can be easily entered in the simulation, and again the feasibility can be estimated using the simulation. Of course there exist a great variety of beaches, and some robots might be more effective on some particular beaches than other. For this can also easily be compensated in the simulation. Lastly, the impact the robot has on the people is researched and possible solutions to the problems are offered.


=== Approach, milestones, and deliverables ===


== Approach, milestones and deliverables ==
To be able to reach our goal, first a literature study will be done to make sure the group is working on something that has never been done before, or do not perform more work than is necessary. Afterwards, the requirements set for the robot will be converted into specifications and subsystems according to the V-model. When this is done, the different subsystems will be divided over the group members to work on individually or in pairs. The focus here will be on the energy consumption and deliverance of the system as a trade-off for functionality. The exact planning and task division is shown in the [[#Planning|Gantt chart]]. During the litter recognition and robot algorithm sections, a simulation will be made to show that the found algorithms and strategies are working and realistic. This simulation will be used to analyze the energy usage of the robot, based on the energy consumption of the subsystems. The specific milestones that we will deliver and their dates are as follows:


== Who's doing what? ==
*The first milestone that will be reached will be a complete literature study. This should be finished by the end of week 2.
*The second milestone that will be reached will be a list of requirements, specifications and subsystems. This should be finished by the end of week 3.
*The third milestone that will be reached will be when each of the individual subsystems are thoroughly researched and possible solutions are chosen. This should be finished by the end of week 5.
*The fourth milestone that will be reached will be when the simulation of the algorithms and systems, using the energy consumption from the individual subsystems, is working completely. This will be finished by the end of week 6.
*The fifth milestone that will be reached is a well written wiki page about the selection of subsystems, the human interaction and the simulation ending with a conclusion. This should be reached by the end of week 7.
*The final deliverable of the project will be a selection of the subsystems that the robot could use, a simulation that shows the feasibility of this robot focused on energy consumption and the human interaction aspect of our robot.


== State of the art: literature study ==
[[File:Trash-beach.jpg||thumb|right|400px|A beach being cleaned of washed up plastics<ref>&copy;AFP/Getty Images</ref>]]
[[File:BeachLitterCoffee.jpg||thumb|right|400px|Motivating beach visitors to pick up litter<ref>https://www.themorningbulletin.com.au/news/yeppoon-cafes-inspiring-move-to-create-clean-beach/3281692/</ref>]]


== SotA: literature study ==
To find out what has already been done in the subject of litter robots, research has been done in the following areas:
*Litter and waste - Where is litter situated and what is sensed to be the most annoying?
*Path finding - How to move a litter robot in an unknown environment?
*Litter detection - How to find the position of litter autonomously?
*Robot movement - How does a robotic system that is designed for picking up litter move around?
*Litter collection - How to pick up the litter after it has been detected?
*Robot design - How to design a robotic system?


'''Path finding'''
=== Litter and waste ===
We have identified the following issues around waste and litter:


'''Litter detection'''
* Gum on streets: research shows that >10% of litter is gum. This highly disturbs 74% of people<ref name="CEdelftinzamel"/>.
* people should be motivated to segregate waste themselves<ref>http://www.downtoearth.org.in/blog/solving-india-s-garbage-problem-53956</ref>. Possible solution: robot that visits each home and asks them for their plastic / general waste products to motivate them to segregate waste.
* People from India don't care about waste, as long as it is not in their homes<ref>https://www.theatlantic.com/international/archive/2014/06/confessions-of-a-trash-tourist-india/373118/</ref>.
* Trash washing up on beaches.
* Poor efficiency of street sweeping vehicles, dirt makes up 56% of what they gather<ref>Ter Laak, Gemeente Utrecht, 2015, persoonlijke mededeling</ref>.


'''Robot movement'''


'''Litter collection'''
'''Composition of litter'''


'''Robot design'''
Litter can be decomposed into different groups which occur more or less in the streets. According to Rijkswaterstaat<ref name="MilieuCentraal15">Milieu Centraal. 2015. Utrecht, Zwerfafval. S. de Waart, W. de Jong, M. Tijs</ref>, out of big litter (excluding gum and sigaret buts), beverage packaging, take-away litter and paper are the biggest problems, accounting for 24%, 22% and 21% of the total litter respectively between 2008 and 2014. The total list can be found in the table below.


'''Development of Outdoor Service Robot to Collect Trash on Streets OSR-01'''
{| class="wikitable" style="border-style: solid; border-width: 1px;" cellpadding="3"
!style="text-align:left;"| Type of litter
!style="text-align:left;"| Percentage of total litter
|-
| Beverage packaging || 24%
|-
| Take-away waste || 22%
|-
| Paper || 21%
|-
| Other packaging || 17%
|-
| Candy || 10%
|-
| Plastics || 3%
|-
| Unidentifiable litter || 2%
|-
| Food remains || 1%
|-
|}


This paper describes the design of an autonomous robot which is to be used to collect trash on the streets. The robot has two wheels to move but drives an already provided route. To avoid objects it uses four 2-D laser range finders. It is currently only able to pickup PET bottles using a hand with five degrees of freedom. It can detect objects using a omni-camera. To measure the distance to the object, it uses two additional cameras. The image recognition is done using a technique known as 'template matching'. This means that the robot has a large library of objects labelled as trash which it compares to the images received from the omni-camera. If the images are sufficiently similar, the robot will pick it up.


''Obata, M., Nishida, T., Miyagawa, H., Kondo, T., & Ohkawa, F. (2006). Development of Outdoor Service Robot to Collect Trash on Streets. IEEJ Transactions on Electronics, Information and Systems, 126(7), 840-848. doi:10.1541/ieejeiss.126.840''
The same research also gives the absolute numbers of the different litter types, including small litter:
 
{| class="wikitable" style="border-style: solid; border-width: 1px;" cellpadding="3"
!style="text-align:left;"| Type of litter
!style="text-align:left;"| Number
|-
| Cigarette buts || 18,794
|-
| Beverage packaging || 16,379
|-
| Take-away litter || 15,656
|-
| Paper || 15,298
|-
| Other packaging || 12,408
|-
| Gum || 10,117
|-
| Candy || 7,213
|-
| Plastics || 1,850
|-
| Unidentifiable litter || 1,737
|-
| Food remains || 1,000
|-
|}
 
In Utrecht an analysis was done of materials collected by sweeping machines, which found that 88.5 ton out of the 156.8 ton collected was sand. This means that 56% of the effort of sweeping is wasted on sand.
 
 
'''Annoyances (caused by trash)'''<ref name="CEdelftinzamel"/>
 
The list below shows the response of (Dutch) citizens when asked about their daily annoyances.
 
* Litter besides the road: 92% (62% very annoyed, 30% somewhat)
* Loud noise: 64% (28% very annoyed, 36% somewhat)
* Litter on beached: 95% (76% very annoyed, 19% somewhat)
* Full trashcan: 77% (40% very annoyed, 37% somewhat)
* Traffic jam: 26% very annoyed, 33% somewhat
* Paper/cigarette butts/chewing gum on streets: 64% very, 30% somewhat
 
Furthermore: when asked, citizens state that they see 27% of all litter in the shopping mall, 15% on the beach and 13% on parking lots.  
 
 
'''Litter positions'''
 
According to EcoConsult in 2014<ref name="MilieuCentraal15"/>, the following indication scores were given for big and small litter (a high indication score means a clean environment):


{| class="wikitable" style="border-style: solid; border-width: 1px;" cellpadding="3"
!style="text-align:left;"| Area
!style="text-align:left;"| Score big litter
!style="text-align:left;"| Score small litter
|-
|Average || 3.56 || 3.44
|-
|Recreational area|| 4.15 || 4.04
|-
|Water recreational area|| 3.91|| 3.86
|-
|Business area || 3.35|| 3.60
|-
|Shopping area II|| 3.69 || 3.45
|-
|Shopping area I || 3.37 || 3.19
|-
|Residential area III || 4.01 || 4.04
|-
|Residential area II || 3.85 || 3.80
|-
|Residential area I || 3.53 || 3.48
|-
|Event/Sporting centers || 3.46 || 3.40
|-
|Access road || 3.47 || 3.68
|-
|School area || 3.35 || 3.42
|-
|Parking lots || 3.08 || 2.62
|-
|Public transport || 3.25 || 2.85
|-
|Catering/Entertainment centers || 3.59 || 3.14
|-
|Shopping malls || 3.50 || 3.07
|}


'''Development of Outdoor Service Robot to Collect Trash On Streets OSR-02'
As a conclusion we can state that parking lots, public transport and Shopping areas in urban cities have the most litter.


This is a follow up on the previous paper. For the new prototype, dubbed OSR-02, an extra hand is added. This allows one hand to hold a trash bin while the other can put the trash in it. Furthermore, the wheels are replaced with crawlers. The sensors and detection system was were kept the same. More detailed tests were also documented, showing that the OSR-02 is able to get over a ditch of 180 mm in width. The robot was also tested in public space, where it was able to successfully pickup plastic and glass bottles in the route and able to avoid pedestrians.  
At the parking lots, most of the litter is caused by take-away packages, sigaret buds and beverage packages. Citizens also believe these places are filthy as stated by Gemeente Schoon in 2010 and 2012.  
The most plausible reason to believe parking lots have so much litter is that people stay only for a limited time and therefore they have little bonding with the area. In addition, creating litter from inside a car can be done relatively anonimous.


Near public transport areas, litter is caused mostly by people that need to be quick to catch a bus or train, because they do not prioritize putting there litter into a bin over catching the train or bus, especially when the closest garbage bin is full. The litter consist mostly of packages of food or drinks bought at the station.


''Nishida, T., Takemura, Y., Fuchikawa, Y., Kurogi, S., Ito, S., Obata, M., . . . Ohkawa, F. (2006). Development of outdoor service robots. Paper presented at the 2006 SICE-ICASE International Joint Conference, 2052-2057. 10.1109/SICE.2006.315491''
Shopping areas are one of the most important areas because people think that when the shopping area has much litter, the whole township is filthy.  
As expected, most of the litter in shopping areas are bags and packages of items bought in the shopping area.  
Most litter occurs during peak visiting hours because litter attracts more litter.




'''A Study on Development of Home Mess-Cleanup Robot McBot '''
'''Encouraging dustbin designs'''


This paper describes the design of an autonomous robot which is to be used to cleanup indoors. The robot has two arms to grasp the object and a lifting support. Objects are recognized by a RFID tag. After an object is picked up, it is able to place on for example a shelf. Self localization is done by placing RFID tags on the ground.  
Several dustbins have been developed to encourage people to throw their trash into it by rewarding them when they do so. An example is the ‘WiFi Trash Bin’, invented by Raj Desai and Pratik Agarwal, the founders of the startup ThinkScream. When someone throws something in it, this plastic bin shows an access code for a WiFi-network on a LED screen, giving them access to the network for 15 minutes. It has been tested at the NH7 Weekender music festival in 2014, where six of these smart bins could be used by the visitors. After the festivals in Bangalore, Delhi and Kolkata, over ten thousand people had used the bin<ref>https://economictimes.indiatimes.com/smart-dustbins-that-give-you-free-wifi-not-rubbish-at-all/articleshow/55804651.cms</ref>.


''Ma, Y., Kim, S., Oh, D., & Cho, Y. (2008). A study on development of home Mess-Cleanup Robot McBot. 2008 IEEE/ASME International Conference on Advanced Intelligent Mechatronics. doi:10.1109/aim.2008.4601644''
In the Netherlands, a well-known example of interactive dustbins are the ‘Holle Bolle Gijs’ bins (and variations of it), used in the Efteling. These bins ask people in the theme park to throw their waste in it and thank them afterwards or react in another way. Sometimes children even start to look for other waste to throw it away in the park due to this creative invention. Inspired by these bins, the cities Tilburg and Eindhoven organized a design contest for interactive dustbins in 2017. The contest was won by Francien Fleuren and Marcel Lamers with their ‘Trash Tree’ that works on solar energy, lights up in the dark and makes a bird sound when something is thrown in, referring to the positive effect on the environment. Before the contest, in the Henri Dunantpark in Eindhoven, there was already a pilot with an interactive dustbin, which according to alderman Yasin Torunoglu helps to achieve a cleaner environment. In September 2017, also in Bergen op Zoom, some garbage bins have been equipped with a built-in speaker to react to people in a funny way after throwing away their trash<ref>http://www.omroepbrabant.nl/?news/2675941243/Efteling+inspireert+Eindhoven+en+Tilburg+steden+zoeken+moderne+Holle+Bolle+Gijs.aspx</ref><ref>https://www.tilburgers.nl/afvalbak-de-trash-tree-winnaar-designwedstrijd/</ref><ref>http://www.omroepbrabant.nl/?news/269611762/Pratende+prullenbakken+met+speciale+stemmen+voor+Sinterklaas+of+Kerstmis.aspx</ref>.


Another example is ‘The world’s deepest bin’, an experiment in the context of an initiative called ‘The Fun Theory’ by Volkswagen. A video on their website shows a trash bin in a park that makes a sound as if the trash that people throw in it falls very deep. During one day, 72 kg of rubbish was collected in this bin, which was 41 kg more than the normal bin just a small distance further. Some scientifically critical questions about results of this experiment could be asked, e.g.: Did the people throw in their trash in this bin instead of in the normal bin and not instead of throwing it on the ground, so that the total reduction of litter is less than the results suggest? Would the results still be so promising if the experiment was done for a longer period, or would the people start finding it less interesting in the long-term? However, when these bins would for example be used in touristic places, where are different people and a lot of children each day, these kind of interactive dustbins will probably significantly decrease the amount of litter, similar to the dustbins in the Efteling as described above<ref>http://www.thefuntheory.com/worlds-deepest-bin</ref>.


'''Educational Outdoor Mobile Robot for Trash Pickup'''
=== General ===


Inspired by the 'Push the Talking Trash Can' of Disney, an interactive low-cost outdoor mobile trash can is designed. With this robot, they aimed to raise environmental awareness, help clean up the environment and promote robotics education among children. The robot is also equipped with a low-cost air quality monitoring system. They purposely avoided autonomous robot because it minimizes control by children and they will find it more fun and have a sense of accomplishment by interacting with, and remotely controlling the robot. Also, autonomous is difficult because the roads in underdeveloped countries often have potholes, uneven construction etc making it difficult to navigate effectively. On the robot a LCD display is mounted to display the air quality and broadcast messages and animations. It can be controlled remotely using smart phone/tablet. The materials used in the construction costed less than 250 dollar.  
'''RoboEarth'''<ref>Waibel, M., Beetz, M., Civera, J., D'Andrea, R., Elfring, J., Gálvez-López, D., . . . Van de Molengraft, R. (2011). RoboEarth. IEEE Robotics & Automation Magazine, 18(2). doi:10.1109/MRA.2011.941632</ref>


''Pattanashetty, K., Balaji, K. P., & Pandian, S. R. (2016). Educational outdoor mobile robot for trash pickup. 2016 IEEE Global Humanitarian Technology Conference (GHTC). doi:10.1109/ghtc.2016.7857304''
Thousands of robotic systems deal with and try to solve the same essential problems. This article is about a design and first implementation of a system for sharing knowledge between robots. The data, independent of specific robot hardware, is collected, stored shared and linked by RoboEarth, using existing standards. This enhances robot learning and adaption in complex tasks. Besides, robots using RoboEarth can execute tasks for which they were not explicitly designed for. The implementation is based on an architecture of three layers: a server, generic components and a robot specific layer. The server holds the database in which it stores a global world model with information on objects, environments and action recipes. It also provides basic reasoning Web services. The main purpose of generic components in the second layer is to allow robots to interpret the action recipes. The third layer provides a generic interface to a robot’s specific (hardware-dependent) functionalities via a skill abstraction layer.
For our project, a RoboEarth-like system would in particular be very useful to recognize litter, both using the information about objects (what is litter and what not) as well as about the environments (to be more efficient in finding the litter). The information about actions could be useful for picking up the litter, depending on what system we will use.




'''Vision-Based Coverage Navigation for Robot Trash Collection Task'''
'''Springer Handbook of Automation, chapter 70: Cleaning Automation''' <ref>Springer Handbook of Automation, chapter 70: Cleaning Automation - Norbert Elkmann, Justus Hortig, Markus Fritzsche</ref>


This paper describes an algorithm to optimally find and pickup trash and benchmarks this against existing algorithms. The proposed algorithm consists of four distinct steps
Especially in the domain of cleaning, service robots already provide many different options for relieving people of dangerous, stressful, and/or monotonous work and are penetrating both household and professional market sectors. Household systems have technically simple and low-cost designs and are already being sold in large numbers. Professional systems are technically complex, flexible, cost effective, efficient, and easy to operate. However, since they fail to fulfill the requisite criteria in many cases, they have not yet established themselves as mass products. Nevertheless, numerous individual solutions exist for special applications such as facade or pool cleaning.  


1. Follow the wall to obtain the contour and size of the working space. By doing this the working space can be split up into rectangular cells.
To the extent that they do not fully navigate surfaces when geometries are more complex or environments are dynamic and generally can neither navigate themselves nor coordinate tools better than humans, professional cleaning robots’ sensory and cognitive capabilities continue to limit their universal and cost-effective use. Such cleaning robots will not become mass products until their cost effectiveness, performance, efficiency, and total attendant costs make them superior to manual cleaning. Further development of service robots’ cognitive capabilities, environment modeling sensor systems, and multimodal user interfaces is being pursued worldwide for other fields of application and is a fundamental prerequisite to establishing cleaning robots in the professional sector.


2. Scan for garbage in the current cell


3. Find and move to an unvisited area. Repeat step 2 and 3 until all areas have been visited.
'''New Brooms Sweep Clean – An Autonomous Robotic Cleaning Assistant for Professional Office Cleaning'''<ref>Bormann, R., Hampp, J., Hägele, M.(2015). "New Brooms Sweep Clean - An Autonomous Robotic Cleaning Assistant for Professional Office Cleaning". 2015 IEEE International Conference on Robotics and Automation (ICRA), 4470-4477. doi:10.1109/ICRA.2015.7139818</ref>


4. Deposit trash and move back to initial location
In this paper, a prototype autonomous robotic cleaning assistant, that can both clean floors and clear trash bins in offices, is presented. It was realized on a Care-O-bot 3 platform, a multi-purpose service robot. The arm was upgraded with a tool changing interface from Schunk, which enables switching between a three finger hand for clearing bins and a vacuum cleaner for cleaning floors. A tool trolley is used to carry containers for waste and fixtures for detached tools. In short, the robot first inspects all rooms to find the polluted locations and will directly clear all found trash bins into the waste container of the trolley. Then, it changes its three finger hand for a vacuum cleaner at the trolley and attempts to clean all spots from the polluted locations list. Afterwards, the robot verifies the cleanliness and stores the information so that the operator can clean the remaining spots and inform the system about false alarms to improve its behavior. The most important functional modules are:


Step 3 is implemented using the 'Boustrophedon Path-Planner' algorithm and a random path planner. It turned out that the 'Boustrophedon Path-Planner' performed better.
* Map Segmentation: results in ‘room’-sizes between 15 and 80 m<sup>2</sup> and allows for planning a good trajectory through the environment.
* Exploration Algorithm: optimizes the sequence of entered rooms as a traveling salesman problem (TSP), using a quite extensive algorithm, also taking the minimal amount of trolley positions and the time it costs to move to the trolley to clear a trash bin into account.
*Dirt Detection and Learning: A visual dirt detection method is applied which judges on a per image basis without any need for learning the patterns of the clean ground or the appearance of any pollution and can detect spots occupying an area of >5 mm diameter. This method is explained in the two articles above. It is extended to learn from the operator using the check for false alarms as described above.
* Trash Can Cleaning: The detection of attached markers on bins proved most reliable and computationally economical compared to other approaches for object recognition and can be used in the real world. The MoveIt framework is used for arm movement to grasp a bin.
* Tool Change: using an industrial interface combined with visual servoing methods for automization. The tool are connected mechanically by closing an inner rotational lock and electrically using a CAN bus interface.
* Vacuum Cleaning: The vacuum cleaner is placed on the ground and the robot drives back and forth or left and right to clean the spot. Within narrow areas, the arm itself is moved.


''Chiang, C. (2015). Vision-based coverage navigation for robot trash collection task. 2015 International Conference on Advanced Robotics and Intelligent Systems (ARIS). doi:10.1109/aris.2015.7158229''
The test showed that although it was a first prototype, it already worked surprisingly well. Using the learning algorithm, the reported pollution precision was increased from 62% to 89%. In summary, 90% of the trash bins could be cleared and 86% of the dirt was removed, with a speed performance of approximately 120 m<sup>2</sup> per hour (4 times less than a professional, but many improvements are suggested).


=== Path finding ===


'''Path Planning for Complete and Efficient Coverage Operation of Mobile Robots'''
'''Path Planning for Complete and Efficient Coverage Operation of Mobile Robots'''<ref>J. W. Kang, S. J. Kim, M. J. Chung, H. Myung, J. H. Park and S. W. Bang, "Path Planning for Complete and Efficient Coverage Operation of Mobile Robots," 2007 International Conference on Mechatronics and Automation, Harbin, 2007, pp. 2126-2131. doi: 10.1109/ICMA.2007.4303880</ref>


The paper presents a method for mobile robots to perform area coverage tasks where completeness and efficiency of coverage are important. The method can be used for robotic de-mining, cleaning, painting, etc.
The paper presents a method for mobile robots to perform area coverage tasks where completeness and efficiency of coverage are important. The method can be used for robotic de-mining, cleaning, painting, etc.
Line 86: Line 237:
A divide and conquer strategy is employed for efficiency. A cell decomposition algorithm divides the given area into cells (sets of grids):
A divide and conquer strategy is employed for efficiency. A cell decomposition algorithm divides the given area into cells (sets of grids):


1. Occupancy grid maps are rotated along their orientation invariant angle so that two identical maps with different rotation result in the same maps.
# Occupancy grid maps are rotated along their orientation invariant angle so that two identical maps with different rotation result in the same maps.
# The given area is decomposed into cells based on the change in free space segments for each 'slice' of the map.
# Noisy cells (created due to complex structures and sensor noise) are merged into larger neighbor cells.
 
Next, the path is generation for efficient area coverage.
 
# Predefined template paths are generated for each cell (back and forth or spiral motion) to find an optimal path to cover them. Predefined templates are used to reduce computational complexity.
# A path for the overall area is formed from the path that requires minimum time for each cell. A graph search algorithm is used for this purpose.
 
 
'''Coverage Path Planning for Mobile Cleaning Robots'''<ref name="WaandersPathPlanning">M. Waanders, Coverage Path Planning for Mobile Cleaning Robots</ref>
 
There are different ways in which a robot can do path planning in any given environment. The first way is Random Path Planning, in which the robot will move in a random direction until it is obstructed and will then chose a new random direction. A spiraling bias can be added to make this approach more convenient. A more sophisticated way to cover the whole area, is by using Exact Cellular Decomposition. This method splits the room into parts which are easier to cover. Which also makes it more efficient in places with obstacles. A variance on the Exact Cellular Decomposition is the Boustrophedon Cellular Decomposition, which does the same, but makes the parts so that it can be cleaned with a simple back and forth motion. A fourth method is a Backtracking Spiral Algorithm. Which does the same as a random spiral, but takes into account possible blocking objects by moving around them and adding the information gained of the object to make the spiral change shape so that the same places are not cleaned twice. 
The solution proposed is an extended version of the BCD in 5 steps:
 
# The robot moves to the outer boundary of the environment
# The robot follows this boundary until it has completely circled it
# A BCD of the environment is created
# Create a list containing every cell. The first one is where the robot is
# The cells are covered in sequential order
 
To make this also work in dynamic environments, the robot will continue scanning the room and adjusting the individual cells when detecting sensor or localization errors.
 
 
'''Simultaneous Localization and Mapping'''<ref>H. Durrant-Whyte, T. Bailey,
Simultaneous Localization and Mapping: Part I History of the SLAM Problem</ref>
 
Simultaneous Localization and Mapping (SLAM) is for a robot to be placed at an unknown location in an unknown environment and for the robot to build a consistent map of its environment while simultaneously determining its location within the map. The problem with SLAM is that the true locations are never known or measured directly.
 
The probabilistic version of SLAM checks the highest probability for a landmark to be and the robot to be given the history of vehicle locations, the history of control inputs and the set of all landmark observations. The problem with this is that much of the error comes from when the robot wrongly estimates its position with reference to a landmark only once.
 
To find a solution to SLAM, the programmer needs to find an appropriate representation for both the observation model and motion model that allows efficient and consistent computation of the prior and posterior distributions in the time update step and the measurement update step.
 
 
'''Complete Coverage Navigation of Cleaning Robots Using Triangular-Cell-Based Map'''<ref>Joon Seop Oh, Yoon Ho Choi, Jin Bae Park, and Yuan F. Zheng, Fellow, IEEE</ref>
 
In this paper, a novel navigation method is presented for a cleaning robot, which can work well in a completely unknown workspace. First, a new triangular-cell-based map representation that enables a cleaning robot to have more navigation directions is presented. While the rectangular-cell-based map has eight navigation directions, the triangular-cell-based map increases the navigation directions to 12. This increase makes the navigation path shorter and more flexible. Second, a complete coverage navigation and map construction method is presented, which enables a cleaning robot to navigate the complete workspace without any information about the environment. To generate a complete coverage navigation path without prior information of the environment, the wall-following navigation was first performed. Through this procedure, a cleaning robot can obtain the information of the contour of the environment. Then, basic templates were introduced as means for local navigation. To find the uncovered region and determine the local direction, the distance-transform method was also adopted. With the use of simulations the effectiveness of the approach was verified.
 
 
'''Complete Coverage Path Planning and Guidance for Cleaning Robots'''<ref>R. Neumann de Carvalho, H.A. Vidal, P. Vieira, M.I. Ribeiro</ref>
 
This paper describes a complete coverage path planning and guidance methodology for a mobile robot, having the automatic floor cleaning of large industrial areas as a target application. The proposed algorithms rely on the a priori knowledge of a 2D map of the environment and cope with un- expected obstacles not represented on the map. A template based approach is used to control the path execution, thus incorporating, in a natural way, the kinematic and the geometric model of the mobile robot on the path planning procedure. The novelty of the proposed approach is the capability of the path planner to deal with a priori mapped or unexpected obstacles in the middle of the working space. If unmapped obstacles permanently block the planned trajectory, the path tracking control avoids these obstacles. Tests with the mobile robot LABMATE show that satisfactory floor coverage can be obtained using a template approach even when there are mapped or unmapped obstacles present in the interior of the cleaning area.
 
 
'''Mobile Robot Positioning: Sensors and Techniques'''<ref>J. Borenstein, H. R. Everett, L. Feng, D. Wehe</ref>
 
This article presents an overview of existing sensors and techniques for mobile robot positioning. The foremost conclusion that was drawn from reviewing a vast body of literature was that for indoor mobile robot navigation no single, elegant solution exists. For outdoor navigation GPS is promising to become the universal navigation solution for almost all automated vehicle systems.
 
=== Litter detection ===
 
 
'''Vision-Based Coverage Navigation for Robot Trash Collection Task'''<ref>Chiang, C. (2015). Vision-based coverage navigation for robot trash collection task. 2015 International Conference on Advanced Robotics and Intelligent Systems (ARIS). doi:10.1109/aris.2015.7158229</ref>
 
This paper describes an algorithm to optimally find and pickup trash and benchmarks this against existing algorithms. The proposed algorithm consists of four distinct steps
 
# Follow the wall to obtain the contour and size of the working space. By doing this the working space can be split up into rectangular cells.
# Scan for garbage in the current cell
# Find and move to an unvisited area. Repeat step 2 and 3 until all areas have been visited.
# Deposit trash and move back to initial location
 
Step 3 is implemented using the 'Boustrophedon Path-Planner' algorithm and a random path planner. It turned out that the 'Boustrophedon Path-Planner' performed better.
 
 
'''A Visual Dirt Detection System for Mobile Service Robots'''<ref>R. Bormann, J. Fischer, G. Arbeiter, F. Weißhardt, and A. Verl, "A Visual Dirt Detection System for Mobile Service Robots," in Proc. of the German Conference on Robotics (ROBOTIK), Munich, Germany, May 2012.</ref>
 
This article described a method to detect dirt on floors that are monochrome or have at least some repetitive pattern. The data from a RGB-D sensor (color camera with depth-sensor) is processed in four main steps (last two combined):
 
* Plane Segmentation: This step finds the part of the image in which the floor can be seen, using the depth-information from the sensor. It basically looks for a plane that contains the most points to satisfy a particular plane equation (ax + by + cz + d = 0).
* Spectral Residual Filtering: This step filters out the background of the floor image leaving only the innovation part, by finding the deviations from the statistical mean of the logarithmic amplitude spectrum (using the Fourier transform) of each channel (R, G and B) of the image.
* Rescaling and Thresholding: Artificial dirt is added to the floor (2 black and 2 white spots) causing extrema in the response, which are used to rescale the response of the whole image in order to prevent the normal patterns in the floor to be seen as dirt, in particular when there is no real dirt. The spots in the rescaled dirt image with an intensity above a certain threshold are selected as dirt.
 
Depending on the floor background structure, 52.6% to 92.5% of the dirt was detected, with a positive false rate of only a few percent. Depending on the surface, problems such as very dark and small objects not being recognized as dirt, or light reflection causing false positives could occur. Further, the algorithm proved to be able to cope with changing surface material and texture to some extent. However, large scale dirt stains (such as from coffee) are filtered as background with this approach.
Remark: In this article I read “Tidying up larger objects was demonstrated at the Robocup@home challenge by the team of robot Eraser.” Finding more information about this could be useful for our project as well.
 
 
'''Autonomous Dirt Detection for Cleaning in Office Environments'''<ref>R. Bormann, F. Weißhardt, G. Arbeiter and J. Fischer, "Autonomous Dirt Detection for Cleaning in Office Environments," in 2013 IEEE International Conference on Robotics and Automation (ICRA), Karlsruhe, Germany, May 6-10, 2013.</ref>
 
Here, an extended/improved version of the dirt detection system from the previous article is explained. Two of these extensions are a large, publicly available database of dirty ground floors (65 different kinds of dirt recorded at 5 floor materials) and a testing framework to use this database. All data is recorded using the service robot Car-O-bot 3. The integrated laser scanners and RGB-D camera Microsoft Kinect were used to localize the robot and dirt, so that the detection could be integrated in a map. To enable this mapping and because the camera might not always operate in the same position above the ground, a perspective normalization is applied after the plane segmentation described in the previous article. To do this, a homography which transforms the ground plane as seen in the camera image into a plane seen from a (virtual) bird’s eye view is estimated. The steps ‘Spectral Residual Filtering’ and ‘Rescaling’ from the previous article remained the same, although they are here referred to as ‘Saliency Computation’ and ‘Saliency Normalization’. At the ‘Dirt Thresholding’-step, they now implemented an option to exclude the pixels that belong to strong lines from the thresholding operation, since these strong lines are often caused by transitions between bright and dark (background) surfaces and result in false detections. The advantages of dirt mapping are: (1) fusion of multiple observation to strengthen certainty, (2) option to temporally separate inspection and removal and (3) enable verification and feedback. Another threshold could now also be used to determine what is seen as dirt or not can be used: the amount of frames in which a spot is detected as dirt (possibly as a ratio of the total amount of frames in which the spot is captured). Depending on both threshold values, different detection and false positive rates can be achieved: for example about 90% detection and 45% false positives, or about 100% detection and 85% false positives (averaged over the different dirt and floor types). The performance could even be improved when for example different threshold values would be used for different floor types. The system however still does not take larger (3-dimensional) litter into account, and of course fails when dim lighting prevents dirt from becoming visible in the image at all, even for humans.
 
=== Robot movement ===
 
'''Autonomous Robotic Street Sweeping: Initial Attempt for Curbside Sweeping'''<ref>J.Jeon, B.Jung, J.C.Koo, H.R.Choi, H.Moon, A.Pintado, P.Oh, "Autonomous Robotic Street Sweeping: Initial Attempt for Curbside Sweeping" </ref>
 
Street cleaning can be a coverage or a tracking problem, which both require localization, coverage path planning and tracking control. Using two fisheye cameras and projective transformation, a top view was gained and edge filtering, a Hough transform and RANSAC line fitting was used to find the sidewalk along which the robot has to drive.
 


2. The given area is decomposed into cells based on the change in free space segments for each 'slice' of the map.
'''Principles of appendage design in robots and animals determining terradynamic performance on flowable ground'''<ref>Feifei Qian et al (2015), "Principles of appendage design in robots and animals determining terradynamic performance on flowable ground" in Bioinspir. Biomim. 10 056014</ref>


3. Noisy cells (created due to complex structures and sensor noise) are merged into larger neighbor cells.
This paper shows an approach to control (and vary) the ground penetration resistance of a granular substrate using continuous upward airflow through a fluidized bed. This technique is used to investigate the influence of ground strength on the locomotion performance of robots (a bio-inspired hexapedal robot called SandBot and numerical simulations for the Xplorer robot) and animals (four lizard-like species and a crab). They found that locomotor performance was strongly correlated with the foot pressure. Generally, the experimental and simulated results followed the same trends: for small leg penetration ratios (foot pressure relative to penetration force per unit area per depth and leg length), the locomotion performances only decrease slightly, but for larger penetration ratios, the performance started to decrease substantially, probably due to drag of the ventral surface. This also provides an explanation to the fact that the performance of some animals was more sensitive to the ground penetration resistance differences in the investigated range than for other animals: graphs made with normalized average speed and leg penetration ratios showed very similar data points for all species. The data points for the robots also showed similar behavior, except that animals could still maintain ≥50% of their speed on fully fluidized ground, suggesting that they likely combine passive and active control to diminish the decrease of performance on low stiffness substrates.
The most important conclusion from this article for our project is that we could use relatively large foot and a light body (i.e. smaller foot pressure) when possible, to minimize leg penetration ratio and stay within the ‘insensitive’ region to ground stiffness change, in particular when we use a legged robot. Of course, the body should not be too close to the ground to prevent extra friction for substrates with a low ground penetration resistance.


Next, the path is generation for efficient area coverage.
=== Robot design ===
 
'''System design of a litter collecting robot'''<ref>Bonnema, G.M. (2012). System design of a litter collecting robot. CSER.</ref>
 
Litter is a very big problem, because a broad study of annoyances of the Dutch public found that people rated litter to be more annoying than noise from neighbors and cigarette smoke. There is however a big difference between the places where most litter occurs, which are near sporting facilities and parking lots, and where people perceive it as annoying, which are mostly in shopping malls and on the beach. Furthermore, litter has more consequences than just annoyance. It can attract pests like rats and flies, which can result in human diseases. It can bring harm to animal life. It can increase the use of fossil fuel instead of recycling. It can reduce the sense of safety, and above all, can increase the amount of litter on the street, making this a negative spiral. To prevent this spiral, public places should remain clean.
 
Currently this is a hard human job with low profile. It is, however, important to keep humans involved in the job, because human cleaners in the streets have a social aspect. Using a robot that cleans most of the litter, and a human to show the robot where it missed certain litter or to help with cleaning up hard to clean litter, the human will have a physically easier job, and has more time for the social aspect of being in the area. It is also important to make the robot quiet and power efficient.
 
To find the litter efficiently, the robot has a Portable Operator Device, allowing the human cleaner to make a picture of a new type of litter and send it to the robot, so that the robot will recognize it next time. To make the robot power efficient and quiet, a circle of plastic fingers were used and a flap that could close when litter was found. The fingers would then push the can into the hopper. To know where the litter is, scanning laser range finder and a camera were used. The camera takes a picture when the SLRF finds an object, and this image is compared to the litter pictures in the memory of the robot.
 
 
'''United States Patent Mobile Robot for Cleaning'''<ref>Romanov, N., Johnson, C. E., Case, J. P., Goel, D., Gutmann, S., & Dooley, M. (2008). U.S. Patent No. US20110202175A1. Washington, DC: U.S. Patent and Trademark Office. "Mobile robot for cleaning"</ref>
 
This patent describes multiple designs for a robotic cleaner. A robotic cleaner includes a cleaning assembly for cleaning a surface and a main robot body. The main robot body houses a drive system to cause movement of the robotic cleaner and a microcontroller to control the movement of the robotic cleaner.
 
 
''' Development of Outdoor Service Robot to Collect Trash on Streets OSR-01'''<ref>Obata, M., Nishida, T., Miyagawa, H., Kondo, T., & Ohkawa, F. (2006). Development of Outdoor Service Robot to Collect Trash on Streets. IEEJ Transactions on Electronics, Information and Systems, 126(7), 840-848. doi:10.1541/ieejeiss.126.840</ref>
 
This paper describes the design of an autonomous robot which is to be used to collect trash on the streets. The robot has two wheels to move but drives an already provided route. To avoid objects it uses four 2-D laser range finders. It is currently only able to pickup PET bottles using a hand with five degrees of freedom. It can detect objects using a omni-camera. To measure the distance to the object, it uses two additional cameras. The image recognition is done using a technique known as 'template matching'. This means that the robot has a large library of objects labelled as trash which it compares to the images received from the omni-camera. If the images are sufficiently similar, the robot will pick it up.
 
 
'''Development of Outdoor Service Robot to Collect Trash On Streets OSR-02'''<ref>Nishida, T., Takemura, Y., Fuchikawa, Y., Kurogi, S., Ito, S., Obata, M., . . . Ohkawa, F. (2006). Development of outdoor service robots. Paper presented at the 2006 SICE-ICASE International Joint Conference, 2052-2057. 10.1109/SICE.2006.315491</ref>
 
This is a follow up on the previous paper. For the new prototype, dubbed OSR-02, an extra hand is added. This allows one hand to hold a trash bin while the other can put the trash in it. Furthermore, the wheels are replaced with crawlers. The sensors and detection system was were kept the same. More detailed tests were also documented, showing that the OSR-02 is able to get over a ditch of 180 mm in width. The robot was also tested in public space, where it was able to successfully pickup plastic and glass bottles in the route and able to avoid pedestrians.
 
 
'''A Study on Development of Home Mess-Cleanup Robot McBot '''<ref>Ma, Y., Kim, S., Oh, D., & Cho, Y. (2008). A study on development of home Mess-Cleanup Robot McBot. 2008 IEEE/ASME International Conference on Advanced Intelligent Mechatronics. doi:10.1109/aim.2008.4601644</ref>
 
This paper describes the design of an autonomous robot which is to be used to cleanup indoors. The robot has two arms to grasp the object and a lifting support. Objects are recognized by a RFID tag. After an object is picked up, it is able to place on for example a shelf. Self localization is done by placing RFID tags on the ground.  


1. Predefined template paths are generated for each cell (back and forth or spiral motion) to find an optimal path to cover them. Predefined templates are used to reduce computational complexity.


2. A path for the overall area is formed from the path that requires minimum time for each cell. A graph search algorithm is used for this purpose.
'''Educational Outdoor Mobile Robot for Trash Pickup''' <ref>Pattanashetty, K., Balaji, K. P., & Pandian, S. R. (2016). Educational outdoor mobile robot for trash pickup. 2016 IEEE Global Humanitarian Technology Conference (GHTC). doi:10.1109/ghtc.2016.7857304</ref>


''J. W. Kang, S. J. Kim, M. J. Chung, H. Myung, J. H. Park and S. W. Bang, "Path Planning for Complete and Efficient Coverage Operation of Mobile Robots," 2007 International Conference on Mechatronics and Automation, Harbin, 2007, pp. 2126-2131. doi: 10.1109/ICMA.2007.4303880''
Inspired by the 'Push the Talking Trash Can' of Disney, an interactive low-cost outdoor mobile trash can is designed. With this robot, they aimed to raise environmental awareness, help clean up the environment and promote robotics education among children. The robot is also equipped with a low-cost air quality monitoring system. They purposely avoided autonomous robot because it minimizes control by children and they will find it more fun and have a sense of accomplishment by interacting with, and remotely controlling the robot. Also, autonomous is difficult because the roads in underdeveloped countries often have potholes, uneven construction etc making it difficult to navigate effectively. On the robot a LCD display is mounted to display the air quality and broadcast messages and animations. It can be controlled remotely using smart phone/tablet. The materials used in the construction costed less than 250 dollar.  




'''A Multi-Robot System for Continuous Area Sweeping Tasks'''
'''A Multi-Robot System for Continuous Area Sweeping Tasks'''<ref>M. Ahmadi and P. Stone, "A multi-robot system for continuous area sweeping tasks," Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA 2006., Orlando, FL, 2006, pp. 1724-1729. doi: 10.1109/ROBOT.2006.1641955</ref>


A trash collecting robot performs a so-called 'continuous area sweeping' task. With this task, a robot must repeatedly visit all points in a fixed area. This paper extends this task to multi-robot scenarios.
A trash collecting robot performs a so-called 'continuous area sweeping' task. With this task, a robot must repeatedly visit all points in a fixed area. This paper extends this task to multi-robot scenarios.
Line 109: Line 372:
The paper mostly focuses on dividing the overall area between multiple robots.
The paper mostly focuses on dividing the overall area between multiple robots.


''M. Ahmadi and P. Stone, "A multi-robot system for continuous area sweeping tasks," Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA 2006., Orlando, FL, 2006, pp. 1724-1729. doi: 10.1109/ROBOT.2006.1641955''


'''DustCart, an autonomous robot for door-to-door garbage collection: from DustBot project to the experimentation in the small town of Peccioli'''<ref name="dustcart">G. Ferri, A. Manzi, P. Salvini, B. Mazzolai, C. Laschi and P. Dario, "DustCart, an autonomous robot for door-to-door garbage collection: From DustBot project to the experimentation in the small town of Peccioli," 2011 IEEE International Conference on Robotics and Automation, Shanghai, 2011, pp. 655-660. doi: 10.1109/ICRA.2011.5980254</ref>
DustCart is an autonomous garbage collecting robot. It can navigate urban environments with static and dynamic obstacles. Users can request a garbage removal after which the robot is dispatched, interacts with the user through a touchscreen interface, and receives a garbage bag. Next, it moves to a site where the garbage is deposited. DustCart monitors air quality, temperature, and humidity along the way.
Two DustCart robots were tested for three months in the small town of Peccioli, Italy.
== Design process ==
'''Heuristics'''
In the conceptual phase, there are a few heuristics to the design process, namely<ref>E. Rechtin. 1992. The art of systems architechting.</ref>:
*The choice between architectures may well depend upon which set of drawbacks the client can handle best.
*Extreme requirements should remain under challenge throughout system design, implementation and operation.
*Do not assume that the original statement of the problem is necessary the best or even the right one.
*No complex system can be optimum to all parties concerned, nor all functions optimized.
*A model is not reality.
*Complex systems will develop and evolve within an overall architecture much more rapidly if there are stable intermediate forms than if there are not.
*Build in and maintain options as long as possible.
*Do not make an architecture too smart for its own good.
The conclusions that can be taken from this are that the design will have to have intermediate forms of the design during the design, which will be interpreted in a robotic system as different sub systems that work on their own. Also the system should not be smarter than it should be, meaning in this context that the robot should only save the information that it needs and have the options to do things that make sense according to the designer rather than making it think about those options itself.
'''V-shaped design'''
[[File:V-design.jpg||thumb|right|400px|V-shaped design<ref>Caltrans and USDOT. 2005. Systems Engineering Guidebook for Intelligent Transportation Systems (ITS), version 1.1. Sacramento, CA, USA: California Department of Transportation (Caltrans) Division of Reserach & Innovation/U.S. Department of Transportation (USDOT), SEG for ITS 1.1.</ref>]]
The heuristics of the conceptual design make the use of V-shaped design very logical. According to the book The Design of High Performance Mechatronics, in time, first the functional requirents should be determined, which should move past the system design, subsystem design and detailed design (element design) by decomposition and defenition in the conceptual phase. Afterwards the opposite way should be taken for the implementation. This however is not relevant for the design phase.
'''Conclusion'''
From the two perspectives stated in the previous sections, it becomes clear that first of all the functional requirements should be determined and subsequently converted into specifications. These should then be decomposed into subsystems which can be divided among the designers. The designers will, in turn, decompose the subsystems into elements that can be individually designed. Furthermore, the behaviour of the robotic system will be needed to designed, making sure the robot is efficient and complies to the requirements.
== Concept of operation ==
As soon as the robot has '''recognized litter''' it will move towards it. It does this using a specially designed '''locomotive''' system which is able to drive over the sand.  While driving towards the litter, it will need to actively avoid other beachgoers and holes in the ground using its '''sensors'''.  When it has arrived at the litter, it needs an system responsible for the '''collection of litter'''. Because the object is likely surrounded by a lot of sand, a '''sand filter''' might be needed to separate the litter from the sand. Upon collection of the litter, it should store it in its '''litter storage container'''. When the storage container is full, it should drive to a '''central hub''' where it is able to drop the litter off. To make sure the robot does not run out of energy, various '''energy related calculations''' need to be made to ensure that the battery of the robot is large enough and that it is possible to recharge the battery. Since there might be other robots that are also collecting litter, there is a strategy for '''robot cooperation'''. Finally, human interaction is taken into account. To do the actions and make its decisions, it uses '''software/algorithms'''.
From this concept of operation, we can now derive the following subsystems:
* Litter recognition
* Locomotion
* Sensors to avoid beachgoers and holes
* System for the collection of litter
* Sand filter
* Litter storage container
* Central hub
* Energy related calculations
* Robot cooperation
* Human interaction
* Robot software/algorithms
== Stakeholders ==
The most important stakeholders are the beachgoers. They are the ones which have a problem with the litter on the beach and preferably want all of the litter to be removed. Multiple studies <ref name="CEdelftinzamel">CE Delft. 01.5090.21/Inzamel- en beloningsystemen ter vermindering van zwerfafval. Bergsma et al.</ref> <ref name="SchoolInzamel">CE Twente. Het zwerfafvalprobleem op het Etty Hillesum Lyceum De Waard et al.</ref> have reported that a reduction in litter leads to people feeling more safe. Also,  families will prefer to go to clean beaches, so they have to worry less that their children will be harmed by, for example glass which hides in the sand. Even though the beachgoers will like clean beaches, it is also very important to them that they can enjoy the beach. This means that the robot should not produce too much noise, as this will annoy the beachgoers. Also, one can imagine that it will annoy the beachgoers greatly if the robot bumps into people. This however may not be enough for all beachgoers, as some would prefer the robot to keep its distance so it does not enter their ‘personal space’.
The children are also a very important stakeholder which will need to be taken into account. They will have a great interest in the robot and want to play with it. It is therefore important that this is safe for both the child as well as the robot. This means that the robot is unable to do harm to the child, but also that the child is unable to break the robot.
Enterprises, such as restaurants or ice cream stalls, will also benefit from the reduction of litter. As already stated, beachgoers prefer a clean beach over a littered one. This means that people that want to go to the beach are more likely to choose  the clean beach, which leads to more customers for the enterprises. The enterprises would furthermore like a robust robot, which is able to withstand great external forces. They also prefer it to be as cheap as possible, and keep the maintenance cost low. It should be easy to replace specific parts if they break down, so they do not need a dedicated engineer to fix the robot which will help keeping the maintenance costs down.
In addition, the local government will have great interest in the design of such a robot. As already stated, in the U.S.A. they have to spend 11.5 billion dollars on cleaning the litter. Therefore any help to decrease this cost be welcome to them. It might be even possible for the enterprises to ask for a subsidy for which in return the enterprises will keep the beaches clean. This makes the design of a cleaning robot even more interesting for the enterprises.
There might also be an operator required, but this can only be determined at a later stage of the design process. An operator might be required to control the robots whenever the algorithm on the robot will not lead to the correct results, help them with cleaning where necessary and help resolve issues for example when the robot is attacked by teenagers or wrongly identifies a purse as litter. This mainly depends on how well the software is at autonomously controlling the robot, and how well the vision system is able to identify the litter. If an operator ends up being necessary, there should be a clear and intuitive interface to control and/or help the robots.
== System requirements and specifications ==
=== Requirements ===
Before something can be said about the robots requirements and specifications a couple assumptions have to be made about the environment that the robot will work in. The following assumptions have been made:
*The robot will not be vandalized by people.
*The litter that is on the beach is not stuck to anything, for example a plastic bag caught under a beach chair.
*The litter does not weigh more than 1 kg.
*The litter is not too large to be picked up by the robot's litter collecting mechanism.
*The terrain the robot works in will mostly consist of sand.
*The temperature is between -10 and 40 °C.
*The robot will work in moderate to bright lighting conditions.
The obvious system requirements that can be taken from the problem statement are the following:
*'''The system must be able to recognize objects and determine what is litter and what not.''' This is important because the robot should not pick up items dropped by for example kids and throw them away like litter, but the robot should still be able to distinguish enough litter to make the beach significantly cleaner.
 
*'''The system must be able to collect litter.''' It is very important that the robot is not only able to detect what is litter and what is not, but that it is also able to pick up the litter in order to make the beach a cleaner place.
Less obvious system requirements that can be added are:
*'''The robot should not carry too much sand.''' On a beach the chances are big that the robot will also pick up sand instead of litter. This however is inefficient, because it takes op storage place and it will weigh the robot down, making it less power efficient.
*'''Can not topple because of external forces.''' It would be highly unfortunate if the robot would fall over because of strong winds or waves. This is because the robot will likely be unable to stand up and humans will have to come and pick it up. This is not only highly inefficient, but it will also cause annoyance to beach visitors, because it will be an obstacle in both their view and their paths.
*'''The robot needs to be able to move reliably over sand and mud.''' Because the robot will be moving over the beach, it is highly necessary that the robot can move reliably over sand and mud, for the same reasons as the toppling. If the robot gets stuck in the sand this will be inefficient and annoying for the beach visitors.
*'''The robot should not float in water.''' Floating on water will likely cause the robot to topple over when a wave of water comes. Also, if the robot is floating, it will not be able to pick up any litter reliably anymore. Therefore it is easier for the robot to stay on the ground even when there is water on top of it, so that it can continue its job.
*'''The robot needs to be waterproof.''' On the beach the chances of a wave hitting the robot are large, therefore the robot needs to be waterproof in order to keep functioning after a wave hits the robot.
*'''The robot should be able to operate on battery power, optionally combined with renewable energy sources.''' Because the weather is an unknown factor, renewable energy sources on their own will make the robot too reliant on external factors. Therefore the robot should be able to work on a battery as well.
*'''The cost of a robot should not be too high.''' If the robots costs would be too high, it would never be bought to clean up beaches, therefore the costs have to be low.
*'''The robot should avoid large holes.''' Even though the robot can move over sand, it is possible that it will fall into a hole that it cannot get out of, therefore it is better to always avoid these holes.
*'''The robot should be able to pick up litter of varying size.''' Litter is never always the same size, a can is a different size than a bottle for example or a potato chip bag. Therefore, to pick up as much litter as possible, the robot needs to be able to handle more than one specific kind of litter.
*'''The robot should be able to carry enough litter with it.''' The robot will be highly inefficient if it would need to return to a central station everytime it picked up a single piece of litter. Therefore the robot will need to have enough storage room to carry litter.
*'''The robot should be able to deposit collected litter in a central location.''' As the storage room of the robot will be finite, the robot will need to dispose of the litter it collected in some way to continue gathering more litter afterwards.
=== Social requirements ===
Besides the technical requirements, there are also various social issues the robot will need to deal with. The designed robot needs to interact in an environment with many stochastic agents. One might imagine that such a robot will attract the attention of many young children. These children might for example want to stand on it, or try to hinder the operation of the robot. Therefore the robot should be very robust. Besides from other agents harming the robot, it should also be impossible that the robot harms other agents. This means that at the very least, sensors should be installed to avoid running in to people. Lastly, we should be aware of how the robot will change the people in its environment. One might postulate that the existence of such a robot means that the people will become lazy. In one study <ref name="SchoolInzamel">CE Twente. Het zwerfafvalprobleem op het Etty Hillesum Lyceum De Waard et al.</ref>, a school placed an interactive bin inside the canteen which would give positive feedback if students threw their litter in. This resulted however in a huge mess around the bin because students were trying to threw their litter as hard as possible in the direction of the bin.
Being in such a rich environment with other agents brings however also some advantages. No system is perfect which means that the system will sometimes fail. It is for example very hard for a robot to classify what is junk, and what is not. If a robot is in doubt however, it could simply ask nearby agents or a human operator by for example sending a picture of it. In the case where somebody for example drops their bottle, it could be on accident. When the robot detects this, it could pick it up and give it back to the one that dropped it. The robot also should not clear away toys of children, and if possible try to avoid demolishing their sand castles when operating. Furthermore, it is possible to use the fact that most people want to relax on the beach. When the robot detects that it is in danger because for example children are hitting it, it could sound an alarm. This will annoy nearby people, and they can chase away the children to make the robot stop it's alarm. Lastly, it is possible that the robot gets stuck. Asking for the help of other agents or a human operator could be again a simple solution to this problem.
The requirements can be led back to Isaac Asimov's three laws of robotics:
# A robot may not injure a human being or, through inaction, allow a human being to come to harm.
# A robot must obey the orders given it by human beings except where such orders would conflict with the First Law.
# A robot must protect its own existence as long as such protection does not conflict with the First or Second Laws.
=== Specifications ===
These requirements can be decomposed into the following specifications
''Please note: currently these are best-guess values to give an idea of the order of magnitudes.''
*'''Pick up 9 out of 10 items defined as litter on a sandy environment.''' The robot needs to reliably pick up litter. 90% seems like a good number because there will always be litter that the robot will not see or will not be able to grab.
*'''Produce less than 50dB of sound.''' An average human conversation is between 40dB and 60dB. Therefore 50dB will be unlikely to annoy the people on the beach more than a conversation of a group of people next to them.
*'''Keep at least 1 meter distance from humans.''' Coming too close to humans might frighten them or harm them. A one meter distance is a safe distance which is not too close to harm the human, nor too far to ask the human for help if necessary.
*'''Do not pass humans more than 2 times in 10 minutes.''' People will get annoyed if the robot will pass them too often, as it still makes sound and blocks the view. It is estimated that 2 times in 10 minutes will be an acceptable amount of time which the robot will be in the sight of the people.
*'''Maximally 10% of the picked up weight is sand.''' In normal garbage cans, 56% of the weight is sand. In this project, the robot is supposed to actively get rid of this sand. This means about an 80% decrease from the average garbage bin. This seems like a reasonable number.
*'''Move at at least 2 m/s on sand.''' An average human walks at 1.4 m/s. The robot should be just a bit faster to be able to avoid getting closer than 1 meter to humans more easily, therefore 2 m/s seems like a good speed.
*'''Survive in water of the same height as the robot for 2 seconds.''' A wave crashing over the robot will put the robot underwater for about 1 second. To be safe, the robot should be able to survive two of those waves immediately after each other.
*'''Operation time of at least 1 hour without recharging, recharging within 30 minutes or a battery replacing system or another way to obtain energy such as solar cells.''' A one hour operation time is a good estimation for the robot to pick up the maximum amount of litter and returning, as it will need to pick up 25 pieces of litter in this hour and returning, which gives an average of about 2 minutes per piece of litter, which is a reasonable estimation.
*'''The maximum costs of one robot should be €5.000,-.''' 5000 euros is a nice round number which will be roughly the amount of money a company would pay for a robot to clean up a part of the beach.
*'''The robot should be able to pick up objects of 1 - 200 grams.'''
*'''The robot should be able to pick up objects of 1 - 1000 cm<sup>3</sup>.'''
It can be assumed that the smallest piece of litter is a sigaret but, which is about a gram in weight and a cm<sup>3</sup> in volume. It is also assumed that the heaviest litter will be 200 grams, this is roughly equal to a 1 Liter PET bottle filled with 160 mL of water. The volume of this PET bottle will be 1 L and this will be chosen as the maximum volume the robot should be able to pick up.
*'''The load capacity of one robot should be minimally 5 kg.'''
*'''The load capacity of one robot should be minimally 25 L.'''
The robot should able to pick up about 25 times the biggest possible litter to make the robot efficient enough. Therefore the minimum weight and volume it should be able to carry should be 5 kg and 25 L.
*'''Can't topple when wind blows with 9 m/s.''' The maximum wind speed in Vlissingen in 2017 was 9 m/s <ref>https://www.worldweatheronline.com/vlissingen-weather-averages/zeeland/nl.aspx</ref>. Therefore the robot will need to survive these wind speeds to make sure it is not dependend on weather conditions whether it can function.
== Subsystems ==
This section will consider several subsystems involved in the robot, and provide options or estimates required for the final model.
===Locomotion===
[[File:QRIO AIBO.jpg||thumb|right|300px|Sony's bipedal QRIO and quadrupedal AIBO robots<ref>https://www.sony.net/SonyInfo/CorporateInfo/History/sonyhistory-j.html</ref>.]]
First of all, the robot needs to be able to move around on the beach. This is a very hostile environment for robotics due to salt water, dirt, and corrosion.
Due to these environmental factors the locomotion should not involve complex motion, and have as few moving axes as possible.
Many different designs for locomotion in similar environments have been published already, even including amphibious 'ninja legs'<ref>B. B. Dey, S. Manjanna and G. Dudek, "Ninja legs: Amphibious one degree of freedom robotic legs," 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems, Tokyo, 2013, pp. 5622-5628. doi: 10.1109/IROS.2013.6697171</ref>, robotic sandfish<ref>Ryan D Maladen and Yang  Ding and Paul B Umbanhowar and Daniel I Goldman, "Undulatory swimming in sand: experimental and simulation studies of a robotic sandfish", 2011 The International Journal of Robotics Research vol. 30. doi: 10.1177/0278364911402406</ref>, and slime slime robots<ref>H. Ohno and S. Hirose, "Design of slim slime robot and its gait of locomotion," Proceedings 2001 IEEE/RSJ International Conference on Intelligent Robots and Systems. Expanding the Societal Role of Robotics in the the Next Millennium (Cat. No.01CH37180), Maui, HI, 2001, pp. 707-715 vol.2. doi: 10.1109/IROS.2001.976252</ref>. On account of that, we will not attempt to design a new locomotion system. Rather, we will consider several existing solutions on their feasibility and power consumption.
==== Overview ====
'''Walking'''
Walking robots are useful for walking over rough terrain and adapting to various environments. They can climb steps, cross gaps as large as their stride and walk on rough terrain where wheels are not feasible. For a legged robot at least two degrees of freedom (joints) are necessary, so a six-legged robot will need twelve actuated joints. Stability can also pose an issue, as a walking robot can only be statically stable (stable when paused at every moment of its motion) when it has at least four legs. However, four legs means that only one leg can be lifted at any time when remaining statically stable, reducing the walking speed.<ref name="RobotLocomotion">Böttcher, S. (2006). Principles of robot locomotion. Available at http://www2.cs.siu.edu/~hexmoor/classes/CS404-S09/RobotLocomotion.pdf</ref>.
Having to hold the whole weight of the body and a large number of actuators makes all walking robots less energetically efficient than wheeled machines on flat ground. <ref>Luneckas, M., Luneckas, T., Udris, D., & Ferreira, N. (2014). Hexapod Robot Energy Consumption Dependence on Body Elevation and Step Height. Elektronika Ir Elektrotechnika, 20(7), 7-10. doi:10.5755/j01.eee.20.7.8017</ref>. Additionally, the higher degree of freedom makes legged robots less suitable for a beach environment as the higher number of joints increases the chance of dirt or water ingress. Due to these disadvantages, walking will not be considered further as a method of locomotion for our robot design.
''' Rolling '''
[[File:AurigaBeta.png||thumb|right|300px|The mobile robot Auriga-&beta; with a mini-helicopter on its self-stabilized landing platform<ref name="AurigaBeta">J. Morales, J. L. Martinez, A. Mandow, A. J. Garcia-cerezo, J. M. Gomez-gabriel and S. Pedraza, "Power Analysis for a Skid-Steered Tracked Mobile Robot," 2006 IEEE International Conference on Mechatronics, Budapest, 2006, pp. 420-425. doi: 10.1109/ICMECH.2006.252564</ref>.]]
''Wheeled''
On a flat surface, wheeled robots are the most efficient. This is because a frictionless wheel does not need energy to keep rotating at the same velocity. Stability is a far less significant problem for rolling compared to walking, as a design with at least three wheels will always be statically stable<ref name="RobotLocomotion"/>. Additionally, wheels are the easiest form of robot locomotion to implement. They require low torque to start rolling and thus are suitable for high speeds.
Wheeled locomotion presents a few disadvantages, most noticeably on rough, loose terrain such as sand. The increased rolling friction on this terrain causes power inefficiencies<ref name="RobotLocomotion"/>.
''Continuous tracks''
Though they require more torque, continuous tracks (or tank treads) offer significant advantages over wheels on soft surfaces. As they have more contact area, treads exert less ground pressure and will not sink into the sand as much as tires, reducing rolling resistance and increasing efficiency. They also offer higher traction as they fully engage with the large contact area. Treads are also able to cross larger gaps than wheels.
Continuous tracks change their direction by skidding, which increases friction and thus power consumption on hard surfaces<ref name="RobotLocomotion"/>.
==== Energy efficiency and power requirements ====
[[File:LocomotionPowerCons.png||thumb|right|250px|Power consumption of several locomotion mechanisms<ref>S.Roland, Introduction to autonomous mobile robots, pp. 12-45, 2004</ref>.]]
[[File:DeformGroundWheel.jpg||thumb|right|300px|Deformation of the ground surface caused by wheels<ref>https://www.ien.com/product-development/article/20493735/rolling-resistance-industrial-wheels</ref>.]]
The figure on the right shows the power consumption of several locomotion mechanisms. It is clearly visible that wheels on a hard surface (railway) are orders of magnitude more efficient than tires on soft ground. In order to obtain a useful estimate of the power consumption of wheeled versus continuous track locomotion, we will consider their rolling resistance on sand. Rolling resistance on sand greatly depends on the profile of the contact surface. Wheels will sink into loose sand, significantly lowering their efficiency or even getting the robot stuck. Tracks on the other hand exert much less pressure because of a very large footprint, and will stay on top of the sand for this reason. Overall, treads that spread their weight out over a large area will lose less power and be able to move at a higher efficiency.
In ''technology of tanks''<ref>Ogorkiewicz, R. M. (1991). Technology of tanks (pp. 227-229). Retrieved from Internet Archive website: https://archive.org/details/Janes_Technology_of_Tanks_01</ref>, R.M. Ogorkiewicz expresses rolling resistance in the form of a dimensionless constant <math>C_r</math> given by:
<math>C_r = A + B v\,</math>
where <math>A</math> and <math>B</math> are constants with typical values of 0.025 and 0.0009 for treads respectively. <math>C_r</math> is multiplied with the weight to obtain the rolling resistance force <math>F_r</math> in Newtons:
<math>F_r = C_r m g\,</math>
where <math>m</math> is the mass of the robot in kilograms and <math>g</math> is the gravity of 9.81 N/kg. Assuming that the robot is travelling at a constant velocity, the necessary power to overcome rolling resistance in Watts is given by
<math>P_r = F_r \cdot v</math>
where <math>v</math> is once again the velocity. Using the above equations, <math>P_r</math> can be rewritten as
<math>P_r = (A + B v) m g v\,</math>.
For ordinary tires on loose sand, <math>C_r</math> is estimated around 0.3<ref>Gillespie, T. D. (1992). Fundamentals of Vehicle Dynamics, Society of Automotive Engineers (pp. 117). ISBN: 1-56091-199-9</ref>. The resulting friction powers for both treads and wheels on sand of a robot that weighs 25 kg are depicted in the following figures:
{| class="wikitable"
|-
| [[File:FrictionPowerTreads.png|400px]]
| [[File:FrictionPowerWheels.png|400px]]
|-
| ''Friction power of a 25kg robot on treads.''
| ''Friction power of a 25kg robot on wheels.''
|}
It is clearly visible that wheels on loose sand are an order of magnitude less efficient in this situation compared to continuous treads.
Besides, since the robot is not very large (about 50x50x50 cm), small hills in the sand will already be felt as a slope by the robot. When using wheels, this problem would be even bigger. The robot should not get stuck in small holes, so the continuous treads are preferred.
[[File:Locomotion_model.PNG||thumb|right|350px|Simple locomotion model.]]
Assuming that the maximum ‘local slope’ felt by the robot is about 30°, a simplified model can be made to determine the maximum power required for the locomotion.
The gravity force (<math>F_{g} = m*g</math>) on the robot can be split into a component parallel to the slope (<math>F_{g,x}</math>) and a component perpendicular to the slope (<math>F_{g,y}</math>):
<math>F_{g,x} = sin(30^{\circ})*F_{g} = \frac{1}{2}*mg \,</math>
<math>F_{g,y} = cos(30^{\circ})*F_{g} = \frac{1}{2}*\sqrt{3}*mg \,</math>
From equilibrium in the y-direction follows that the normal force <math>F_{N}</math> is equal to <math>F_{g,y}</math>. This normal force is used as the ‘weight’ to calculate the friction force. When there is no slope, <math>F_{g,y}</math> is equal to <math>F_{g}</math>, so then <math>F_{N} = m*g</math>, as used in the formulas about the friction force <math>F_{r}</math> above. For slopes up to 30°, using <math>m*g</math> for the simple model is still a reasonable assumption, since <math> \sqrt{3}/2 \approx 0.87</math>. For the relatively low speeds (up to 2 m/s) at which the robot drives, the maximum value for <math>C_{r}</math> is about 0.027.
<math>F_{p}</math> is the propulsion force, delivered by the motors via the treads. The resulting force parallel to the slope causes an acceleration a (in <math>m/s^{2}</math>) of the robot (*):
<math>m*a = F_{p} - F_{g,x} - F_{r} = F_{p} - 1/2 m*g - 0.027*m*g \approx F_{p} - 5.2*m \,</math>
This can also be written as:
<math>Fp = m*(a + 5.2) \,</math>
<small><nowiki>*</nowiki>According to the figure, there would also be a resulting moment in the counter clockwise direction, causing the robot to tilt. However, after a very small rotation, a larger part of the robot’s weight is supported at the back, so that the resulting normal force will also be more towards the back of the robot. This will compensate the moment, preventing the robot to tilt. Only for very steep slopes and/or high acceleration levels, the normal force would at a given point (when it reaches the back of the robot) not be able to move more towards the back, and the robot would tip over.</small>
The required acceleration while driving uphill on a slope of 30°, the most important is that the robot should not get stuck in small holes. Therefore, in this simple model to determine the required power, an acceleration of 0.5 <math>m/s^{2}</math> is used. For a robot of 25 kg, this would mean that <math>F_{p} = 25*(0.5+5.2) = 142.5 N</math>. The maximum required power (<math>P_{max}</math>) for locomotion is then:
<math>P_{max} = F_{p} * v = 142.5 N * 2 m/s = 285 W \,</math>
Because the robot should be able to make turns, the treads on the two sides will be actuated by two separate motors. When driving uphill, both motors should provide half of the required power, so that half of the total propulsion force is delivered on both sides. This means a maximum force (<math>F_{wheel}</math>) of about 72 N. This force corresponds to a torque from the axle (<math>T_{axle}</math>), given the wheel radius <math>r</math>:
<math>T_{axle} = F_{wheel} * r \,</math>
The rotational speed of the axle (<math>\omega_{axle}</math> in rad/s) is also determined by the wheel radius:
<math>\omega_{axle} = v/r \,</math>
The wheel radius determines the height of the axle, and the axle is attached to the ‘body’ of the robot. The bottom of this body should not be too low, to prevent contact with the ground that would cause much more friction and all kinds of other problems (see [[#Robot_movement|literature study]]). Taking that into account, a wheel radius of minimal 10 cm is preferred. Further, a larger radius means that the torque delivered by the axle should be higher. This is will not necessarily be a problem, because between the motor and the axle, an extra transfer ratio could be applied, so that motor speed and torque can be ‘exchanged’, as long as the product of them (the power) remains the same. However, it would be the best if it is possible to directly connect the motor to the axle without a transfer ratio, so that no extra parts are needed that cause friction, add extra mass and take up space. Besides, larger wheels will make the whole tread construction larger, leading to higher rotational inertias. All in all, the radius is chosen to be about 10 – 15 cm.
As described above, the motors are (whether or not via a transfer ratio) connected to the axles of the wheels inside the treads, and deliver a combination of torque (<math>T_{motor}</math>) and rotational speed (<math>\omega_{motor}</math>):
<math>P_{motor} = T_{motor} * \omega_{motor} \,</math>
When no transfer ratio is used, the rotational speed of the motor is equal to the rotational speed of the axle. Assuming a wheel radius of 15 cm, this rotational speed will be <math>2 m/s / 0.15 m = 13.3 rad/s</math>. The required torque is then <math>285 W / 2 / 13.3 rad/s = 10.7 Nm</math>. Note that these values can be changed by tuning the wheel radius or applying a transfer ratio (which causes some extra friction).
Another important value is the average required power for locomotion. The same simple model was used to calculate this. In order to be able to do this calculations, assumptions about the average slope, speed and acceleration should be made. All these values depend on the beach and how far the litter is apart from each other. The more uneven the beach, the higher the average slope. The further the robot has to drive to the next piece of litter, the less the fraction of the time it will be accelerating and the higher will be its average speed. Assuming an average slope of 5° and using a constant speed of 2 m/s and no accelerations instead of a lower average speed combined with accelerations, the resulting average power required for locomotion is determined:
<math>F_{p} = F_{g,x} + F_{r} = m*(sin(5^{\circ}) + 0.027)*g \approx 28 N \,</math>
<math>P_{avg} = F_{p} * v = 28 N * 2 m/s = 56 W \,</math>
The average required power per motor would then be <math>56 W /2 = 28 W</math>. For an average slope of 10°, it would already be 98 W in total, so 49 W per motor.
===Litter recognition===
Before it can be collected, litter should be recognized using certain sensors or robotic vision.
====Object recognition====
According to <ref>D. Lowe, "Object Recognition from Local Scale-Invariant Features"</ref> Scale Invariant Feature Transform (SIFT) is an algorithm that can recognize more then 78% of the litter, even when the image is severly distorted with contrast and intensity changes, rotations, scaling, stretching and noice. Therefore we can assume that images close enough will have a 78% to be recognized. According to the paper, multiplying the scale of objects by 0.7 will cause the recognition to be 85%, meaning that halving the scale, or doubling the distance, causes a recognition multiplication of 0.739. This gives rise to the equation for the litter chance: 0.78 * (0.739<sup>d-1</sup>), because the first meter will be a straight line at 78% because the average picture will be made at 0.7 meters and the 0.78 was tested for a scale of 0.7. This will however not continue forever, firstly because the chance will never be lower than 50%, so the software cut-off will be at 2.4 meter. Johnson's criteria states that to recognize an image with more than 50% certainty, there needs to be at least 4 +/- 0.8 line pairs<ref>N.S. Kopeika, "A system engineering approach to imaging"</ref>, which equals a minimum of 10 pixels. The distance at which this cutoff happens, depends on both the camera, and the size of the litter.
It is extremely difficult to determine the average two dimensional size of a piece of litter, as it is highly dependent on the orientation of the litter and whether sand is on top of it or not. For this purpose the area of the bottom of an aluminium can was used as approximation, which is approximately 30 cm<sup>2</sup>, or a height of 6.5 cm. The distance to the object will be:
distance to object(m) = f(m) * real height(cm) * image height(pixels) / object height(pixels) * sensor height(cm)
to get ten pixels in a circular image, the object height should be four pixels. The real height will be 6.5 cm. All other variables are determined specifically by the camera.
An example of a camera could be the SONY HDR-CX240EB, which has a focal length of 29.8mm, a sensor height of 2,448cm and an image height of 14375 pixels. This will give a cutoff distance of 284 meters, which means that the cutoff of the original formula is much lower than the one because of Johnson's criteria.
Another much cheaper cheaper option would be the MACT-782F, which has a image height of 960 pixels, a focal length of 3.6mm and a sensor height of 6cm. This will give a cutoff distance of 0.9 meter. This will then be the limiting factor
===Litter collection algorithms===
====Bayesian Network====
On the right one can see the Bayesian network which models the probabilities. The 'Litter at location' indicates whether there is litter at a specific location. This influences the reading of the sensor which can either give a true positive, a true negative, a false positive or a false negative. Based on the sensor reading, the robot chooses to either move towards the litter or not which in turn influences the utility function.
[[File:BayesianNetwork.png||thumb|right|400px|Bayesian Network modelling the system.]]
====Utility Function====
The utility function will be as follows. The decision to not drive will make the utility zero. Negligible energy is used and no litter will be collected. If the robot does decide to drive, the utility will decrease by the energy used. If litter is found, de utility function will increase by the average amount of energy used to find a single piece of litter, to make sure that most of the litter is still found. The average amount of energy for a litter piece will be equal to the energy it will take for the robot to clean the whole beach divided by the number of litter on the beach. It is impossible to know this from the start for a given beach. Therefore this number will be estimated at the start, and will afterwards use the average of all every run it made on the beach. Because the robot will be an intelligent agent, it will always chose the action that maximises the utility function. This means that the robot will not move if the litter is either too uncertain or too far away. This utility function will also be tested with a simulation to see if it picks up enough litter for our purposes but will not run out of energy uselessly.
The function <code>E_avg * litter_chance * amount_of_litter</code> was designed because the robot should be indifferent with walking two times as far for two times the certainty of litter. Also having twice the amount of litter should make the robot twice as likely to go there.
However, using this function and having 100% vision, only half of the litter will be collected. This is not enough for the purposes of the robot. Therefore the gaussian distribution of the distance between two pieces of litter is needed.
Because litter usually collects in groups, the gaussian can be estimated to have a big sigma. According to Galgani et al, the North Atlantic has a litter density of 0.1/m and a variance of 0.2/m<ref>F. Galgani, G. Hanke, T. Maes, “Global Distribution, Composition and Abundance of Marine Litter</ref>. This means that to get more than 90% of the litter, the average energy should be multiplied by 5. This means that with 100% vision, the robot will pick up 97.1% of the litter.
In pseudo-code, the utility function will be:
<pre>
if (Drive)
U = 5 * E_avg * litter_chance * amount_of_litter - E_drive;
else
U = 0;
</pre>
====Initial value for E_avg====
To make the robot work initially, without having done any cleaning so that it could update its average Energy to pick up a piece of litter, an initial value of E_avg is needed. To do this the total area of beaches in the Netherlands will be divided by the total amount of litter on beaches in the Netherlands. According to Centraal Bureau voor de Statistiek, the Netherlands consists for 90,016 hectares of beaches and dunes in 2012 <ref>http://statline.cbs.nl/Statweb/publication/?VW=T&DM=SLNL&PA=70262ned&D1=a&D2=0&HD=180313-1350&HDR=G2&STB=T</ref>, with a coastline of 451 km.  The average amount of litter on beaches in 2012 was 1,781,450 <ref name="MilieuCentraal15"/>. This means that an average of 25.3 cm needs to be surpassed to get to a single piece of litter. Using the design choices made in [[#Locomotion|Locomotion]], the energy used for traversing this distance can be calculated.
====Litter spawning====
To make the litter spawn realistically, two different distributions were used. Firstly, a guassian distribution was used with a mean on the beach line, to represent that most of the litter stranded on the land by the sea, combined with a guassian distribution with a mean of 25 centimeters and a variance of 10 cm as found in <ref>Bergmann, M., Gutow, L., & Klages, M. (Eds.). (2015). Marine anthropogenic litter. Cham: SpringerOpen. doi:10.1007/978-3-319-16510-3</ref>, to make sure the litter was distributed realistically far away from each other. The other distribution was to simulate the random behaviour of humans. Humans can throw away litter anywhere on the beach and therefore a few pieces of litter were distributed randomly over the map. From every piece of litter, a twenty percent chance was taken that the litter was actually not litter, but for example a toy of a child playing, or a piece of wood.
====Robot Algorithm====
When the robot would see litter, it would give the litter a percentage of certainty, depending on how far away the robot would be. If the robot saw something from a very large distance, the chance would be 50% that it was litter or not litter, and as it would come closer, the percentage would increase to 100% if it was actually litter, or decrease to 0% if it was not litter. The litter pieces that were under 75% sure, are displayed as blue dots. Litter pieces that are almost certain litter are displayed in red, and pieces that are not litter are displayed in green. When the robot is further away, it would also see multiple litter pieces as one, in order to make the robot more likely to go to a high density area then a low density area of possible litter. The robot would move towards the litter position where the Utility function would be highest at that moment in time. This is not completely optimal yet. Therefore more sophisticated algorithms could be used which are explained in the next section.
===Litter collection + Sand filtration===
After the litter is recognized, the robot should collect it. There are multiple ways to approach this. There will be a trade off between multiple factors of the litter collection systems, including but not limited to: Cost, how much sand it filter, Power consumption and effectiveness. Since this project focuses on the energy aspect of the robot, this will be the most important factor.
'''Average litter weight'''
The weight of the average piece of litter that will be used to calculate power consumption of the litter collection mechanisms. The average between the weight of an aluminum can and a 500 ml water bottle will be used since these are very typical pieces of litter, these are respectively 13.11 and 10.31 [g] <ref>AMERICAN SAMOA POWER AUtHORITY
MATERIALS MANAGEMENT OFFICE (http://www.aspower.com/aspaweb/bids/RFP%20NO.%20ASPA14.1216%20ASPA%20AND%20PUBLIC%20JOINT%20VENTURE%20RECYCLING-Appendix%20A.pdf)</ref>. Which makes the average trash weight 11.71 [g], with an average volume of 0.428 [<math>dm^3</math>].
==== Claw ====
[[File:Claw_design.PNG||thumb|right|400px|Claw design <ref name="claw"/>]]
A claw design can be used to collect litter from the ground<ref name="claw">Felippe Schmoeller da Roza, Vinicius Ghizoni da Silva,
Patrick Jose Pereira and Douglas Wildgrube Bertol. Modular robot used as a beach cleaner. March 7, 2016</ref>. Its design is made in the shape of an excavator dumper, a well-known configuration used in dump trucks to collect trash. The claw is made from striped (coating) pieces of metal, this allows the robot to collect litter in an environment composed by sandy or clayey soil, reducing the drag force and granting that not much sand is collected together with the litter. The claw is composed of two different parts: the upper and lower one. These two parts are connected by a Futaba S3003 servomotor, responsible for the claw’s opening and closing movements. The rising and lowering of the claw is granted by a pair of AX-12 servomotors.
'''Average power consumption''' 
Since the power necessary to lift the entire claw + the piece of trash is much larger than the power necessary to only close the claw, the power consumption of the closing part is not taken into account. So we will only look at the AX-12 servomotor.
specifications AX-12 servomotor
*Max/idle current - 900/50 mA
*Stall torque - 1.5 Nm
*Recommended voltage = 11.1 V
*Efficiency = 80% <ref name="efficiencyservo">John Mazurkiewicz. How efficient is your servomotor. http://www.machinedesign.com/technologies/how-efficient-your-servomotor. Sep 01, 2002</ref>
The weight of the claw is not given, so a similar claw has been found <ref>Robotic All-metal Claw for Robot Arm DIY (https://www.elecrow.com/robotic-all-metal-claw-for-robot-arm-diy.html)</ref>. This claw weighs 123 gram, but is a bit smaller, so the weight of the claw is estimated at around 200 gram. The length of the claw is approximately 25 cm. The claw makes a circular motion around the servo so the center of mass of the claw is on average 6.25 cm from the rotational point. It is assumed that the center of mass of the piece of garbage will be the same distance from the rotational point as the claw. This information about the claw together with the specifications of the AX-12 servomotor make it possible to calculate the power consumption, as can be seen below.
<math>T_{pick-up} = r \cdot m \cdot g = 0.0625 \cdot (0.212 \cdot 9.81) = 0.130\,</math>
With: T = Torque [Nm], r = distance from rotational point to center of mass [m], g = gravitational accelarion [m/s<sup>2</sup>] and m = mass [kg]
Then using the fact that the current is proportional to the torque, the current can be calculated.
<math>I_{pick-up} = \frac{T}{T_{stall}} \cdot (I_{max} - I_{idle}) + 2 \cdot I_{idle} = \frac{0.130}{1.5}\cdot0.850 + 0.1 = 0.174 \,</math>
With: I = current [A]
Now the current and voltage are known so the power needed while picking up litter can be calculated.
<math>P_{pick-up} = U \cdot I \cdot \frac{1}{\eta} = 11.1 \cdot 0.174 \cdot \frac{1}{0.8} = 2.41\,</math>
With: P = power [W], U = Voltage [V] and <math>\eta</math> = Efficiency [-]
Now the amount of power needed to pick something up is known, but we also need to know the amount of power used when idling, this can be calculated using the same formula using the idle current.
<math>P_{idle} = U \cdot (2 \cdot I_{idle}) \cdot \frac{1}{\eta} = 11.1 \cdot 0.1 \cdot \frac{1}{0.8} = 1.39\,</math>
The power usage during garbage pick-up and idling are now known. To determine that amount of power the servo’s use on average, the relation between pick-up time and idle time needs to be known. It is estimated that for every 30 seconds of idling there is 1 second of picking up trash. Which gives us the following average power usage.
<math>P_{avg} =  P_{idle} \cdot \frac{30}{31} + P_{pick-up} \cdot \frac{1}{31} \cdot \frac{1}{\eta} = 1.11 \cdot \frac{30}{31} + 1.93 \cdot \frac{1}{31} \cdot \frac{1}{0.8} = 1.43 \,</math>
The average power consumption of the litter collection and sand filtration system the claw is 1.43 W.
'''Maximum power consumption'''
The peak power consumption occurs when the servo motor will have to deliver the most torque. The max power needs to be known, because when choosing the battery it has to take into account what its max power output will be. The most torque has to be delivered when the robot has to collect the heaviest piece of litter, which is assumed to be 1 kg and the piece of litter is furthest away from the rotational point, which is 12.5 cm.
<math>T_{max} = r \cdot m \cdot g = 0.125 \cdot (1.2 \cdot 9.81) = 1.47\,</math>
With the maximum value of the torque it is possible to calculate the maximum value of the current.
<math>I_{max} = \frac{T}{T_{stall}} \cdot (I_{max} - I_{idle}) + 2 \cdot I_{idle} = \frac{1.47}{1.5}\cdot0.850 + 0.1 = 0.933 \,</math>
With the maximum value of the current the peak power draw can be calculated.
<math>P_{max} = U \cdot I_{max} \cdot \frac{1}{\eta} = 11.1 \cdot 0.933 \cdot \frac{1}{0.8} = 12.95 \,</math>
This makes the peak power consumption 12.95 W.
'''Costs'''
The total costs of the solution:
*2x AX-12 servomotors – €89,80- <ref>http://www.trossenrobotics.com/dynamixel-ax-12-robot-actuator.aspx </ref>
*2x Futaba S3003 servomotor - €27,10- <ref>https://www.amazon.com/Futaba-FUTM0031-S3003-Standard-Servo/dp/B0015H2V72</ref>
*1x The claw itself - €50,00- (estimation based on the similar claw and the fact that this one is a bit bigger and has striped metal)
This makes the total costs of the solution: €166,90-.
==== Rake ====
[[File:Rake_design.PNG||thumb|right|400px|Rake design <ref name="rakedesign"/>]]
A rake design could also be used to collect litter from the beach<ref name="rakedesign">Francisco Cuellar, Michel Siguenza, Franco Guillen Basantez, Elizabeth Gutierrez
and Dante Arroyo López. IEEE Open Category: Beach Cleaner. 2013. http://www.natalnet.br/lars2013/LARC/Artigo11.pdf</ref>. Just like the claw design it also already filters the sand from the litter. The rake design uses a 15 kg.cm Tower Pro servomotor. Since this exact servomotor could not be found a similar one will be used to determine the power consumption. This servomotor is the Tower Pro MG958.
Specifications Tower Pro MG958 <ref>MG958 http://www.towerpro.com.tw/product/mg958/</ref>:
*Max/Idle current = 1600/170 [mA]
*Stall torque = 1,765 [Nm]
*Voltage = 4.8 [V]
*Efficiency = 0.8 [-] <ref name="efficiencyservo"/>
The weight of the rake is not given, but the material is, which is ULTEM. Since it is similar in size to the claw design, but two times less dense the weight is estimated at 100 gram. The rake is about 30 cm long, so the center of mass will be 15 centimeter from the rotational point at the maximum load point and on average 7.5 cm during pick-up.
Given these specifications about the servo motor and the rake, the maximum, idle and average power consumption can be calculated in the same way as for the claw design.
<math>P_{idle} = 1.02 W</math>
<math>P_{pickup} = 1.43 W</math>
<math>P_{max} = 8.89 W</math>
<math>P_{avg} = 1.03 W</math>


Total cost of solution:
*MG958 = €11,95- <ref>MG958 digital servo. https://www.hobbyelectronica.nl/product/mg958-digital-servo/</ref>
*Rake (based on 100g ULTEM filament) = €32,- <ref>ULTEM 3D printing filament. https://www.3dxtech.com/ultem-9085-3d-printing-filament/</ref>
This makes the total cost of the solution €43,95-.


'''DustCart, an autonomous robot for door-to-door garbage collection: from DustBot project to the experimentation in the small town of Peccioli'''
==== Excavator arm ====
[[File:Excavator_arm_design.PNG||thumb|right|400px|Excavator arm design design <ref name="excavatorarm"/>]]
The excavator arm design is also a possible solution to picking up litter from the beach<ref name="excavatorarm">Oscar Cieza, Carlos Ugarte, Elizabeth Gutiérrez, Javier García, José Tafur. Prometeo: Beach Cleaner Robot. 2012. http://www.sistemaolimpo.org/midias/uploads/d7abd08b1e341fcd029c5ca0e3ca2218.pdf</ref>. It also has holes in it, so that sand gets filtered out. The excavator arm has 3 DOF driven by 6 MG995 servomotors.


DustCart is an autonomous garbage collecting robot. It can navigate urban environments with static and dynamic obstacles. Users can request a garbage removal after which the robot is dispatched, interacts with the user through a touchscreen interface, and receives a garbage bag. Next, it moves to a site where the garbage is deposited. DustCart monitors air quality, temperature, and humidity along the way.
Specifications MG995 <ref>MG995. http://www.towerpro.com.tw/product/mg995/</ref>:
*Max/Idle current = 170/1200 [mA]
*Stall torque = 1.079 [Nm]
*Voltage = 6 [V]
*Efficiency = 0.8 [-] <ref name="efficiencyservo"/>
 
Again the weight of the collection mechanism is not given. However the weight of a MG995 servomotor is 55 gram and the main two motors have to lift 4 others and the arm itself. It is therefore estimated that the collection mechanism weight about 400 gram. The excavator arm fully extended is 40 cm long. Since when fully extended most of the weight is at the end of the arm, it is assumed that the center of mass is at max load is at 30 cm from the rotational point.
Using the parameters given the maximum torque comes out to be 4.12 [Nm] for the two main servomotors this is more than they can handle. So it is impossible for this design to lift 1 kg at full arm extension. This means that for the calculation of the maximum power consumption the two servo’s will be maxed out. It is also assumed that only two servomotors will be working at the same time.
Given these specifications about the servo motor and the excavator arm, the maximum, idle and average power consumption can be calculated in the same way as for the other designs.
 
<math>P_{idle} = 7.65 W</math>
 
<math>P_{pickup} = 11.99 W</math>
 
<math>P_{max} = 17.98 W</math>
 
<math>P_{avg} = 7.79 W</math>
 
Total cost of the solution:
*6x MG995 = €53,70 <ref>MG995 Digital metal servo. https://www.kiwi-electronics.nl/mg995-digital-metal-servo</ref>
*Excavator arm = €20,00 (estimation)
 
This makes the total cost of the solution €73,70.
 
==== Conclusion ====
 
Three different designs have been discussed, the claw, the rake and the excavator arm. All three of them incorporate sand filtration into their design. The main specifications of these litter collection mechanisms that were looked at were the power consumption and cost. These specifications are summarized in the following table.
 
{| class="wikitable" style="border-style: solid; border-width: 1px;" cellpadding="3"
!style="text-align:left;"| Collection mechanism
!style="text-align:left;"| <math>P_{idle}</math> [W]
!style="text-align:left;"| <math>P_{pick-up}</math> [W]
!style="text-align:left;"| <math>P_{max}</math> [W]
!style="text-align:left;"| <math>P_{avg}</math> [W]
!style="text-align:left;"| Cost [€]
|-
| Claw || 1.39 || 2.41 || 12.95 || 1.43 || 166.90
|-
| Rake || 1.02 || 1.43 || 8.89 || 1.03 || 43.95
|-
| Excavator arm || 7.65 || 11.99 || 17.98 || 7.79 || 73.70
|-
|}
 
From these values we can conclude that the Claw solution is the most expensive, the excavator arm uses the most energy, while the rake is the most energy efficient. This does not necessarily mean that the rake will always be the best solution. Because while the rake is the most energy efficient, the excavator arm is better at reaching litter in difficult places using its manoeuvrability. So the best solution is dependent on what the user wants to do with the robot. The energy consumption values will later be used in the simulation.
 
===Litter storage===
[[File:litter_collection_2.1.png||thumb|right|400px|Litter storage design ]]
 
The litter should be collected somewhere in or on the robot before it can be moved to be deposited. The robot needs to be able to carry a volume of 25 L of litter. The size of the robot will be around half a meter by half a meter. That is why we have chosen for the base size of the storage container to be 0.4 m x 0.4 m. This leaves us with a height of 0.16 m for the storage container.
The material that is chosen for the storage container is aluminum, because it is relatively cheap, strong and widely available. The storage container will consist of 4 aluminum plates of 0.4 m x 0.16 m x 0.001 m for the sides and a perforated plate of 0.4 m x 0.4 m x 0.002 m for the base. The base plate is perforated so that excess sand can be filtered out and any water that might enter the storage container can be easily drained. The base plate is also thicker, because its under a heavier load than the side plates. The total weight of the storage container is 1.63 kg, calculated in NX <ref>Siemens NX: https://www.plm.automation.siemens.com/en/products/nx/</ref>.
 
''Cost''
*4x side plates = €15,94
*1x base plate = €9,87
 
This brings the total cost of the storage €25,81.
 
===Energy management===
 
There are several options to provide the energy that the robot requires. The main options that were considered are:
* (On-board) sustainable energy obtainment, e.g.:
** solar cells
** small windmill
** solar heating panel
* Combustion engine
* Electrical power provided via a cable
* (Interchangeable) Rechargeable battery
* Combinations of the options above
 
The criteria used to assess the different options are:
* Needed space and weight
* Delivered power
* Working time restrictions
* Sustainability
* Inherent restrictions
* Costs
 
The goal of this project is partly based on the environmental aspects of litter, so designing a robot with a combustion engine would form a sustainability point of view not be a desired option. In general, beaches are places with a lot of wind (and sunlight in the periods that most people are there), making the sustainable energy option even more attractive.
 
On-board sustainable energy obtainment has the advantage that the robot provides its own energy, and therefore does not have to spend extra time to recharge, to change a battery, to refuel, etc. Besides, these options are environmentally friendly. However, the energy obtainment will be dependent on the weather conditions, so that the robot could for example not work properly when there is not enough wind or sunlight, or the robot can never work at night when it runs on solar energy. Another disadvantage is the space needed. The irradiance of sunlight on earth’s surface is of the order 1000 W/m<sup>2</sup> <ref>https://www.newport.com/t/introduction-to-solar-radiation</ref>. The efficiency of affordable solar panels is up to about 20% nowadays <ref>https://news.energysage.com/what-are-the-most-efficient-solar-panels-on-the-market/</ref>, which means that the power supply would be about 200 W/m<sup>2</sup>.
For lifting objects, about 20 W could be enough, but for driving up (small) hills, more power will be required. Assuming a 30° slope and a robot mass (including collected litter) of 25 kg, the force needed is about 142.5 N. Then, to reach a speed of 2 m/s, the maximum power required is about 285 W (see [[#Energy_efficiency_and_power_requirements|Energy efficiency and power requirements]]).
 
This means that a solar panel of at least about 1 m<sup>2</sup> would be needed. The weight of a solar panel is about 15 kg/m<sup>2</sup> <ref>https://news.energysage.com/average-solar-panel-size-weight/</ref>, so the solar panel would add a significant amount of weight, and deliver just enough power to lift itself. Of course, the robot would not always have to drive uphill, so the average amount of power required will be lower. Using a smaller solar panel, that delivers the average amount of power needed and storing the solar energy in a rechargeable battery inside the robot could then be an option. This will also solve the problem that the robot can would not work if there were less sunlight for a short time. The battery would also add extra mass and take up space. If there is less sunlight for a longer time, the operation time of the robot will be limited, so it should wait in between working to recharge the battery with its solar panel, which could take a lot of time. An on-board windmill would, besides making the construction very instable, lead to similar problems. Another option would be a central point from which the robot(s) can obtain their energy. At this point, solar panels and possibly (small) windmills can be placed to obtain energy. It can be connected to the electricity network, so that extra energy can be obtained when needed, and energy can be returned when there is more than enough. A central point would already be needed to collect all the litter from the robots, and could also be a place from which a human operator could possibly control everything. See [[#Central_hub|Central hub]] for further information about this.
 
From this point, the energy can be distributed to the robots in several ways: (1) via a long cable that can extend, comparable to a vacuum cleaner, (2) by recharging the robots at the central point or (3) by recharging batteries that can be placed into the robots by replacing the used battery, which can be recharged at the central station afterwards.
The advantages of using a cable are that the robots are not limited in their working time by a shortage of energy, there is no extra space and mass needed on-board of the robot for a battery and there is no time needed to recharge the robot or replace the battery. The disadvantages are that the cables can stick behind objects, can annoy people and limit the working range of the robots because even if the cables would be very long, at a certain point it will cost too much power to pull them through the sand. In short, it is clear that using cables would be very inconvenient.
 
The two options left both use rechargeable batteries. The choice to make is whether they should be recharged while the robot is at the central point, or while the robot is working and only replace the battery when the robot is at the central point. The advantage of replacing the battery is that it will take less time, so that the robots can work a larger part of the total time. The advantage of recharging the battery is that no system to replace the battery is required. The decision thus depends on whether the extra working time outweighs the extra costs of a battery replacing system. Both options can be combined with a small (removeable) solar panel on top of the robot, to extend the operation time.
 
====Battery type comparison====
 
Assuming that the robot requires an average power of 100 W while operating and the robot should be able to operate for half an hour without recharging/replacing the battery, the energy needed is 50 Wh.
 
For the use of batteries in our robot, they should be as small and light as possible due to the weight and space constraints. Therefore, a high energy density is preferred. Besides, the costs should not be too high. In the table below, the most relevant properties of the most common rechargeable batteries can be found <ref>https://en.wikipedia.org/wiki/Comparison_of_commercial_battery_types</ref><ref>http://www.epectec.com/batteries/chemistry/</ref><ref>https://en.wikipedia.org/wiki/Lithium_polymer_battery</ref><ref>http://batteryuniversity.com/learn/article/bu_1006_cost_of_mobile_power</ref><ref>https://data.bloomberglp.com/bnef/sites/14/2017/07/BNEF-Lithium-ion-battery-costs-and-market.pdf</ref>. Rechargeable alkaline batteries are not included, since their life-time is very short compared to the other types.
 
{| class="wikitable" style="border-style: solid; border-width: 1px;" cellpadding="3"
!style="text-align:left;"| Cell chemistry
!style="text-align:left;"| Nominal Voltage [V]
!style="text-align:left;"| Energy density [Wh/kg] ([Wh/L])
!style="text-align:left;"| Cost [$/kWh]
|-
| Lead-acid || 2.1 || 30 – 40 (60 – 75) || 57 – 148
|-
| Nickel-cadmium || 1.2 || 30 (100) || 300 – 600
|-
| Nickel-metal hydride || 1.2 || 100 (401) || 303
|-
| Lithium-ion / -polymer || 3.6 – 3.7 || 90 – 265 (333 – 730) || 273
|-
|}
 
The main advantages and disadvantages of the different battery types are summarized below <ref>http://www.epectec.com/batteries/chemistry/m</ref><ref>Cook D. (2015) Nine-Volt Batteries. In: Robot Building for Beginners. Apress, Berkeley, CA</ref>.
 
 
{| class="wikitable" style="border-style: solid; border-width: 1px;" cellpadding="3"
! scope="col" style="text-align:left;"| Battery type
! scope="col" style="text-align:left;"| Advantages
! scope="col" style="text-align:left;"| Disadvantages
|-
! scope="row" style="text-align:left;"| Lead-acid
| No memory effect || Low energy density
|-
| || || Higher discharge rates result in loss of capacity
|-
| || || Environmental hazard (however, they can be recycled)
|-
! scope="row" style="text-align:left;"| Nickel-cadmium (NiCad)
| Inexpensive || Low energy density
|-
| || Almost no loss of capacity at high discharge rates || Memory effect
|-
| || || Environmental hazard, recently banned in many applications in Europe <ref>http://www.europarl.europa.eu/news/en/press-room/20131004IPR21519/meps-ban-cadmium-from-power-tool-batteries-and-mercury-from-button-cells</ref>
|-
! scope="row" style="text-align:left;"| Nickel-metal hydride (NiMH)
| High energy density || High self-discharge rate (newer chemistry with low self-discharge rate has a ca. 25% lower energy density)
|-
| || Long life-time ||
|-
! scope="row" style="text-align:left;"| Lithium-ion / -polymer (Li-ion / LiPo)
|High energy density || Relatively expensive
|-
| || Very high discharge current || Low self-discharge rate
|-
|}
 
 
High self-discharge rates would only be a problem if the robot would not be used for a long time. If that would happen, the battery could be recharged or replaced with a small effort. Therefore, the self-discharging properties do not have priority when selecting the battery type. The Nickel-cadmium and Lead-acid batteries will not be chosen because of their relatively low energy densities and environmentally hazardous properties. Lithium battery packs appear to be the most suitable for this application due to both their high energy density. An added advantage is that with the current rise in electric vehicles using this battery chemistry, the price of rechargeable lithium batteries is dropping.
 
Currently, the price of a lithium ion battery pack is dominated by the price of the cells themselves, making up around 50 percent of the cost<ref>http://cleanleap.com/7-electricity-transport/71-battery-cell-and-pack-costs-and-characteristics</ref>. For an estimate of the total battery pack weight including battery management and safety features, we might use the Tesla model S as an example. Tesla's 90kWh model has a battery pack of 540kg. This amounts to around 167 kWh per kg<ref>http://batteryuniversity.com/learn/article/electric_vehicle_ev</ref>.
 
 
====Power system====
[[File:PRE2017-15-solar-battery-motor.png||thumb|right|450px|Power system diagram]]
 
A possible configuration of the robot's energy management system is illustrated in the figure to the right. The robot runs off a central battery pack connected through a Battery Management System (BMS). It should be built in a modular way, allowing for the battery to be swapped during operation to instantly replenish the robot's range. The robot is also fitted with a solar cell that can charge the battery through a Maximum Power Point Tracking (MPTT) controller. The robot's locomotion motors are connected to the battery through a motor controller. This is needed to control their speed and directions. If a bidirectional motor controller is employed, the robot can use regenerative braking to recover some energy and improve overall efficiency when driving.
 
As described before, a solar panel will produce around 200W/m<sup>2</sup>. A good MPTT setup will yield about 90% efficiency<ref>Müller et al. PV-off-grid Hybrid Systems and MPPT Charge Controllers, a State of the Art Analyses, Energy Procedia, Volume 57 2014, pp. 1421-1430, ISSN 1876-6102, https://doi.org/10.1016/j.egypro.2014.10.133.</ref>, meaning that around 180W can be used to charge the battery per square meter of solar panel surface. The solar panel for our robot will be about 0.5m x 0.5 m, which equals an area of 0.25 m, and thus produce around 50 W, of which 45 W can be used to charge the battery.
 
The typical electrical efficiency of a PWM motor controller is above 95%<ref>https://drive.tech/en/stream-content/on-the-efficiency-of-drive-components</ref>. The efficiency of DC-motors in the relevant power range is about 80%<ref>https://www.maxonmotor.nl/maxon/view/catalog/</ref>.
 
====Summary====
 
There are many options in chosing what energy to use for the robot, of which it is decided that a solar panel in combination with a battery would be best in most situations.
The following energy numbers and relations are important when forming an energy balance:
 
 
'''Battery pack'''
 
Every 100Wh of battery capacity will increase costs by approximately €45,- and weight by 600 grams.
 
'''Motor controller'''
 
The motor controller should provide a battery-to-motor electrical efficiency of 95 percent.
 
'''Solar'''
 
In ideal solar conditions, every square meter of solar panels should deliver 180W to the battery pack at the cost of 15 kilograms.
 
===Central hub===
 
[[File:Central_Hub.PNG||thumb|right|600px|Central Hub. The operator can monitor the robots from the white shed, where also the extra batteries are charged using the energy from the solar array on top of the shed. The litter can be stored in the green container.]]
 
The central hub is the place where robots can dump their collected litter and replace their batteries if needed. At this place, a human operator can be present to control the whole process. This person can replace the garbage bags and batteries of the robots. Besides, he could monitor the robots by looking at their live camera images. When the robot is stuck, has problems with humans or does not know whether something is litter or not, the operator can help the robot.
 
The central hub will be located at the land side of the beach, preferably around the center of the operating region in the direction of the coastline, so that it does not annoy the beachgoers. It will be covered by solar panels, that provide the energy needed to charge the batteries. If possible, it will be connected to the electricity network, so that extra energy can be obtained if the energy from the solar panels is not enough at a certain moment, and if there is more energy provided by the solar panels than needed, it can be used by the rest of the world. If this connection is not possible, a large battery, such as a Tesla Powerwall <ref>https://www.tesla.com/powerwall</ref>, could be used to store the energy for later usage.
 
Solar panels were chosen, because they are good for the environment. Other solutions that are also good for the environment like generating energy with the use of windmills were not chosen, because they come with a lot more negative external effects. Windmills are often perceived as ugly and that they ruin the view, they also make a noise that can be perceived as annoying. Besides, they cause large moving shadows, which can be unpleasant for the beachgoers. Solar panels have non of these issues, so they are the preferred solution.
 
The amount of solar panels needed depends on a couple of factors:
 
*'''The amount of cleaning robots:''' Every cleaning robot will have one spare battery, this means that with an increased number of robots more batteries need to be charged. So more cleaning robots, means that more solar panels are needed.
 
*'''The presence of a connection to the main power grid:''' If the central hub is connected to the main power grid it will never waste energy, because when the solar panels generate energy which the central hub does not use, the energy will be send to the main power grid. This means that having more solar panels then necessary is not a problem, so the amount needed could be overestimated, so that there is always plenty of power to go around.
 
*'''Power consumption of the cleaning robots:''' Depending on the chosen parts for the robot and the environment the cleaning robots will have a certain power consumption. When this power consumption is higher, the robots need to change their batteries more often. This means that if the robots have a high power consumption, more solar panels are needed.
 
The litter can be collected by the operator by disconnecting the solar panel and taking out the garbage back. The garbage back is then placed in a big container underground.
 
===Human interaction===
 
====Laziness====
[[File:STB-Robot.jpg||thumb|right|350px|STB robots<ref>https://www.nippon.com/en/views/b00902/</ref>]]
[[File:3668908841 9ee88b7b9f z.jpg||thumb|right|350px|Piano stairs<ref>From KJ Vogelius on flickr - https://www.flickr.com/photos/kj_/3668908841</ref>]]
 
Humans are biologically wired to be lazy, and even the most environmentally centered will figure out the least strenuous way to deal with litter responsibly. For example, hikers are encouraged to take their litter home as trails don’t have many litter bins<ref>http://www.info.gov.hk/gia/general/201608/26/P2016082600760.htm</ref>. This does not require much effort as hikers will only need to keep their litter on themselves until they get home. It also saves a lot of work traversing the trails to empty litter bins if they were placed more frequently.
 
In different situations however, people might be less motivated to dispose of their trash at home. On a beach people tend to wear clothing that may not have pockets to keep their trash in, and they might not feel inclined to take a swim while carrying garbage. If all litter bins on the beach are replaced with robots described on this page, it might cause a new litter-related problems.
 
First of all, there will be no fixed spots where people can deposit their litter. Currently, the further away a trash receptacle is, the more likely people are to litter<ref>https://www.alleghenyfront.org/the-psychology-of-littering/</ref>. This indicates that the amount of effort required to deposit trash plays a large role in how likely people are to litter. Even if the robots have a chute to deposit litter, users will still need to look around for them. A robot might be sufficiently far away that the user will give up and drop their litter in the sand. This effect might be amplified by human laziness. If robots are roaming around to pick up litter, it could give the impression that there is no need to deposit trash inside their bins as they will come pick it up anyways. Even if normal bins are placed around the beach, this could still become a big issue.
 
There are several ways to encourage people to deposit their trash in the robot. One of these is to is to make the robot more social. Engineers at Japan's Toyohashi University of Technology have already successfully experimented with so-called Social Trash Box (STB) robots<ref>https://newatlas.com/social-trash-box-robot/29769/</ref>. The STBs are small motorized litter bins. They identify public areas where humans are present, then mingle into those areas. When the robot senses a piece of litter on the ground, it talks and uses ‘body movement’ (wiggling its flexible trash bin) to request a person to pick up the litter. Next, it positions its bin at the best angle for that person to throw in the litter. Our robot could use similar social behaviour to ask for help with trash it is unable to pick up or reach. Additionally, this behaviour might trigger people’s social norms to encourage them not to litter.
 
A second way to reduce littering when the robots are operating is to integrate some way to summon the robot to your location. The DustCart project<ref name="dustcart"/> relied completely on user action through phone calls to collect garbage from their homes. A similar principle can be implemented next to the autonomous litter collection of our robots. The robot could for example be summoned through an app on the user’s phone, or some sort of action - perhaps yelling or whistling in the direction of the robot.
 
Finally, a reward system can be implemented to encourage people to deposit trash into the robot. Since material rewards will most likely elicit fraudulent behavior, non-material or psychological rewards are more in place. Several examples of this ''gamification'' include a bottle bank arcade, piano stairs, and the world’s deepest bin (covered in ''Encouraging dustbin designs''). The bottle bank arcade turned recycling glass bottles into a game similar to the classic Whac-A-Mole where you have to insert your bottles to be recycled into the slots that light up within the given time to gain points. The piano stairs were a temporary project that transformed a staircase next to an escalator in Stockholm into a piano, with all the steps being working keys that would play notes. This encouraged 66% more people to use the stairs rather than the escalator<ref>Jayson A. Corey, Nick M. Sitar, and Shea M. Bernardo - Gamification: Changing People’s Behavior with Fun - Worcester Polytechnic Institute. Available from https://web.wpi.edu/Pubs/E-project/Available/E-project-042914-114258/unrestricted/Gamification1.pdf</ref>.
Our robot could implement gamification in many different ways. A simple approach would be to award a score for the number of litter that is deposited. This can even end up encouraging people to clean up litter that isn’t their own. It could also give access to a small game or a temporary WiFi password as a form of encouragement. The possibilities are nearly endless.
 
====Accidents====
The robot needs to be able to deal with unforeseen events. It might get stuck in a sandpit or mud near the waterline. In this case, helping the robot is trivial and should require no tools. To reduce workload on the operator who would otherwise need to go to the robot to help, the robot could reach out to nearby people. Much like the STBs described above, the robot could vocalize or emit intuitive noises to indicate that it requires help. A display on the robot could then give further information on the specific request.
 
Similarly, the robot might be unable to pick up a certain piece of litter. In this case, it might use the same strategy of calling for help as when it is stuck. In the event that this doesn’t help, the operator can still be sent to inspect and fix the robot.
 
===Robot algorithm===
 
====Formalizing the problem====
Before we can discuss any algorithm, it is important to first make the problem explicit. This part describes what the robot  does. More precisely, this part looks at the different options of determining which potential litter object needs to be visited next. Therefore the goal of every algorithm is to state the litter object it should go to next.
 
For testing the different methodologies,  it is assumed in the simulation that there are only two types of objects. One of these is the litter object, and the other is the fake litter object. The robot is able to differentiate between these two objects using its sensors. The sensors however cannot determine with absolute certainty if the object is litter or fake. Rather, for each litter object it assigns a certain probability showing how certain the sensor is that the object is litter. This probability will increase or decrease as the distance to the object decreases, simulating the fact that a sensor can see what something is the closer it is to the object. This probability will further be referred to as ''litter_chance''. The distance from the robot to the litter object is referred to simply as distance and is seen as a property of the litter object.
 
====Greedy algorithm====
An algorithmic paradigm  that is very robust and works well in circumstances with uncertainty is a greedy algorithm. With a greedy algorithm you make locally optimal choices. This however does not guarantee that it leads to the global optimum, or in other words the best decisions. A simple example of where a greedy algorithm does not necessarily lead to the optimal solution is for the change-making problem. In this problem you need to use as few coins as possible such that they add up to a given amount of money. For example, say that you have the coins 1, 5, 7 and you need the coins to sum up to 10. The greedy solution would be to use 4 coins, namely 7 + 1 + 1 + 1, where each time you pick the largest coin without going over your target. The optimal solution would however be to pick 5 + 5 where you only use 2 coins. This is a good example which shows that making locally the best choices does not always lead to the optimal solution. Greedy algorithms are also often applied in areas even where they are suboptimal. This has to do with the fact that greedy algorithms are often very fast computationally speaking. Especially when there are many variables to consider, in our case a lot of litter, using a more complex algorithm might require more expensive hardware or simply take too long.
 
A good greedy rule for our problem might be to simply pick the litter which leads to the lowest distance per chance of finding litter. More formally, you navigate towards the object which has the greatest litter_chance / distance. This means that the robot is indifferent to walking either 1 meter towards an object which is expected to be in 50% of the cases litter or walking 2 meter towards an object with an 100% expected litter chance since in both cases you are expected to find one piece of litter after walking 2 meters. In practice, this may perform even better than one would think due to the fact that the agent is operating in a dynamic task environment. When the parameters of the environment are continuously changing, i.e. litter is thrown away, blown away, or picked up by people, it is very difficult if not impossible to give an optimal solution.
 
====Vector potential field planning====
[[File:Vector_potential.png||thumb|right|400px|Vector potential field example]]
A well-known algorithm for multi-goal planning is Vector Potential Field Planning. This algorithm is able to handle dynamic task environments well. As the name might suggest, it works by putting a positive ‘charge’ on one of the goals. This charge generates a potential field of  which the strength attenuates as the distance increases. When the potential fields of two (or more) charges overlaps, the strength is summed. An example of a vector field is shown in the image on the right.
 
A big advantage of this algorithm that the agent is automatically more attracted to an area where there is a lot of things to do. This is not something the greedy algorithm does, since it goes to the closest litter object it can find. This means that it will ignore a large group of litter, over one piece of litter if it lies slightly closer. The Vector Potential Field algorithm will however favor the large group, since all the weights are added giving rise to a large potential field in the direction of the large group. In addition, this algorithm is able to easily assign different levels of importance to certain objects. You could give for example let glass shards emit a stronger potential field, making the robot more inclined to clean up the dangerous glass shards over for example plastic.
 
====Traveling Salesman Problem====
To get an optimal path for the robot, the Traveling Salesman Problem will need to be solved every time new information is gathered. The TSP is a well-known problem in both mathematics and computer science. It is stated as follows. “if a traveling salesman wishes to visit exactly once each of a list of m cities (where the cost of traveling from city i to city j is c<sub>ij</sub>) and then return to the home city, what is the least costly route the traveling salesman can take?” <ref>K. Hoffman, M. Padberg, G. Rinaldi, 2016, “Traveling Salesman Problem”</ref> In the case of the litter cleaning robot on the beach, the cities will be the litter (close enough to be energy efficient to check out), and the costs would be the utility function of the Litter Detection section. To get the solution, a tree could be made starting at the robots starting position, expanding nodes to every piece of litter close enough to be energy efficient to check out. Those new nodes would be expanded the same way, except that the utility function would be calculated from as if the robot would be in the position of the previous node, without adding new information, and excluding the litter that are parents of the node.  This would however create a tree with N! (the factorial of the amount of litter close enough to be energy efficient to check out) nodes. For N’s as little as 10, this would already require almost 4 million nodes. Therefore this technique is neither memory nor time efficient to be used on a beach full of litter.
 
====TSP with cellular decomposition====
As realized in <ref name="WaandersPathPlanning"/>, a difficult problem such as the Traveling Salesman Problem, can be solved (semi-)optimal by cutting the total coverage of the area into smaller pieces, and solving the difficult problem within those pieces. Afterwards, the problem would be solved between the pieces that already have a solution, making the total solution very close to the optimal (or even optimal) while maintaining an easy solution. In the Traveling Salesman Problem discussed in the previous section, this would mean splitting the map, solving the TSP for the different sections and saving the total utility function gained from that, and then solving  the TSP between the sections with the information gained from within the sections. This would reduce the total amount of nodes needed from N! to n*m!+n!, where m is the amount of litter in each section, and n is the amount of sections. This means that splitting for example a beach of with 12 pieces of litter (almost 500 million nodes in the original solution) in 4 blocks of 3 litter pieces (48 nodes), will decrease the computational time and memory by a factor of 10 million. The closer m and n are to each other, the higher the gain from this method, but also the further away the solution will be from the optimal one. The solution will however always be better than the greedy solution, as in the worst case it will be equal to the greedy solution.
 
== Model ==
 
To validate the design, a tool has been developed in which the environment can be simulated.
 
=== Simulation ===
 
[[File:Simulation.png||thumb|center|900px|Screenshot of the developed tool]]
 
The simulation shows two windows. In the window on the left, you can control the simulation and enter various parameters. In the window on the right you can see the visualization of the simulation.
In the simulation the litter, the central hub and the robot is displayed. The litter is displayed using three different icons representing how sure the robot is that it is litter. If the icon is blue, then the robot is 80% sure that the object is actually litter. If the icon has become red, then the robot is 80% sure that the object is not litter. In all other cases, the object is black with a white question mark indicating that the robot is unsure. The central hub is indicated with the light blue circle and is the place where the robot will return to if it is either full or needs to recharge for energy. In case the robot is unable to pickup more litter, the robot will display a trashcan besides his own icon indicating that it's storage has completely filled up. In case the robot is out of energy, a lightning bolt is displayed besides the robot indicating that the robot is out of energy. Note that the size images are not effected by the size of the beach. If the images would have been scaled to the realistic sizes, it would be impossible to see them when simulating a large beach.
 
==== Buttons and parameters ====
The simulation is controlled using the following three buttons:
*'''Status''': Shows 'Running' in case the tool is simulating or 'Paused' in case the tool is not simulating.
*'''Start''': Starts the simulation.
*'''Stop''': Stop the simulation.
*'''Reset''': Resets the simulation. Will set the robot back in the hub, creates new litter objects and resets the statistics.
 
The simulation can be influenced by changing the following parameters:
*'''Litter spread''': Sets the average distance between two litter objects for the beach (the litter that has been washed ashore), given in litter per meter.
*'''Human litter''': Sets the litter density that has been caused by the people, given in litter per meter squared.
*'''Energy per pickup''': Total energy it takes for the robot to pickup the litter, given in Joules.
*'''Width beach''': Total width of the beach, given in meters.
*'''Height beach''': Total height of the beach, given in meters.
*'''Solar energy''': Sets how much energy the robot gains per second from the solar panels, given in Joules per second.
*'''Max volume''': Sets how much the robot can carry.
*'''Beach slope''': Sets the average slope of the beach, given in degrees.
*'''Battery size''': Sets the size of the battery, in Watt-hour.
*'''Speedup''': Indicates how many times the simulation is speedup. If it is set to one, then the simulation will run in real-time.
*'''Robot weight''': Total mass of the robot, battery not included.
 
====Results window====
[[File:Simulation2.png||thumb|right|320px|Screenshot of the developed tool]]
At the end of the simulation a window pops up showing the results of that run.
 
In the image on the right one can see such a result box. In this case, the simulation was run on a 200 meters wide by 40 meters deep beach. It shows that the robot has traveled 1600 meters in almost 17 minutes. It also shows how much energy it took from the central hub, and how much it used in total. The difference between these two number gives the total amount of energy generated by the solar panels. Lastly, it shows how much litter it picked up.
 
=====Results=====
 
To give a good measure of how good the selected robot performs on the selected beach, five parameters are shown when the robot finishes his job. Those are Distance Travelled, Time Elapsed, Hub Energy Leeched, Energy Used and Litter Picked.
 
 
'''Distance Traveled'''
 
This measure will give the total distance the robot has travelled in meters from the start to the finish. This might be useful when considering the different possible algorithms, because the distance that the robot needs to travel will need to be as low as possible to make sure the robot will annoy the least people and use the least energy.
 
 
'''Time Elapsed'''
 
This measure will give the total time it has taken for the robot from the start to the finish in seconds. This is useful to see if the robot does not take too long to clear up the beach, which might be an indication to use more than one robot. Also making the robot walk on the beach for longer times will annoy more people.
 
 
'''Hub Energy Leeched'''
 
This measure will give the total energy that has been charged at the central hub, which is actually a measure for how much energy needs to be supplied in the timespan listed by Time Elapsed. Subtracting this number from Energy Used will give the total Energy gained by the solar panel on top of the robot.
 
 
'''Energy Used'''
 
This measure will give the total energy used by the robot. This of course needs to be as low as possible for the amount of litter picked up, as this is what the design is mostly about in the simulation.
 
 
'''Litter Picked'''
 
This measure will give the total amount of litter picked up during the simulation. This will be useful to see how much of the litter that is on the beach the robot will actually pick up, and in combination with the Energy Used this can be a great measure for the energy performance of the robot.
 
 
=== Demonstration ===
 
In this section, two examples of the use of the simulation are shown and explained.
 
In the first example, the robot cleans a beach of 200 m by 40 m. Because of these large dimensions, the images of the robot and objects on the beach are displayed larger since otherwise you could not see them. The simulation is sped up 100 times for similar reasons. Due to the energy settings and algorithms used in this example, the robot does not pick up all litter because that would not be worth the energy it would cost.
 
In the second example, the robot cleans a beach of 8 m by 4 m. In this example the simulation is played in real time which allows you to better see the impact of the different strategies. The different stratagies are explained in [[#Robot_algorithm_2|Robot algorithm]]. As you can see, when the greedy strategy is used, the robot goes first to the nearest object and only afterwards to the group of litter. When the Vector Potential Field planning algorithm is used, it goes first to the group of litter and only afterwards to the other litter.
 
[[File:Demo1.gif||thumb|center|900px|Demo large beach]]
[[File:Demo2.gif||thumb|center|9000px|Demo searching strategies]]
 
==Results==
 
{|style="float: right;"
| [[File:TLitter.JPG|thumb|upright|400px|Time taken for different storages]]
| [[File:ELitter.JPG|thumb|upright|400px|Energy used for different storages]]
|}
 
{|style="float: right;"
| [[File:Graph_accu_time.PNG‎|thumb|upright|400px|Time taken for different accu sizes]]
| [[File:Graph_accu_energy.PNG‎|thumb|upright|400px|Energy used for different accu sizes]]
|}
 
 
 
In this section, the results of the simulation are described. For the simulation, exactly the same settings were used as in the case of the image 'Screenshot of the developed tool', except for the setting that was tested.
 
 
In the graphs it can be seen that increasing the total litter that the robot can store will exponentially decrease the time the robot takes to clear the beach, as well as the total energy it uses as well as the total distance traveled. It should be taken into account that increasing the storage however also increases the size of the robot and the costs. Therefore there will be an optimum for choosing the total litter storage, which will be dependent on the needs of the beach.
 
At 170 maximum litter, the graph does not comply to the exponential decay, but because this is the case in all of the graphs, it can be concluded that the beach the robot ran on was more difficult. This can be the case because the beach is randomly generated and therefore it can be that a certain test will be slightly more difficult than others. This point can therefore be thrown away as an outlier.
 
Also for the battery sizes it can be seen that increasing the battery size decreases the time, energy and distance used. This makes sense since increasing the battery size only slightly increases the mass, while greatly increasing the distance the robot can travel. At around 50 Wh the curve stops decreasing. This is caused by the fact that the robot is only limited by the maximum amount of litter it can carry and no longer by the battery size.
 
For the beach used as an example, we can thus conclude that a battery of 50 Wh is ideal, since making it larger does not increase the performance of the robot. It is recommended to at least be able to store 100 litter, since beyond this the performance does not increase significantly.
 
Do note however that the results in this section are indicative only. In case the robot is to be used on a beach that differs much from the one proposed here, the simulation should be run again.
 
== Conclusions ==
 
After doing research into all the subsystems that are necessary for an autonomous beach cleaning robot, their respective energy consumption and their limitations were found. A simulation was made that used the energy consumption values and the set limitations to model a beach with a beach cleaning robot. The simulation is able to accurately calculate and visualize the energy consumption of an arbitrary robot on an arbitrary beach within the constraints that were set at the beginning of the project. The tool can be used to evaluate energy consumption and efficiency of a litter cleaning robot in a beach environment before building the robot. This information could help governments or companies with deciding if the use of beach cleaning robots is worth it. When they decide that it is indeed worth it, the simulation could also help determining the amount of robots and central hubs that would be the most efficient for their beach.
 
== Discussion ==
 
Even though the simulation calculates the energies accurately when looking at other research, still multiple assumptions have been made in the simulation. The biggest assumption is that the robot is able to drive towards the litter in a straight line. Of course this is not the case on a real beach as there are hills, holes and most importantly, people. It is however believed that this assumption does not make the simulation useless, as it will be mostly used to compare different robots, which will both get the same 'advantage' of not having to avoid obstacles. Furthermore, evading obstacles will only be a small part of what the robot is doing and therefore the error will be unlikely to change the users opinion on the robot being effective enough or not.  


Two DustCart robots were tested for three months in the small town of Peccioli, Italy.  
Some requirements and specifications were not used in the model and simulation because they were not relevant to the necessary subsystems. For example, outside temperature and the size of the robot are not taken into account. Specifications such as surviving in water and the maximum cost of a robot were not used in the model. Most of the given requirements and specifications will however be useful when an actual beach-cleaning robot is designed.


''G. Ferri, A. Manzi, P. Salvini, B. Mazzolai, C. Laschi and P. Dario, "DustCart, an autonomous robot for door-to-door garbage collection: From DustBot project to the experimentation in the small town of Peccioli," 2011 IEEE International Conference on Robotics and Automation, Shanghai, 2011, pp. 655-660. doi: 10.1109/ICRA.2011.5980254''


===Future research===


'''System design of a litter collecting robot'''
To make the simulation even more reliable, more of the assumptions can be researched and if necessary removed and implemented in the simulation. A list of assumptions that can be added are the following.


Litter is a very big problem, because a broad study of annoyances of the Dutch public found that people rated litter to be more annoying than noise from neighbors and cigarette smoke. There is however a big difference between the places where most litter occurs, which are near sporting facilities and parking lots, and where people perceive it as annoying, which are mostly in shopping malls and on the beach. Furthermore, litter has more consequences than just annoyance. It can attract pests like rats and flies, which can result in human diseases. It can bring harm to animal life. It can increase the use of fossil fuel instead of recycling. It can reduce the sense of safety, and above all, can increase the amount of litter on the street, making this a negative spiral. To prevent this spiral, public places should remain clean.
'''Dark vision'''


Currently this is a hard human job with low profile. It is, however, important to keep humans involved in the job, because human cleaners in the streets have a social aspect. Using a robot that cleans most of the litter, and a human to show the robot where it missed certain litter or to help with cleaning up hard to clean litter, the human will have a physically easier job, and has more time for the social aspect of being in the area. It is also important to make the robot quiet and power efficient.  
The robot is assumed to work during bright lighting conditions. Further research could be done in putting lights on the system, which will cost more energy, but will make the robot see in certain directions in the dark. This will also influence the litter detection. This might be interesting because if you clean the beach later on the day, there will be less people. This means that less energy has to be used to avoid people. You do however get less energy from the solar panels and can get less help from the people around. Therefore this is an interesting trade-off that can be researched in the future.


To find the litter efficiently, the robot has a Portable Operator Device, allowing the human cleaner to make a picture of a new type of litter and send it to the robot, so that the robot will recognize it next time. To make the robot power efficient and quiet, a circle of plastic fingers were used and a flap that could close when litter was found. The fingers would then push the can into the hopper. To know where the litter is, scanning laser range finder and a camera were used. The camera takes a picture when the SLRF finds an object, and this image is compared to the litter pictures in the memory of the robot.


''G. Bonnema, "System design of a litter collecting robot"''  
'''Robot Cooperation'''


The robot is assumed to work alone, but it might be way more efficient to put multiple robots on a single beach with a single central hub. Algorithms for the cooperation of such robots would need to be researched. This offers again an interesting optimization problem, since it is not trivial to determine the optimal amount of robots.


'''Autonomous Robotic Street Sweeping: Initial Attempt for Curbside Sweeping'''


Street cleaning can be a coverage or a tracking problem, which both require localization, coverage path planning and tracking control. Using two fisheye cameras and projective transformation, a top view was gained and edge filtering, a Hough transform and RANSAC line fitting was used to find the sidewalk along which the robot has to drive.
'''Obstacle Avoidance'''


''J.Jeon, B.Jung, J.C.Koo, H.R.Choi, H.Moon, A.Pintado, P.Oh, "Autonomous Robotic Street Sweeping: Initial Attempt for Curbside Sweeping" ''
As stated above, obstacle avoidance has not yet been added to the simulation. Adding people that walk around and holes that are static to the simulation which the robot should move around would make the simulation more realistic.  




'''Coverage Path Planning for Mobile Cleaning Robots'''
'''Human Interaction'''


There are different ways in which a robot can do path planning in any given environment. The first way is Random Path Planning, in which the robot will move in a random direction until it is obstructed and will then chose a new random direction. A spiraling bias can be added to make this approach more convenient. A more sophisticated way to cover the whole area, is by using Exact Cellular Decomposition. This method splits the room into parts which are easier to cover. Which also makes it more efficient in places with obstacles. A variance on the Exact Cellular Decomposition is the Boustrophedon Cellular Decomposition, which does the same, but makes the parts so that it can be cleaned with a simple back and forth motion. A fourth method is a Backtracking Spiral Algorithm. Which does the same as a random spiral, but takes into account possible blocking objects by moving around them and adding the information gained of the object to make the spiral change shape so that the same places are not cleaned twice.
Human Interaction between the robot and humans has been thought of in this project, but not yet implemented in the simulation. With some extra research, this could improve the reliability of the program and the efficiency of the robots.
The solution proposed is an extended version of the BCD in 5 steps:


1. The robot moves to the outer boundary of the environment


2. The robot follows this boundary until it has completely circled it
'''Waterproof'''


3. A BCD of the environment is created
As the robot is moving on the beach, it might get wet. It has been assumed this is a task for the builder to take care of for now. With extra research this could also be included in the simulation and the subsystem guidance.


4. Create a list containing every cell. The first one is where the robot is


5. The cells are covered in sequential order
'''Robot Design'''


To make this also work in dynamic environments, the robot will continue scanning the room and adjusting the individual cells when detecting sensor or localization errors.
Apart from further research in the simulation, further research could also be done in the robot design. For a specific beach the best subdesigns could be chosen and integrated using the V model. This would mean that first the different chosen components will be build and tested, and afterwards they would be integrated step by step. This would mean that the frame would need to be designed specifically for the designs chosen and that for example the locomotion and the litter collection mechanisms work together perfectly. This would require many tests and revisions of the model to do correctly, and therefore this is something that can be done in future research. To protect the robot against the elements, a hull could be  designed.


== Planning ==
'''Gantt chart'''


'''Simultaneous Localization and Mapping'''
[[File:Gantt Chart PRE2017 15.png|border|800px]]


Simultaneous Localization and Mapping (SLAM) is for a robot to be placed at an unknown location in an unknown environment and for the robot to build a consistent map of its environment while simultaneously determining its location within the map. The problem with SLAM is that the true locations are never known or measured directly.


The probabilistic version of SLAM checks the highest probability for a landmark to be and the robot to be given the history of vehicle locations, the history of control inputs and the set of all landmark observations. The problem with this is that much of the error comes from when the robot wrongly estimates its position with reference to a landmark only once.


To find a solution to SLAM, the programmer needs to find an appropriate representation for both the observation model and motion model that allows efficient and consistent computation of the prior and posterior distributions in the time update step and the measurement update step.
Full size: [[File:Gantt_Chart_PRE2017_15.pdf]]


== Coaching Questions ==
== Coaching Questions ==


[[Coaching Questions Group 15]]
[[Coaching Questions Group 15]]
== References ==
<references />
</div>

Latest revision as of 21:07, 5 April 2018

Group members

Name Student ID
Ruben Beumer 0967254
Niek Blankers 0935876
Kyle van Oosterhout 0936196
Martijn Schipper 0951375
Martijn Timmermans 0956838

Introduction

Problem statement

Litter brings many problems to the society. First and foremost, people do not feel at ease when litter is present [1]. When ignored, it can take more than one hundred years for the litter to decay. This will cause a huge buildup of litter and in very extreme cases, it can attract pests such as rats and flies which in turn can result in the transmission of human diseases. It is not only dangerous to the people but also dangerous for animals or small children, which are unaware of the danger and might interact with the litter and thereby for example cutting themselves. The RSPCA, a charity organization operating in England who promote and investigate animal welfare, stated that they receive 14 calls per day regarding animals affected by litter.

Luckily, the government also recognizes that litter is a serious problem. Using manual sweeping with brooms, blowing tools or driving sweeping vehicles the streets are kept clean. This is a tedious, low profile job carried out by the people. Keeping the streets tidy is however certainly not cheap due to all the man-hours and equipment. In America, the government spends 11.5 billion dollars to keep the streets clean [2]. It might be possible however to automate this job. As often seen with robots, as soon as people are replaced with machines, the job can be performed cheaper, more efficiently and possibly more thoroughly.

It is well understood that the creation of any product takes much time to develop, build and thoroughly test. Therefore this paper does not pretend to give a full solution to this problem. Rather, the purpose of this paper is to make the next step towards fully autonomous cleaning robots. Luckily, it is not necessary to make the first step since research has already been done in this area and research groups have even performed some rudimentary tests with cleaning robots as can be read in the literature study.

From the literature study, it becomes clear that extensive research has already been executed. The theoretical groundwork has been done regarding the development of a robot which is able to collect litter in well paved environments such as the mall. Furthermore, it has been shown in “Inzamel- en beloningsystemen ter vermindering van zwerfafval”[3] that 76% of the people is very annoyed by the litter that lies on the beaches. Little research has been done on how a cleaning robot would operate on a beach. Operating a cleaning robot on sand is non-trivial, since the locomotion and collection of litter need to be specially designed to work in sandy environments. This paper tries to bridge a part of the gap in the research. More specifically, this paper shows the various trade-offs for every subsystem. Furthermore, the energy usage for every subsystem is estimated, in order for the robot to be simulated. With this simulation, the efficiency and behavior of the robot is shown, from which one can infer the usability. It is however possible that during testing it is discovered that the energy usage of for example the pickup system is slightly higher than estimated in this paper. This new value can be easily entered in the simulation, and again the feasibility can be estimated using the simulation. Of course there exist a great variety of beaches, and some robots might be more effective on some particular beaches than other. For this can also easily be compensated in the simulation. Lastly, the impact the robot has on the people is researched and possible solutions to the problems are offered.

Approach, milestones, and deliverables

To be able to reach our goal, first a literature study will be done to make sure the group is working on something that has never been done before, or do not perform more work than is necessary. Afterwards, the requirements set for the robot will be converted into specifications and subsystems according to the V-model. When this is done, the different subsystems will be divided over the group members to work on individually or in pairs. The focus here will be on the energy consumption and deliverance of the system as a trade-off for functionality. The exact planning and task division is shown in the Gantt chart. During the litter recognition and robot algorithm sections, a simulation will be made to show that the found algorithms and strategies are working and realistic. This simulation will be used to analyze the energy usage of the robot, based on the energy consumption of the subsystems. The specific milestones that we will deliver and their dates are as follows:

  • The first milestone that will be reached will be a complete literature study. This should be finished by the end of week 2.
  • The second milestone that will be reached will be a list of requirements, specifications and subsystems. This should be finished by the end of week 3.
  • The third milestone that will be reached will be when each of the individual subsystems are thoroughly researched and possible solutions are chosen. This should be finished by the end of week 5.
  • The fourth milestone that will be reached will be when the simulation of the algorithms and systems, using the energy consumption from the individual subsystems, is working completely. This will be finished by the end of week 6.
  • The fifth milestone that will be reached is a well written wiki page about the selection of subsystems, the human interaction and the simulation ending with a conclusion. This should be reached by the end of week 7.
  • The final deliverable of the project will be a selection of the subsystems that the robot could use, a simulation that shows the feasibility of this robot focused on energy consumption and the human interaction aspect of our robot.

State of the art: literature study

A beach being cleaned of washed up plastics[4]
Motivating beach visitors to pick up litter[5]

To find out what has already been done in the subject of litter robots, research has been done in the following areas:

  • Litter and waste - Where is litter situated and what is sensed to be the most annoying?
  • Path finding - How to move a litter robot in an unknown environment?
  • Litter detection - How to find the position of litter autonomously?
  • Robot movement - How does a robotic system that is designed for picking up litter move around?
  • Litter collection - How to pick up the litter after it has been detected?
  • Robot design - How to design a robotic system?

Litter and waste

We have identified the following issues around waste and litter:

  • Gum on streets: research shows that >10% of litter is gum. This highly disturbs 74% of people[3].
  • people should be motivated to segregate waste themselves[6]. Possible solution: robot that visits each home and asks them for their plastic / general waste products to motivate them to segregate waste.
  • People from India don't care about waste, as long as it is not in their homes[7].
  • Trash washing up on beaches.
  • Poor efficiency of street sweeping vehicles, dirt makes up 56% of what they gather[8].


Composition of litter

Litter can be decomposed into different groups which occur more or less in the streets. According to Rijkswaterstaat[1], out of big litter (excluding gum and sigaret buts), beverage packaging, take-away litter and paper are the biggest problems, accounting for 24%, 22% and 21% of the total litter respectively between 2008 and 2014. The total list can be found in the table below.

Type of litter Percentage of total litter
Beverage packaging 24%
Take-away waste 22%
Paper 21%
Other packaging 17%
Candy 10%
Plastics 3%
Unidentifiable litter 2%
Food remains 1%


The same research also gives the absolute numbers of the different litter types, including small litter:

Type of litter Number
Cigarette buts 18,794
Beverage packaging 16,379
Take-away litter 15,656
Paper 15,298
Other packaging 12,408
Gum 10,117
Candy 7,213
Plastics 1,850
Unidentifiable litter 1,737
Food remains 1,000

In Utrecht an analysis was done of materials collected by sweeping machines, which found that 88.5 ton out of the 156.8 ton collected was sand. This means that 56% of the effort of sweeping is wasted on sand.


Annoyances (caused by trash)[3]

The list below shows the response of (Dutch) citizens when asked about their daily annoyances.

  • Litter besides the road: 92% (62% very annoyed, 30% somewhat)
  • Loud noise: 64% (28% very annoyed, 36% somewhat)
  • Litter on beached: 95% (76% very annoyed, 19% somewhat)
  • Full trashcan: 77% (40% very annoyed, 37% somewhat)
  • Traffic jam: 26% very annoyed, 33% somewhat
  • Paper/cigarette butts/chewing gum on streets: 64% very, 30% somewhat

Furthermore: when asked, citizens state that they see 27% of all litter in the shopping mall, 15% on the beach and 13% on parking lots.


Litter positions

According to EcoConsult in 2014[1], the following indication scores were given for big and small litter (a high indication score means a clean environment):

Area Score big litter Score small litter
Average 3.56 3.44
Recreational area 4.15 4.04
Water recreational area 3.91 3.86
Business area 3.35 3.60
Shopping area II 3.69 3.45
Shopping area I 3.37 3.19
Residential area III 4.01 4.04
Residential area II 3.85 3.80
Residential area I 3.53 3.48
Event/Sporting centers 3.46 3.40
Access road 3.47 3.68
School area 3.35 3.42
Parking lots 3.08 2.62
Public transport 3.25 2.85
Catering/Entertainment centers 3.59 3.14
Shopping malls 3.50 3.07

As a conclusion we can state that parking lots, public transport and Shopping areas in urban cities have the most litter.

At the parking lots, most of the litter is caused by take-away packages, sigaret buds and beverage packages. Citizens also believe these places are filthy as stated by Gemeente Schoon in 2010 and 2012. The most plausible reason to believe parking lots have so much litter is that people stay only for a limited time and therefore they have little bonding with the area. In addition, creating litter from inside a car can be done relatively anonimous.

Near public transport areas, litter is caused mostly by people that need to be quick to catch a bus or train, because they do not prioritize putting there litter into a bin over catching the train or bus, especially when the closest garbage bin is full. The litter consist mostly of packages of food or drinks bought at the station.

Shopping areas are one of the most important areas because people think that when the shopping area has much litter, the whole township is filthy. As expected, most of the litter in shopping areas are bags and packages of items bought in the shopping area. Most litter occurs during peak visiting hours because litter attracts more litter.


Encouraging dustbin designs

Several dustbins have been developed to encourage people to throw their trash into it by rewarding them when they do so. An example is the ‘WiFi Trash Bin’, invented by Raj Desai and Pratik Agarwal, the founders of the startup ThinkScream. When someone throws something in it, this plastic bin shows an access code for a WiFi-network on a LED screen, giving them access to the network for 15 minutes. It has been tested at the NH7 Weekender music festival in 2014, where six of these smart bins could be used by the visitors. After the festivals in Bangalore, Delhi and Kolkata, over ten thousand people had used the bin[9].

In the Netherlands, a well-known example of interactive dustbins are the ‘Holle Bolle Gijs’ bins (and variations of it), used in the Efteling. These bins ask people in the theme park to throw their waste in it and thank them afterwards or react in another way. Sometimes children even start to look for other waste to throw it away in the park due to this creative invention. Inspired by these bins, the cities Tilburg and Eindhoven organized a design contest for interactive dustbins in 2017. The contest was won by Francien Fleuren and Marcel Lamers with their ‘Trash Tree’ that works on solar energy, lights up in the dark and makes a bird sound when something is thrown in, referring to the positive effect on the environment. Before the contest, in the Henri Dunantpark in Eindhoven, there was already a pilot with an interactive dustbin, which according to alderman Yasin Torunoglu helps to achieve a cleaner environment. In September 2017, also in Bergen op Zoom, some garbage bins have been equipped with a built-in speaker to react to people in a funny way after throwing away their trash[10][11][12].

Another example is ‘The world’s deepest bin’, an experiment in the context of an initiative called ‘The Fun Theory’ by Volkswagen. A video on their website shows a trash bin in a park that makes a sound as if the trash that people throw in it falls very deep. During one day, 72 kg of rubbish was collected in this bin, which was 41 kg more than the normal bin just a small distance further. Some scientifically critical questions about results of this experiment could be asked, e.g.: Did the people throw in their trash in this bin instead of in the normal bin and not instead of throwing it on the ground, so that the total reduction of litter is less than the results suggest? Would the results still be so promising if the experiment was done for a longer period, or would the people start finding it less interesting in the long-term? However, when these bins would for example be used in touristic places, where are different people and a lot of children each day, these kind of interactive dustbins will probably significantly decrease the amount of litter, similar to the dustbins in the Efteling as described above[13].

General

RoboEarth[14]

Thousands of robotic systems deal with and try to solve the same essential problems. This article is about a design and first implementation of a system for sharing knowledge between robots. The data, independent of specific robot hardware, is collected, stored shared and linked by RoboEarth, using existing standards. This enhances robot learning and adaption in complex tasks. Besides, robots using RoboEarth can execute tasks for which they were not explicitly designed for. The implementation is based on an architecture of three layers: a server, generic components and a robot specific layer. The server holds the database in which it stores a global world model with information on objects, environments and action recipes. It also provides basic reasoning Web services. The main purpose of generic components in the second layer is to allow robots to interpret the action recipes. The third layer provides a generic interface to a robot’s specific (hardware-dependent) functionalities via a skill abstraction layer. For our project, a RoboEarth-like system would in particular be very useful to recognize litter, both using the information about objects (what is litter and what not) as well as about the environments (to be more efficient in finding the litter). The information about actions could be useful for picking up the litter, depending on what system we will use.


Springer Handbook of Automation, chapter 70: Cleaning Automation [15]

Especially in the domain of cleaning, service robots already provide many different options for relieving people of dangerous, stressful, and/or monotonous work and are penetrating both household and professional market sectors. Household systems have technically simple and low-cost designs and are already being sold in large numbers. Professional systems are technically complex, flexible, cost effective, efficient, and easy to operate. However, since they fail to fulfill the requisite criteria in many cases, they have not yet established themselves as mass products. Nevertheless, numerous individual solutions exist for special applications such as facade or pool cleaning.

To the extent that they do not fully navigate surfaces when geometries are more complex or environments are dynamic and generally can neither navigate themselves nor coordinate tools better than humans, professional cleaning robots’ sensory and cognitive capabilities continue to limit their universal and cost-effective use. Such cleaning robots will not become mass products until their cost effectiveness, performance, efficiency, and total attendant costs make them superior to manual cleaning. Further development of service robots’ cognitive capabilities, environment modeling sensor systems, and multimodal user interfaces is being pursued worldwide for other fields of application and is a fundamental prerequisite to establishing cleaning robots in the professional sector.


New Brooms Sweep Clean – An Autonomous Robotic Cleaning Assistant for Professional Office Cleaning[16]

In this paper, a prototype autonomous robotic cleaning assistant, that can both clean floors and clear trash bins in offices, is presented. It was realized on a Care-O-bot 3 platform, a multi-purpose service robot. The arm was upgraded with a tool changing interface from Schunk, which enables switching between a three finger hand for clearing bins and a vacuum cleaner for cleaning floors. A tool trolley is used to carry containers for waste and fixtures for detached tools. In short, the robot first inspects all rooms to find the polluted locations and will directly clear all found trash bins into the waste container of the trolley. Then, it changes its three finger hand for a vacuum cleaner at the trolley and attempts to clean all spots from the polluted locations list. Afterwards, the robot verifies the cleanliness and stores the information so that the operator can clean the remaining spots and inform the system about false alarms to improve its behavior. The most important functional modules are:

  • Map Segmentation: results in ‘room’-sizes between 15 and 80 m2 and allows for planning a good trajectory through the environment.
  • Exploration Algorithm: optimizes the sequence of entered rooms as a traveling salesman problem (TSP), using a quite extensive algorithm, also taking the minimal amount of trolley positions and the time it costs to move to the trolley to clear a trash bin into account.
  • Dirt Detection and Learning: A visual dirt detection method is applied which judges on a per image basis without any need for learning the patterns of the clean ground or the appearance of any pollution and can detect spots occupying an area of >5 mm diameter. This method is explained in the two articles above. It is extended to learn from the operator using the check for false alarms as described above.
  • Trash Can Cleaning: The detection of attached markers on bins proved most reliable and computationally economical compared to other approaches for object recognition and can be used in the real world. The MoveIt framework is used for arm movement to grasp a bin.
  • Tool Change: using an industrial interface combined with visual servoing methods for automization. The tool are connected mechanically by closing an inner rotational lock and electrically using a CAN bus interface.
  • Vacuum Cleaning: The vacuum cleaner is placed on the ground and the robot drives back and forth or left and right to clean the spot. Within narrow areas, the arm itself is moved.

The test showed that although it was a first prototype, it already worked surprisingly well. Using the learning algorithm, the reported pollution precision was increased from 62% to 89%. In summary, 90% of the trash bins could be cleared and 86% of the dirt was removed, with a speed performance of approximately 120 m2 per hour (4 times less than a professional, but many improvements are suggested).

Path finding

Path Planning for Complete and Efficient Coverage Operation of Mobile Robots[17]

The paper presents a method for mobile robots to perform area coverage tasks where completeness and efficiency of coverage are important. The method can be used for robotic de-mining, cleaning, painting, etc.

It is assumed that the robot is operated in an enclosed indoor environment and it knows its map in terms of occupancy grids.

A divide and conquer strategy is employed for efficiency. A cell decomposition algorithm divides the given area into cells (sets of grids):

  1. Occupancy grid maps are rotated along their orientation invariant angle so that two identical maps with different rotation result in the same maps.
  2. The given area is decomposed into cells based on the change in free space segments for each 'slice' of the map.
  3. Noisy cells (created due to complex structures and sensor noise) are merged into larger neighbor cells.

Next, the path is generation for efficient area coverage.

  1. Predefined template paths are generated for each cell (back and forth or spiral motion) to find an optimal path to cover them. Predefined templates are used to reduce computational complexity.
  2. A path for the overall area is formed from the path that requires minimum time for each cell. A graph search algorithm is used for this purpose.


Coverage Path Planning for Mobile Cleaning Robots[18]

There are different ways in which a robot can do path planning in any given environment. The first way is Random Path Planning, in which the robot will move in a random direction until it is obstructed and will then chose a new random direction. A spiraling bias can be added to make this approach more convenient. A more sophisticated way to cover the whole area, is by using Exact Cellular Decomposition. This method splits the room into parts which are easier to cover. Which also makes it more efficient in places with obstacles. A variance on the Exact Cellular Decomposition is the Boustrophedon Cellular Decomposition, which does the same, but makes the parts so that it can be cleaned with a simple back and forth motion. A fourth method is a Backtracking Spiral Algorithm. Which does the same as a random spiral, but takes into account possible blocking objects by moving around them and adding the information gained of the object to make the spiral change shape so that the same places are not cleaned twice. The solution proposed is an extended version of the BCD in 5 steps:

  1. The robot moves to the outer boundary of the environment
  2. The robot follows this boundary until it has completely circled it
  3. A BCD of the environment is created
  4. Create a list containing every cell. The first one is where the robot is
  5. The cells are covered in sequential order

To make this also work in dynamic environments, the robot will continue scanning the room and adjusting the individual cells when detecting sensor or localization errors.


Simultaneous Localization and Mapping[19]

Simultaneous Localization and Mapping (SLAM) is for a robot to be placed at an unknown location in an unknown environment and for the robot to build a consistent map of its environment while simultaneously determining its location within the map. The problem with SLAM is that the true locations are never known or measured directly.

The probabilistic version of SLAM checks the highest probability for a landmark to be and the robot to be given the history of vehicle locations, the history of control inputs and the set of all landmark observations. The problem with this is that much of the error comes from when the robot wrongly estimates its position with reference to a landmark only once.

To find a solution to SLAM, the programmer needs to find an appropriate representation for both the observation model and motion model that allows efficient and consistent computation of the prior and posterior distributions in the time update step and the measurement update step.


Complete Coverage Navigation of Cleaning Robots Using Triangular-Cell-Based Map[20]

In this paper, a novel navigation method is presented for a cleaning robot, which can work well in a completely unknown workspace. First, a new triangular-cell-based map representation that enables a cleaning robot to have more navigation directions is presented. While the rectangular-cell-based map has eight navigation directions, the triangular-cell-based map increases the navigation directions to 12. This increase makes the navigation path shorter and more flexible. Second, a complete coverage navigation and map construction method is presented, which enables a cleaning robot to navigate the complete workspace without any information about the environment. To generate a complete coverage navigation path without prior information of the environment, the wall-following navigation was first performed. Through this procedure, a cleaning robot can obtain the information of the contour of the environment. Then, basic templates were introduced as means for local navigation. To find the uncovered region and determine the local direction, the distance-transform method was also adopted. With the use of simulations the effectiveness of the approach was verified.


Complete Coverage Path Planning and Guidance for Cleaning Robots[21]

This paper describes a complete coverage path planning and guidance methodology for a mobile robot, having the automatic floor cleaning of large industrial areas as a target application. The proposed algorithms rely on the a priori knowledge of a 2D map of the environment and cope with un- expected obstacles not represented on the map. A template based approach is used to control the path execution, thus incorporating, in a natural way, the kinematic and the geometric model of the mobile robot on the path planning procedure. The novelty of the proposed approach is the capability of the path planner to deal with a priori mapped or unexpected obstacles in the middle of the working space. If unmapped obstacles permanently block the planned trajectory, the path tracking control avoids these obstacles. Tests with the mobile robot LABMATE show that satisfactory floor coverage can be obtained using a template approach even when there are mapped or unmapped obstacles present in the interior of the cleaning area.


Mobile Robot Positioning: Sensors and Techniques[22]

This article presents an overview of existing sensors and techniques for mobile robot positioning. The foremost conclusion that was drawn from reviewing a vast body of literature was that for indoor mobile robot navigation no single, elegant solution exists. For outdoor navigation GPS is promising to become the universal navigation solution for almost all automated vehicle systems.

Litter detection

Vision-Based Coverage Navigation for Robot Trash Collection Task[23]

This paper describes an algorithm to optimally find and pickup trash and benchmarks this against existing algorithms. The proposed algorithm consists of four distinct steps

  1. Follow the wall to obtain the contour and size of the working space. By doing this the working space can be split up into rectangular cells.
  2. Scan for garbage in the current cell
  3. Find and move to an unvisited area. Repeat step 2 and 3 until all areas have been visited.
  4. Deposit trash and move back to initial location

Step 3 is implemented using the 'Boustrophedon Path-Planner' algorithm and a random path planner. It turned out that the 'Boustrophedon Path-Planner' performed better.


A Visual Dirt Detection System for Mobile Service Robots[24]

This article described a method to detect dirt on floors that are monochrome or have at least some repetitive pattern. The data from a RGB-D sensor (color camera with depth-sensor) is processed in four main steps (last two combined):

  • Plane Segmentation: This step finds the part of the image in which the floor can be seen, using the depth-information from the sensor. It basically looks for a plane that contains the most points to satisfy a particular plane equation (ax + by + cz + d = 0).
  • Spectral Residual Filtering: This step filters out the background of the floor image leaving only the innovation part, by finding the deviations from the statistical mean of the logarithmic amplitude spectrum (using the Fourier transform) of each channel (R, G and B) of the image.
  • Rescaling and Thresholding: Artificial dirt is added to the floor (2 black and 2 white spots) causing extrema in the response, which are used to rescale the response of the whole image in order to prevent the normal patterns in the floor to be seen as dirt, in particular when there is no real dirt. The spots in the rescaled dirt image with an intensity above a certain threshold are selected as dirt.

Depending on the floor background structure, 52.6% to 92.5% of the dirt was detected, with a positive false rate of only a few percent. Depending on the surface, problems such as very dark and small objects not being recognized as dirt, or light reflection causing false positives could occur. Further, the algorithm proved to be able to cope with changing surface material and texture to some extent. However, large scale dirt stains (such as from coffee) are filtered as background with this approach. Remark: In this article I read “Tidying up larger objects was demonstrated at the Robocup@home challenge by the team of robot Eraser.” Finding more information about this could be useful for our project as well.


Autonomous Dirt Detection for Cleaning in Office Environments[25]

Here, an extended/improved version of the dirt detection system from the previous article is explained. Two of these extensions are a large, publicly available database of dirty ground floors (65 different kinds of dirt recorded at 5 floor materials) and a testing framework to use this database. All data is recorded using the service robot Car-O-bot 3. The integrated laser scanners and RGB-D camera Microsoft Kinect were used to localize the robot and dirt, so that the detection could be integrated in a map. To enable this mapping and because the camera might not always operate in the same position above the ground, a perspective normalization is applied after the plane segmentation described in the previous article. To do this, a homography which transforms the ground plane as seen in the camera image into a plane seen from a (virtual) bird’s eye view is estimated. The steps ‘Spectral Residual Filtering’ and ‘Rescaling’ from the previous article remained the same, although they are here referred to as ‘Saliency Computation’ and ‘Saliency Normalization’. At the ‘Dirt Thresholding’-step, they now implemented an option to exclude the pixels that belong to strong lines from the thresholding operation, since these strong lines are often caused by transitions between bright and dark (background) surfaces and result in false detections. The advantages of dirt mapping are: (1) fusion of multiple observation to strengthen certainty, (2) option to temporally separate inspection and removal and (3) enable verification and feedback. Another threshold could now also be used to determine what is seen as dirt or not can be used: the amount of frames in which a spot is detected as dirt (possibly as a ratio of the total amount of frames in which the spot is captured). Depending on both threshold values, different detection and false positive rates can be achieved: for example about 90% detection and 45% false positives, or about 100% detection and 85% false positives (averaged over the different dirt and floor types). The performance could even be improved when for example different threshold values would be used for different floor types. The system however still does not take larger (3-dimensional) litter into account, and of course fails when dim lighting prevents dirt from becoming visible in the image at all, even for humans.

Robot movement

Autonomous Robotic Street Sweeping: Initial Attempt for Curbside Sweeping[26]

Street cleaning can be a coverage or a tracking problem, which both require localization, coverage path planning and tracking control. Using two fisheye cameras and projective transformation, a top view was gained and edge filtering, a Hough transform and RANSAC line fitting was used to find the sidewalk along which the robot has to drive.


Principles of appendage design in robots and animals determining terradynamic performance on flowable ground[27]

This paper shows an approach to control (and vary) the ground penetration resistance of a granular substrate using continuous upward airflow through a fluidized bed. This technique is used to investigate the influence of ground strength on the locomotion performance of robots (a bio-inspired hexapedal robot called SandBot and numerical simulations for the Xplorer robot) and animals (four lizard-like species and a crab). They found that locomotor performance was strongly correlated with the foot pressure. Generally, the experimental and simulated results followed the same trends: for small leg penetration ratios (foot pressure relative to penetration force per unit area per depth and leg length), the locomotion performances only decrease slightly, but for larger penetration ratios, the performance started to decrease substantially, probably due to drag of the ventral surface. This also provides an explanation to the fact that the performance of some animals was more sensitive to the ground penetration resistance differences in the investigated range than for other animals: graphs made with normalized average speed and leg penetration ratios showed very similar data points for all species. The data points for the robots also showed similar behavior, except that animals could still maintain ≥50% of their speed on fully fluidized ground, suggesting that they likely combine passive and active control to diminish the decrease of performance on low stiffness substrates. The most important conclusion from this article for our project is that we could use relatively large foot and a light body (i.e. smaller foot pressure) when possible, to minimize leg penetration ratio and stay within the ‘insensitive’ region to ground stiffness change, in particular when we use a legged robot. Of course, the body should not be too close to the ground to prevent extra friction for substrates with a low ground penetration resistance.

Robot design

System design of a litter collecting robot[28]

Litter is a very big problem, because a broad study of annoyances of the Dutch public found that people rated litter to be more annoying than noise from neighbors and cigarette smoke. There is however a big difference between the places where most litter occurs, which are near sporting facilities and parking lots, and where people perceive it as annoying, which are mostly in shopping malls and on the beach. Furthermore, litter has more consequences than just annoyance. It can attract pests like rats and flies, which can result in human diseases. It can bring harm to animal life. It can increase the use of fossil fuel instead of recycling. It can reduce the sense of safety, and above all, can increase the amount of litter on the street, making this a negative spiral. To prevent this spiral, public places should remain clean.

Currently this is a hard human job with low profile. It is, however, important to keep humans involved in the job, because human cleaners in the streets have a social aspect. Using a robot that cleans most of the litter, and a human to show the robot where it missed certain litter or to help with cleaning up hard to clean litter, the human will have a physically easier job, and has more time for the social aspect of being in the area. It is also important to make the robot quiet and power efficient.

To find the litter efficiently, the robot has a Portable Operator Device, allowing the human cleaner to make a picture of a new type of litter and send it to the robot, so that the robot will recognize it next time. To make the robot power efficient and quiet, a circle of plastic fingers were used and a flap that could close when litter was found. The fingers would then push the can into the hopper. To know where the litter is, scanning laser range finder and a camera were used. The camera takes a picture when the SLRF finds an object, and this image is compared to the litter pictures in the memory of the robot.


United States Patent Mobile Robot for Cleaning[29]

This patent describes multiple designs for a robotic cleaner. A robotic cleaner includes a cleaning assembly for cleaning a surface and a main robot body. The main robot body houses a drive system to cause movement of the robotic cleaner and a microcontroller to control the movement of the robotic cleaner.


Development of Outdoor Service Robot to Collect Trash on Streets OSR-01[30]

This paper describes the design of an autonomous robot which is to be used to collect trash on the streets. The robot has two wheels to move but drives an already provided route. To avoid objects it uses four 2-D laser range finders. It is currently only able to pickup PET bottles using a hand with five degrees of freedom. It can detect objects using a omni-camera. To measure the distance to the object, it uses two additional cameras. The image recognition is done using a technique known as 'template matching'. This means that the robot has a large library of objects labelled as trash which it compares to the images received from the omni-camera. If the images are sufficiently similar, the robot will pick it up.


Development of Outdoor Service Robot to Collect Trash On Streets OSR-02[31]

This is a follow up on the previous paper. For the new prototype, dubbed OSR-02, an extra hand is added. This allows one hand to hold a trash bin while the other can put the trash in it. Furthermore, the wheels are replaced with crawlers. The sensors and detection system was were kept the same. More detailed tests were also documented, showing that the OSR-02 is able to get over a ditch of 180 mm in width. The robot was also tested in public space, where it was able to successfully pickup plastic and glass bottles in the route and able to avoid pedestrians.


A Study on Development of Home Mess-Cleanup Robot McBot [32]

This paper describes the design of an autonomous robot which is to be used to cleanup indoors. The robot has two arms to grasp the object and a lifting support. Objects are recognized by a RFID tag. After an object is picked up, it is able to place on for example a shelf. Self localization is done by placing RFID tags on the ground.


Educational Outdoor Mobile Robot for Trash Pickup [33]

Inspired by the 'Push the Talking Trash Can' of Disney, an interactive low-cost outdoor mobile trash can is designed. With this robot, they aimed to raise environmental awareness, help clean up the environment and promote robotics education among children. The robot is also equipped with a low-cost air quality monitoring system. They purposely avoided autonomous robot because it minimizes control by children and they will find it more fun and have a sense of accomplishment by interacting with, and remotely controlling the robot. Also, autonomous is difficult because the roads in underdeveloped countries often have potholes, uneven construction etc making it difficult to navigate effectively. On the robot a LCD display is mounted to display the air quality and broadcast messages and animations. It can be controlled remotely using smart phone/tablet. The materials used in the construction costed less than 250 dollar.


A Multi-Robot System for Continuous Area Sweeping Tasks[34]

A trash collecting robot performs a so-called 'continuous area sweeping' task. With this task, a robot must repeatedly visit all points in a fixed area. This paper extends this task to multi-robot scenarios.

The approach described in this paper is not to simply send the robots along the same routes again and again, but to sweep based on a task-dependent cost function. For example, when removing trash robots should prioritise heavily-trafficked areas.

The paper mostly focuses on dividing the overall area between multiple robots.


DustCart, an autonomous robot for door-to-door garbage collection: from DustBot project to the experimentation in the small town of Peccioli[35]

DustCart is an autonomous garbage collecting robot. It can navigate urban environments with static and dynamic obstacles. Users can request a garbage removal after which the robot is dispatched, interacts with the user through a touchscreen interface, and receives a garbage bag. Next, it moves to a site where the garbage is deposited. DustCart monitors air quality, temperature, and humidity along the way.

Two DustCart robots were tested for three months in the small town of Peccioli, Italy.

Design process

Heuristics

In the conceptual phase, there are a few heuristics to the design process, namely[36]:

  • The choice between architectures may well depend upon which set of drawbacks the client can handle best.
  • Extreme requirements should remain under challenge throughout system design, implementation and operation.
  • Do not assume that the original statement of the problem is necessary the best or even the right one.
  • No complex system can be optimum to all parties concerned, nor all functions optimized.
  • A model is not reality.
  • Complex systems will develop and evolve within an overall architecture much more rapidly if there are stable intermediate forms than if there are not.
  • Build in and maintain options as long as possible.
  • Do not make an architecture too smart for its own good.

The conclusions that can be taken from this are that the design will have to have intermediate forms of the design during the design, which will be interpreted in a robotic system as different sub systems that work on their own. Also the system should not be smarter than it should be, meaning in this context that the robot should only save the information that it needs and have the options to do things that make sense according to the designer rather than making it think about those options itself.


V-shaped design

V-shaped design[37]

The heuristics of the conceptual design make the use of V-shaped design very logical. According to the book The Design of High Performance Mechatronics, in time, first the functional requirents should be determined, which should move past the system design, subsystem design and detailed design (element design) by decomposition and defenition in the conceptual phase. Afterwards the opposite way should be taken for the implementation. This however is not relevant for the design phase.


Conclusion

From the two perspectives stated in the previous sections, it becomes clear that first of all the functional requirements should be determined and subsequently converted into specifications. These should then be decomposed into subsystems which can be divided among the designers. The designers will, in turn, decompose the subsystems into elements that can be individually designed. Furthermore, the behaviour of the robotic system will be needed to designed, making sure the robot is efficient and complies to the requirements.

Concept of operation

As soon as the robot has recognized litter it will move towards it. It does this using a specially designed locomotive system which is able to drive over the sand. While driving towards the litter, it will need to actively avoid other beachgoers and holes in the ground using its sensors. When it has arrived at the litter, it needs an system responsible for the collection of litter. Because the object is likely surrounded by a lot of sand, a sand filter might be needed to separate the litter from the sand. Upon collection of the litter, it should store it in its litter storage container. When the storage container is full, it should drive to a central hub where it is able to drop the litter off. To make sure the robot does not run out of energy, various energy related calculations need to be made to ensure that the battery of the robot is large enough and that it is possible to recharge the battery. Since there might be other robots that are also collecting litter, there is a strategy for robot cooperation. Finally, human interaction is taken into account. To do the actions and make its decisions, it uses software/algorithms.

From this concept of operation, we can now derive the following subsystems:

  • Litter recognition
  • Locomotion
  • Sensors to avoid beachgoers and holes
  • System for the collection of litter
  • Sand filter
  • Litter storage container
  • Central hub
  • Energy related calculations
  • Robot cooperation
  • Human interaction
  • Robot software/algorithms

Stakeholders

The most important stakeholders are the beachgoers. They are the ones which have a problem with the litter on the beach and preferably want all of the litter to be removed. Multiple studies [3] [38] have reported that a reduction in litter leads to people feeling more safe. Also, families will prefer to go to clean beaches, so they have to worry less that their children will be harmed by, for example glass which hides in the sand. Even though the beachgoers will like clean beaches, it is also very important to them that they can enjoy the beach. This means that the robot should not produce too much noise, as this will annoy the beachgoers. Also, one can imagine that it will annoy the beachgoers greatly if the robot bumps into people. This however may not be enough for all beachgoers, as some would prefer the robot to keep its distance so it does not enter their ‘personal space’.

The children are also a very important stakeholder which will need to be taken into account. They will have a great interest in the robot and want to play with it. It is therefore important that this is safe for both the child as well as the robot. This means that the robot is unable to do harm to the child, but also that the child is unable to break the robot.

Enterprises, such as restaurants or ice cream stalls, will also benefit from the reduction of litter. As already stated, beachgoers prefer a clean beach over a littered one. This means that people that want to go to the beach are more likely to choose the clean beach, which leads to more customers for the enterprises. The enterprises would furthermore like a robust robot, which is able to withstand great external forces. They also prefer it to be as cheap as possible, and keep the maintenance cost low. It should be easy to replace specific parts if they break down, so they do not need a dedicated engineer to fix the robot which will help keeping the maintenance costs down.

In addition, the local government will have great interest in the design of such a robot. As already stated, in the U.S.A. they have to spend 11.5 billion dollars on cleaning the litter. Therefore any help to decrease this cost be welcome to them. It might be even possible for the enterprises to ask for a subsidy for which in return the enterprises will keep the beaches clean. This makes the design of a cleaning robot even more interesting for the enterprises.

There might also be an operator required, but this can only be determined at a later stage of the design process. An operator might be required to control the robots whenever the algorithm on the robot will not lead to the correct results, help them with cleaning where necessary and help resolve issues for example when the robot is attacked by teenagers or wrongly identifies a purse as litter. This mainly depends on how well the software is at autonomously controlling the robot, and how well the vision system is able to identify the litter. If an operator ends up being necessary, there should be a clear and intuitive interface to control and/or help the robots.

System requirements and specifications

Requirements

Before something can be said about the robots requirements and specifications a couple assumptions have to be made about the environment that the robot will work in. The following assumptions have been made:

  • The robot will not be vandalized by people.
  • The litter that is on the beach is not stuck to anything, for example a plastic bag caught under a beach chair.
  • The litter does not weigh more than 1 kg.
  • The litter is not too large to be picked up by the robot's litter collecting mechanism.
  • The terrain the robot works in will mostly consist of sand.
  • The temperature is between -10 and 40 °C.
  • The robot will work in moderate to bright lighting conditions.


The obvious system requirements that can be taken from the problem statement are the following:

  • The system must be able to recognize objects and determine what is litter and what not. This is important because the robot should not pick up items dropped by for example kids and throw them away like litter, but the robot should still be able to distinguish enough litter to make the beach significantly cleaner.


  • The system must be able to collect litter. It is very important that the robot is not only able to detect what is litter and what is not, but that it is also able to pick up the litter in order to make the beach a cleaner place.


Less obvious system requirements that can be added are:

  • The robot should not carry too much sand. On a beach the chances are big that the robot will also pick up sand instead of litter. This however is inefficient, because it takes op storage place and it will weigh the robot down, making it less power efficient.


  • Can not topple because of external forces. It would be highly unfortunate if the robot would fall over because of strong winds or waves. This is because the robot will likely be unable to stand up and humans will have to come and pick it up. This is not only highly inefficient, but it will also cause annoyance to beach visitors, because it will be an obstacle in both their view and their paths.


  • The robot needs to be able to move reliably over sand and mud. Because the robot will be moving over the beach, it is highly necessary that the robot can move reliably over sand and mud, for the same reasons as the toppling. If the robot gets stuck in the sand this will be inefficient and annoying for the beach visitors.


  • The robot should not float in water. Floating on water will likely cause the robot to topple over when a wave of water comes. Also, if the robot is floating, it will not be able to pick up any litter reliably anymore. Therefore it is easier for the robot to stay on the ground even when there is water on top of it, so that it can continue its job.


  • The robot needs to be waterproof. On the beach the chances of a wave hitting the robot are large, therefore the robot needs to be waterproof in order to keep functioning after a wave hits the robot.


  • The robot should be able to operate on battery power, optionally combined with renewable energy sources. Because the weather is an unknown factor, renewable energy sources on their own will make the robot too reliant on external factors. Therefore the robot should be able to work on a battery as well.


  • The cost of a robot should not be too high. If the robots costs would be too high, it would never be bought to clean up beaches, therefore the costs have to be low.


  • The robot should avoid large holes. Even though the robot can move over sand, it is possible that it will fall into a hole that it cannot get out of, therefore it is better to always avoid these holes.


  • The robot should be able to pick up litter of varying size. Litter is never always the same size, a can is a different size than a bottle for example or a potato chip bag. Therefore, to pick up as much litter as possible, the robot needs to be able to handle more than one specific kind of litter.


  • The robot should be able to carry enough litter with it. The robot will be highly inefficient if it would need to return to a central station everytime it picked up a single piece of litter. Therefore the robot will need to have enough storage room to carry litter.


  • The robot should be able to deposit collected litter in a central location. As the storage room of the robot will be finite, the robot will need to dispose of the litter it collected in some way to continue gathering more litter afterwards.

Social requirements

Besides the technical requirements, there are also various social issues the robot will need to deal with. The designed robot needs to interact in an environment with many stochastic agents. One might imagine that such a robot will attract the attention of many young children. These children might for example want to stand on it, or try to hinder the operation of the robot. Therefore the robot should be very robust. Besides from other agents harming the robot, it should also be impossible that the robot harms other agents. This means that at the very least, sensors should be installed to avoid running in to people. Lastly, we should be aware of how the robot will change the people in its environment. One might postulate that the existence of such a robot means that the people will become lazy. In one study [38], a school placed an interactive bin inside the canteen which would give positive feedback if students threw their litter in. This resulted however in a huge mess around the bin because students were trying to threw their litter as hard as possible in the direction of the bin.

Being in such a rich environment with other agents brings however also some advantages. No system is perfect which means that the system will sometimes fail. It is for example very hard for a robot to classify what is junk, and what is not. If a robot is in doubt however, it could simply ask nearby agents or a human operator by for example sending a picture of it. In the case where somebody for example drops their bottle, it could be on accident. When the robot detects this, it could pick it up and give it back to the one that dropped it. The robot also should not clear away toys of children, and if possible try to avoid demolishing their sand castles when operating. Furthermore, it is possible to use the fact that most people want to relax on the beach. When the robot detects that it is in danger because for example children are hitting it, it could sound an alarm. This will annoy nearby people, and they can chase away the children to make the robot stop it's alarm. Lastly, it is possible that the robot gets stuck. Asking for the help of other agents or a human operator could be again a simple solution to this problem.

The requirements can be led back to Isaac Asimov's three laws of robotics:

  1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
  2. A robot must obey the orders given it by human beings except where such orders would conflict with the First Law.
  3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Laws.

Specifications

These requirements can be decomposed into the following specifications Please note: currently these are best-guess values to give an idea of the order of magnitudes.

  • Pick up 9 out of 10 items defined as litter on a sandy environment. The robot needs to reliably pick up litter. 90% seems like a good number because there will always be litter that the robot will not see or will not be able to grab.


  • Produce less than 50dB of sound. An average human conversation is between 40dB and 60dB. Therefore 50dB will be unlikely to annoy the people on the beach more than a conversation of a group of people next to them.


  • Keep at least 1 meter distance from humans. Coming too close to humans might frighten them or harm them. A one meter distance is a safe distance which is not too close to harm the human, nor too far to ask the human for help if necessary.


  • Do not pass humans more than 2 times in 10 minutes. People will get annoyed if the robot will pass them too often, as it still makes sound and blocks the view. It is estimated that 2 times in 10 minutes will be an acceptable amount of time which the robot will be in the sight of the people.


  • Maximally 10% of the picked up weight is sand. In normal garbage cans, 56% of the weight is sand. In this project, the robot is supposed to actively get rid of this sand. This means about an 80% decrease from the average garbage bin. This seems like a reasonable number.


  • Move at at least 2 m/s on sand. An average human walks at 1.4 m/s. The robot should be just a bit faster to be able to avoid getting closer than 1 meter to humans more easily, therefore 2 m/s seems like a good speed.


  • Survive in water of the same height as the robot for 2 seconds. A wave crashing over the robot will put the robot underwater for about 1 second. To be safe, the robot should be able to survive two of those waves immediately after each other.


  • Operation time of at least 1 hour without recharging, recharging within 30 minutes or a battery replacing system or another way to obtain energy such as solar cells. A one hour operation time is a good estimation for the robot to pick up the maximum amount of litter and returning, as it will need to pick up 25 pieces of litter in this hour and returning, which gives an average of about 2 minutes per piece of litter, which is a reasonable estimation.


  • The maximum costs of one robot should be €5.000,-. 5000 euros is a nice round number which will be roughly the amount of money a company would pay for a robot to clean up a part of the beach.


  • The robot should be able to pick up objects of 1 - 200 grams.
  • The robot should be able to pick up objects of 1 - 1000 cm3.

It can be assumed that the smallest piece of litter is a sigaret but, which is about a gram in weight and a cm3 in volume. It is also assumed that the heaviest litter will be 200 grams, this is roughly equal to a 1 Liter PET bottle filled with 160 mL of water. The volume of this PET bottle will be 1 L and this will be chosen as the maximum volume the robot should be able to pick up.


  • The load capacity of one robot should be minimally 5 kg.
  • The load capacity of one robot should be minimally 25 L.

The robot should able to pick up about 25 times the biggest possible litter to make the robot efficient enough. Therefore the minimum weight and volume it should be able to carry should be 5 kg and 25 L.


  • Can't topple when wind blows with 9 m/s. The maximum wind speed in Vlissingen in 2017 was 9 m/s [39]. Therefore the robot will need to survive these wind speeds to make sure it is not dependend on weather conditions whether it can function.

Subsystems

This section will consider several subsystems involved in the robot, and provide options or estimates required for the final model.

Locomotion

Sony's bipedal QRIO and quadrupedal AIBO robots[40].

First of all, the robot needs to be able to move around on the beach. This is a very hostile environment for robotics due to salt water, dirt, and corrosion. Due to these environmental factors the locomotion should not involve complex motion, and have as few moving axes as possible.

Many different designs for locomotion in similar environments have been published already, even including amphibious 'ninja legs'[41], robotic sandfish[42], and slime slime robots[43]. On account of that, we will not attempt to design a new locomotion system. Rather, we will consider several existing solutions on their feasibility and power consumption.


Overview

Walking

Walking robots are useful for walking over rough terrain and adapting to various environments. They can climb steps, cross gaps as large as their stride and walk on rough terrain where wheels are not feasible. For a legged robot at least two degrees of freedom (joints) are necessary, so a six-legged robot will need twelve actuated joints. Stability can also pose an issue, as a walking robot can only be statically stable (stable when paused at every moment of its motion) when it has at least four legs. However, four legs means that only one leg can be lifted at any time when remaining statically stable, reducing the walking speed.[44].

Having to hold the whole weight of the body and a large number of actuators makes all walking robots less energetically efficient than wheeled machines on flat ground. [45]. Additionally, the higher degree of freedom makes legged robots less suitable for a beach environment as the higher number of joints increases the chance of dirt or water ingress. Due to these disadvantages, walking will not be considered further as a method of locomotion for our robot design.


Rolling

The mobile robot Auriga-β with a mini-helicopter on its self-stabilized landing platform[46].

Wheeled

On a flat surface, wheeled robots are the most efficient. This is because a frictionless wheel does not need energy to keep rotating at the same velocity. Stability is a far less significant problem for rolling compared to walking, as a design with at least three wheels will always be statically stable[44]. Additionally, wheels are the easiest form of robot locomotion to implement. They require low torque to start rolling and thus are suitable for high speeds.

Wheeled locomotion presents a few disadvantages, most noticeably on rough, loose terrain such as sand. The increased rolling friction on this terrain causes power inefficiencies[44].


Continuous tracks

Though they require more torque, continuous tracks (or tank treads) offer significant advantages over wheels on soft surfaces. As they have more contact area, treads exert less ground pressure and will not sink into the sand as much as tires, reducing rolling resistance and increasing efficiency. They also offer higher traction as they fully engage with the large contact area. Treads are also able to cross larger gaps than wheels.

Continuous tracks change their direction by skidding, which increases friction and thus power consumption on hard surfaces[44].


Energy efficiency and power requirements

Power consumption of several locomotion mechanisms[47].
Deformation of the ground surface caused by wheels[48].

The figure on the right shows the power consumption of several locomotion mechanisms. It is clearly visible that wheels on a hard surface (railway) are orders of magnitude more efficient than tires on soft ground. In order to obtain a useful estimate of the power consumption of wheeled versus continuous track locomotion, we will consider their rolling resistance on sand. Rolling resistance on sand greatly depends on the profile of the contact surface. Wheels will sink into loose sand, significantly lowering their efficiency or even getting the robot stuck. Tracks on the other hand exert much less pressure because of a very large footprint, and will stay on top of the sand for this reason. Overall, treads that spread their weight out over a large area will lose less power and be able to move at a higher efficiency.

In technology of tanks[49], R.M. Ogorkiewicz expresses rolling resistance in the form of a dimensionless constant [math]\displaystyle{ C_r }[/math] given by:

[math]\displaystyle{ C_r = A + B v\, }[/math]

where [math]\displaystyle{ A }[/math] and [math]\displaystyle{ B }[/math] are constants with typical values of 0.025 and 0.0009 for treads respectively. [math]\displaystyle{ C_r }[/math] is multiplied with the weight to obtain the rolling resistance force [math]\displaystyle{ F_r }[/math] in Newtons:

[math]\displaystyle{ F_r = C_r m g\, }[/math]

where [math]\displaystyle{ m }[/math] is the mass of the robot in kilograms and [math]\displaystyle{ g }[/math] is the gravity of 9.81 N/kg. Assuming that the robot is travelling at a constant velocity, the necessary power to overcome rolling resistance in Watts is given by

[math]\displaystyle{ P_r = F_r \cdot v }[/math]

where [math]\displaystyle{ v }[/math] is once again the velocity. Using the above equations, [math]\displaystyle{ P_r }[/math] can be rewritten as

[math]\displaystyle{ P_r = (A + B v) m g v\, }[/math].

For ordinary tires on loose sand, [math]\displaystyle{ C_r }[/math] is estimated around 0.3[50]. The resulting friction powers for both treads and wheels on sand of a robot that weighs 25 kg are depicted in the following figures:

FrictionPowerTreads.png FrictionPowerWheels.png
Friction power of a 25kg robot on treads. Friction power of a 25kg robot on wheels.

It is clearly visible that wheels on loose sand are an order of magnitude less efficient in this situation compared to continuous treads.

Besides, since the robot is not very large (about 50x50x50 cm), small hills in the sand will already be felt as a slope by the robot. When using wheels, this problem would be even bigger. The robot should not get stuck in small holes, so the continuous treads are preferred.

Simple locomotion model.

Assuming that the maximum ‘local slope’ felt by the robot is about 30°, a simplified model can be made to determine the maximum power required for the locomotion. The gravity force ([math]\displaystyle{ F_{g} = m*g }[/math]) on the robot can be split into a component parallel to the slope ([math]\displaystyle{ F_{g,x} }[/math]) and a component perpendicular to the slope ([math]\displaystyle{ F_{g,y} }[/math]):

[math]\displaystyle{ F_{g,x} = sin(30^{\circ})*F_{g} = \frac{1}{2}*mg \, }[/math]

[math]\displaystyle{ F_{g,y} = cos(30^{\circ})*F_{g} = \frac{1}{2}*\sqrt{3}*mg \, }[/math]

From equilibrium in the y-direction follows that the normal force [math]\displaystyle{ F_{N} }[/math] is equal to [math]\displaystyle{ F_{g,y} }[/math]. This normal force is used as the ‘weight’ to calculate the friction force. When there is no slope, [math]\displaystyle{ F_{g,y} }[/math] is equal to [math]\displaystyle{ F_{g} }[/math], so then [math]\displaystyle{ F_{N} = m*g }[/math], as used in the formulas about the friction force [math]\displaystyle{ F_{r} }[/math] above. For slopes up to 30°, using [math]\displaystyle{ m*g }[/math] for the simple model is still a reasonable assumption, since [math]\displaystyle{ \sqrt{3}/2 \approx 0.87 }[/math]. For the relatively low speeds (up to 2 m/s) at which the robot drives, the maximum value for [math]\displaystyle{ C_{r} }[/math] is about 0.027.

[math]\displaystyle{ F_{p} }[/math] is the propulsion force, delivered by the motors via the treads. The resulting force parallel to the slope causes an acceleration a (in [math]\displaystyle{ m/s^{2} }[/math]) of the robot (*):

[math]\displaystyle{ m*a = F_{p} - F_{g,x} - F_{r} = F_{p} - 1/2 m*g - 0.027*m*g \approx F_{p} - 5.2*m \, }[/math]

This can also be written as:

[math]\displaystyle{ Fp = m*(a + 5.2) \, }[/math]

*According to the figure, there would also be a resulting moment in the counter clockwise direction, causing the robot to tilt. However, after a very small rotation, a larger part of the robot’s weight is supported at the back, so that the resulting normal force will also be more towards the back of the robot. This will compensate the moment, preventing the robot to tilt. Only for very steep slopes and/or high acceleration levels, the normal force would at a given point (when it reaches the back of the robot) not be able to move more towards the back, and the robot would tip over.

The required acceleration while driving uphill on a slope of 30°, the most important is that the robot should not get stuck in small holes. Therefore, in this simple model to determine the required power, an acceleration of 0.5 [math]\displaystyle{ m/s^{2} }[/math] is used. For a robot of 25 kg, this would mean that [math]\displaystyle{ F_{p} = 25*(0.5+5.2) = 142.5 N }[/math]. The maximum required power ([math]\displaystyle{ P_{max} }[/math]) for locomotion is then:

[math]\displaystyle{ P_{max} = F_{p} * v = 142.5 N * 2 m/s = 285 W \, }[/math]

Because the robot should be able to make turns, the treads on the two sides will be actuated by two separate motors. When driving uphill, both motors should provide half of the required power, so that half of the total propulsion force is delivered on both sides. This means a maximum force ([math]\displaystyle{ F_{wheel} }[/math]) of about 72 N. This force corresponds to a torque from the axle ([math]\displaystyle{ T_{axle} }[/math]), given the wheel radius [math]\displaystyle{ r }[/math]:

[math]\displaystyle{ T_{axle} = F_{wheel} * r \, }[/math]

The rotational speed of the axle ([math]\displaystyle{ \omega_{axle} }[/math] in rad/s) is also determined by the wheel radius:

[math]\displaystyle{ \omega_{axle} = v/r \, }[/math]

The wheel radius determines the height of the axle, and the axle is attached to the ‘body’ of the robot. The bottom of this body should not be too low, to prevent contact with the ground that would cause much more friction and all kinds of other problems (see literature study). Taking that into account, a wheel radius of minimal 10 cm is preferred. Further, a larger radius means that the torque delivered by the axle should be higher. This is will not necessarily be a problem, because between the motor and the axle, an extra transfer ratio could be applied, so that motor speed and torque can be ‘exchanged’, as long as the product of them (the power) remains the same. However, it would be the best if it is possible to directly connect the motor to the axle without a transfer ratio, so that no extra parts are needed that cause friction, add extra mass and take up space. Besides, larger wheels will make the whole tread construction larger, leading to higher rotational inertias. All in all, the radius is chosen to be about 10 – 15 cm. As described above, the motors are (whether or not via a transfer ratio) connected to the axles of the wheels inside the treads, and deliver a combination of torque ([math]\displaystyle{ T_{motor} }[/math]) and rotational speed ([math]\displaystyle{ \omega_{motor} }[/math]):

[math]\displaystyle{ P_{motor} = T_{motor} * \omega_{motor} \, }[/math]

When no transfer ratio is used, the rotational speed of the motor is equal to the rotational speed of the axle. Assuming a wheel radius of 15 cm, this rotational speed will be [math]\displaystyle{ 2 m/s / 0.15 m = 13.3 rad/s }[/math]. The required torque is then [math]\displaystyle{ 285 W / 2 / 13.3 rad/s = 10.7 Nm }[/math]. Note that these values can be changed by tuning the wheel radius or applying a transfer ratio (which causes some extra friction).

Another important value is the average required power for locomotion. The same simple model was used to calculate this. In order to be able to do this calculations, assumptions about the average slope, speed and acceleration should be made. All these values depend on the beach and how far the litter is apart from each other. The more uneven the beach, the higher the average slope. The further the robot has to drive to the next piece of litter, the less the fraction of the time it will be accelerating and the higher will be its average speed. Assuming an average slope of 5° and using a constant speed of 2 m/s and no accelerations instead of a lower average speed combined with accelerations, the resulting average power required for locomotion is determined:

[math]\displaystyle{ F_{p} = F_{g,x} + F_{r} = m*(sin(5^{\circ}) + 0.027)*g \approx 28 N \, }[/math]

[math]\displaystyle{ P_{avg} = F_{p} * v = 28 N * 2 m/s = 56 W \, }[/math]

The average required power per motor would then be [math]\displaystyle{ 56 W /2 = 28 W }[/math]. For an average slope of 10°, it would already be 98 W in total, so 49 W per motor.

Litter recognition

Before it can be collected, litter should be recognized using certain sensors or robotic vision.

Object recognition

According to [51] Scale Invariant Feature Transform (SIFT) is an algorithm that can recognize more then 78% of the litter, even when the image is severly distorted with contrast and intensity changes, rotations, scaling, stretching and noice. Therefore we can assume that images close enough will have a 78% to be recognized. According to the paper, multiplying the scale of objects by 0.7 will cause the recognition to be 85%, meaning that halving the scale, or doubling the distance, causes a recognition multiplication of 0.739. This gives rise to the equation for the litter chance: 0.78 * (0.739d-1), because the first meter will be a straight line at 78% because the average picture will be made at 0.7 meters and the 0.78 was tested for a scale of 0.7. This will however not continue forever, firstly because the chance will never be lower than 50%, so the software cut-off will be at 2.4 meter. Johnson's criteria states that to recognize an image with more than 50% certainty, there needs to be at least 4 +/- 0.8 line pairs[52], which equals a minimum of 10 pixels. The distance at which this cutoff happens, depends on both the camera, and the size of the litter.

It is extremely difficult to determine the average two dimensional size of a piece of litter, as it is highly dependent on the orientation of the litter and whether sand is on top of it or not. For this purpose the area of the bottom of an aluminium can was used as approximation, which is approximately 30 cm2, or a height of 6.5 cm. The distance to the object will be:


distance to object(m) = f(m) * real height(cm) * image height(pixels) / object height(pixels) * sensor height(cm)


to get ten pixels in a circular image, the object height should be four pixels. The real height will be 6.5 cm. All other variables are determined specifically by the camera.

An example of a camera could be the SONY HDR-CX240EB, which has a focal length of 29.8mm, a sensor height of 2,448cm and an image height of 14375 pixels. This will give a cutoff distance of 284 meters, which means that the cutoff of the original formula is much lower than the one because of Johnson's criteria.

Another much cheaper cheaper option would be the MACT-782F, which has a image height of 960 pixels, a focal length of 3.6mm and a sensor height of 6cm. This will give a cutoff distance of 0.9 meter. This will then be the limiting factor

Litter collection algorithms

Bayesian Network

On the right one can see the Bayesian network which models the probabilities. The 'Litter at location' indicates whether there is litter at a specific location. This influences the reading of the sensor which can either give a true positive, a true negative, a false positive or a false negative. Based on the sensor reading, the robot chooses to either move towards the litter or not which in turn influences the utility function.

Bayesian Network modelling the system.

Utility Function

The utility function will be as follows. The decision to not drive will make the utility zero. Negligible energy is used and no litter will be collected. If the robot does decide to drive, the utility will decrease by the energy used. If litter is found, de utility function will increase by the average amount of energy used to find a single piece of litter, to make sure that most of the litter is still found. The average amount of energy for a litter piece will be equal to the energy it will take for the robot to clean the whole beach divided by the number of litter on the beach. It is impossible to know this from the start for a given beach. Therefore this number will be estimated at the start, and will afterwards use the average of all every run it made on the beach. Because the robot will be an intelligent agent, it will always chose the action that maximises the utility function. This means that the robot will not move if the litter is either too uncertain or too far away. This utility function will also be tested with a simulation to see if it picks up enough litter for our purposes but will not run out of energy uselessly.

The function E_avg * litter_chance * amount_of_litter was designed because the robot should be indifferent with walking two times as far for two times the certainty of litter. Also having twice the amount of litter should make the robot twice as likely to go there.

However, using this function and having 100% vision, only half of the litter will be collected. This is not enough for the purposes of the robot. Therefore the gaussian distribution of the distance between two pieces of litter is needed.

Because litter usually collects in groups, the gaussian can be estimated to have a big sigma. According to Galgani et al, the North Atlantic has a litter density of 0.1/m and a variance of 0.2/m[53]. This means that to get more than 90% of the litter, the average energy should be multiplied by 5. This means that with 100% vision, the robot will pick up 97.1% of the litter.


In pseudo-code, the utility function will be:

if (Drive)
	U = 5 * E_avg * litter_chance * amount_of_litter - E_drive;
else
	U = 0;


Initial value for E_avg

To make the robot work initially, without having done any cleaning so that it could update its average Energy to pick up a piece of litter, an initial value of E_avg is needed. To do this the total area of beaches in the Netherlands will be divided by the total amount of litter on beaches in the Netherlands. According to Centraal Bureau voor de Statistiek, the Netherlands consists for 90,016 hectares of beaches and dunes in 2012 [54], with a coastline of 451 km. The average amount of litter on beaches in 2012 was 1,781,450 [1]. This means that an average of 25.3 cm needs to be surpassed to get to a single piece of litter. Using the design choices made in Locomotion, the energy used for traversing this distance can be calculated.

Litter spawning

To make the litter spawn realistically, two different distributions were used. Firstly, a guassian distribution was used with a mean on the beach line, to represent that most of the litter stranded on the land by the sea, combined with a guassian distribution with a mean of 25 centimeters and a variance of 10 cm as found in [55], to make sure the litter was distributed realistically far away from each other. The other distribution was to simulate the random behaviour of humans. Humans can throw away litter anywhere on the beach and therefore a few pieces of litter were distributed randomly over the map. From every piece of litter, a twenty percent chance was taken that the litter was actually not litter, but for example a toy of a child playing, or a piece of wood.

Robot Algorithm

When the robot would see litter, it would give the litter a percentage of certainty, depending on how far away the robot would be. If the robot saw something from a very large distance, the chance would be 50% that it was litter or not litter, and as it would come closer, the percentage would increase to 100% if it was actually litter, or decrease to 0% if it was not litter. The litter pieces that were under 75% sure, are displayed as blue dots. Litter pieces that are almost certain litter are displayed in red, and pieces that are not litter are displayed in green. When the robot is further away, it would also see multiple litter pieces as one, in order to make the robot more likely to go to a high density area then a low density area of possible litter. The robot would move towards the litter position where the Utility function would be highest at that moment in time. This is not completely optimal yet. Therefore more sophisticated algorithms could be used which are explained in the next section.

Litter collection + Sand filtration

After the litter is recognized, the robot should collect it. There are multiple ways to approach this. There will be a trade off between multiple factors of the litter collection systems, including but not limited to: Cost, how much sand it filter, Power consumption and effectiveness. Since this project focuses on the energy aspect of the robot, this will be the most important factor.

Average litter weight

The weight of the average piece of litter that will be used to calculate power consumption of the litter collection mechanisms. The average between the weight of an aluminum can and a 500 ml water bottle will be used since these are very typical pieces of litter, these are respectively 13.11 and 10.31 [g] [56]. Which makes the average trash weight 11.71 [g], with an average volume of 0.428 [[math]\displaystyle{ dm^3 }[/math]].

Claw

Claw design [57]

A claw design can be used to collect litter from the ground[57]. Its design is made in the shape of an excavator dumper, a well-known configuration used in dump trucks to collect trash. The claw is made from striped (coating) pieces of metal, this allows the robot to collect litter in an environment composed by sandy or clayey soil, reducing the drag force and granting that not much sand is collected together with the litter. The claw is composed of two different parts: the upper and lower one. These two parts are connected by a Futaba S3003 servomotor, responsible for the claw’s opening and closing movements. The rising and lowering of the claw is granted by a pair of AX-12 servomotors.

Average power consumption

Since the power necessary to lift the entire claw + the piece of trash is much larger than the power necessary to only close the claw, the power consumption of the closing part is not taken into account. So we will only look at the AX-12 servomotor.

specifications AX-12 servomotor

  • Max/idle current - 900/50 mA
  • Stall torque - 1.5 Nm
  • Recommended voltage = 11.1 V
  • Efficiency = 80% [58]

The weight of the claw is not given, so a similar claw has been found [59]. This claw weighs 123 gram, but is a bit smaller, so the weight of the claw is estimated at around 200 gram. The length of the claw is approximately 25 cm. The claw makes a circular motion around the servo so the center of mass of the claw is on average 6.25 cm from the rotational point. It is assumed that the center of mass of the piece of garbage will be the same distance from the rotational point as the claw. This information about the claw together with the specifications of the AX-12 servomotor make it possible to calculate the power consumption, as can be seen below.


[math]\displaystyle{ T_{pick-up} = r \cdot m \cdot g = 0.0625 \cdot (0.212 \cdot 9.81) = 0.130\, }[/math]


With: T = Torque [Nm], r = distance from rotational point to center of mass [m], g = gravitational accelarion [m/s2] and m = mass [kg] Then using the fact that the current is proportional to the torque, the current can be calculated.


[math]\displaystyle{ I_{pick-up} = \frac{T}{T_{stall}} \cdot (I_{max} - I_{idle}) + 2 \cdot I_{idle} = \frac{0.130}{1.5}\cdot0.850 + 0.1 = 0.174 \, }[/math]


With: I = current [A] Now the current and voltage are known so the power needed while picking up litter can be calculated.


[math]\displaystyle{ P_{pick-up} = U \cdot I \cdot \frac{1}{\eta} = 11.1 \cdot 0.174 \cdot \frac{1}{0.8} = 2.41\, }[/math]


With: P = power [W], U = Voltage [V] and [math]\displaystyle{ \eta }[/math] = Efficiency [-]

Now the amount of power needed to pick something up is known, but we also need to know the amount of power used when idling, this can be calculated using the same formula using the idle current.


[math]\displaystyle{ P_{idle} = U \cdot (2 \cdot I_{idle}) \cdot \frac{1}{\eta} = 11.1 \cdot 0.1 \cdot \frac{1}{0.8} = 1.39\, }[/math]


The power usage during garbage pick-up and idling are now known. To determine that amount of power the servo’s use on average, the relation between pick-up time and idle time needs to be known. It is estimated that for every 30 seconds of idling there is 1 second of picking up trash. Which gives us the following average power usage.


[math]\displaystyle{ P_{avg} = P_{idle} \cdot \frac{30}{31} + P_{pick-up} \cdot \frac{1}{31} \cdot \frac{1}{\eta} = 1.11 \cdot \frac{30}{31} + 1.93 \cdot \frac{1}{31} \cdot \frac{1}{0.8} = 1.43 \, }[/math]


The average power consumption of the litter collection and sand filtration system the claw is 1.43 W.

Maximum power consumption

The peak power consumption occurs when the servo motor will have to deliver the most torque. The max power needs to be known, because when choosing the battery it has to take into account what its max power output will be. The most torque has to be delivered when the robot has to collect the heaviest piece of litter, which is assumed to be 1 kg and the piece of litter is furthest away from the rotational point, which is 12.5 cm.


[math]\displaystyle{ T_{max} = r \cdot m \cdot g = 0.125 \cdot (1.2 \cdot 9.81) = 1.47\, }[/math]


With the maximum value of the torque it is possible to calculate the maximum value of the current.


[math]\displaystyle{ I_{max} = \frac{T}{T_{stall}} \cdot (I_{max} - I_{idle}) + 2 \cdot I_{idle} = \frac{1.47}{1.5}\cdot0.850 + 0.1 = 0.933 \, }[/math]


With the maximum value of the current the peak power draw can be calculated.


[math]\displaystyle{ P_{max} = U \cdot I_{max} \cdot \frac{1}{\eta} = 11.1 \cdot 0.933 \cdot \frac{1}{0.8} = 12.95 \, }[/math]


This makes the peak power consumption 12.95 W.

Costs

The total costs of the solution:

  • 2x AX-12 servomotors – €89,80- [60]
  • 2x Futaba S3003 servomotor - €27,10- [61]
  • 1x The claw itself - €50,00- (estimation based on the similar claw and the fact that this one is a bit bigger and has striped metal)

This makes the total costs of the solution: €166,90-.

Rake

Rake design [62]

A rake design could also be used to collect litter from the beach[62]. Just like the claw design it also already filters the sand from the litter. The rake design uses a 15 kg.cm Tower Pro servomotor. Since this exact servomotor could not be found a similar one will be used to determine the power consumption. This servomotor is the Tower Pro MG958. Specifications Tower Pro MG958 [63]:

  • Max/Idle current = 1600/170 [mA]
  • Stall torque = 1,765 [Nm]
  • Voltage = 4.8 [V]
  • Efficiency = 0.8 [-] [58]

The weight of the rake is not given, but the material is, which is ULTEM. Since it is similar in size to the claw design, but two times less dense the weight is estimated at 100 gram. The rake is about 30 cm long, so the center of mass will be 15 centimeter from the rotational point at the maximum load point and on average 7.5 cm during pick-up. Given these specifications about the servo motor and the rake, the maximum, idle and average power consumption can be calculated in the same way as for the claw design.

[math]\displaystyle{ P_{idle} = 1.02 W }[/math]

[math]\displaystyle{ P_{pickup} = 1.43 W }[/math]

[math]\displaystyle{ P_{max} = 8.89 W }[/math]

[math]\displaystyle{ P_{avg} = 1.03 W }[/math]

Total cost of solution:

  • MG958 = €11,95- [64]
  • Rake (based on 100g ULTEM filament) = €32,- [65]

This makes the total cost of the solution €43,95-.

Excavator arm

Excavator arm design design [66]

The excavator arm design is also a possible solution to picking up litter from the beach[66]. It also has holes in it, so that sand gets filtered out. The excavator arm has 3 DOF driven by 6 MG995 servomotors.

Specifications MG995 [67]:

  • Max/Idle current = 170/1200 [mA]
  • Stall torque = 1.079 [Nm]
  • Voltage = 6 [V]
  • Efficiency = 0.8 [-] [58]

Again the weight of the collection mechanism is not given. However the weight of a MG995 servomotor is 55 gram and the main two motors have to lift 4 others and the arm itself. It is therefore estimated that the collection mechanism weight about 400 gram. The excavator arm fully extended is 40 cm long. Since when fully extended most of the weight is at the end of the arm, it is assumed that the center of mass is at max load is at 30 cm from the rotational point. Using the parameters given the maximum torque comes out to be 4.12 [Nm] for the two main servomotors this is more than they can handle. So it is impossible for this design to lift 1 kg at full arm extension. This means that for the calculation of the maximum power consumption the two servo’s will be maxed out. It is also assumed that only two servomotors will be working at the same time. Given these specifications about the servo motor and the excavator arm, the maximum, idle and average power consumption can be calculated in the same way as for the other designs.

[math]\displaystyle{ P_{idle} = 7.65 W }[/math]

[math]\displaystyle{ P_{pickup} = 11.99 W }[/math]

[math]\displaystyle{ P_{max} = 17.98 W }[/math]

[math]\displaystyle{ P_{avg} = 7.79 W }[/math]

Total cost of the solution:

  • 6x MG995 = €53,70 [68]
  • Excavator arm = €20,00 (estimation)

This makes the total cost of the solution €73,70.

Conclusion

Three different designs have been discussed, the claw, the rake and the excavator arm. All three of them incorporate sand filtration into their design. The main specifications of these litter collection mechanisms that were looked at were the power consumption and cost. These specifications are summarized in the following table.

Collection mechanism [math]\displaystyle{ P_{idle} }[/math] [W] [math]\displaystyle{ P_{pick-up} }[/math] [W] [math]\displaystyle{ P_{max} }[/math] [W] [math]\displaystyle{ P_{avg} }[/math] [W] Cost [€]
Claw 1.39 2.41 12.95 1.43 166.90
Rake 1.02 1.43 8.89 1.03 43.95
Excavator arm 7.65 11.99 17.98 7.79 73.70

From these values we can conclude that the Claw solution is the most expensive, the excavator arm uses the most energy, while the rake is the most energy efficient. This does not necessarily mean that the rake will always be the best solution. Because while the rake is the most energy efficient, the excavator arm is better at reaching litter in difficult places using its manoeuvrability. So the best solution is dependent on what the user wants to do with the robot. The energy consumption values will later be used in the simulation.

Litter storage

Litter storage design

The litter should be collected somewhere in or on the robot before it can be moved to be deposited. The robot needs to be able to carry a volume of 25 L of litter. The size of the robot will be around half a meter by half a meter. That is why we have chosen for the base size of the storage container to be 0.4 m x 0.4 m. This leaves us with a height of 0.16 m for the storage container. The material that is chosen for the storage container is aluminum, because it is relatively cheap, strong and widely available. The storage container will consist of 4 aluminum plates of 0.4 m x 0.16 m x 0.001 m for the sides and a perforated plate of 0.4 m x 0.4 m x 0.002 m for the base. The base plate is perforated so that excess sand can be filtered out and any water that might enter the storage container can be easily drained. The base plate is also thicker, because its under a heavier load than the side plates. The total weight of the storage container is 1.63 kg, calculated in NX [69].

Cost

  • 4x side plates = €15,94
  • 1x base plate = €9,87

This brings the total cost of the storage €25,81.

Energy management

There are several options to provide the energy that the robot requires. The main options that were considered are:

  • (On-board) sustainable energy obtainment, e.g.:
    • solar cells
    • small windmill
    • solar heating panel
  • Combustion engine
  • Electrical power provided via a cable
  • (Interchangeable) Rechargeable battery
  • Combinations of the options above

The criteria used to assess the different options are:

  • Needed space and weight
  • Delivered power
  • Working time restrictions
  • Sustainability
  • Inherent restrictions
  • Costs

The goal of this project is partly based on the environmental aspects of litter, so designing a robot with a combustion engine would form a sustainability point of view not be a desired option. In general, beaches are places with a lot of wind (and sunlight in the periods that most people are there), making the sustainable energy option even more attractive.

On-board sustainable energy obtainment has the advantage that the robot provides its own energy, and therefore does not have to spend extra time to recharge, to change a battery, to refuel, etc. Besides, these options are environmentally friendly. However, the energy obtainment will be dependent on the weather conditions, so that the robot could for example not work properly when there is not enough wind or sunlight, or the robot can never work at night when it runs on solar energy. Another disadvantage is the space needed. The irradiance of sunlight on earth’s surface is of the order 1000 W/m2 [70]. The efficiency of affordable solar panels is up to about 20% nowadays [71], which means that the power supply would be about 200 W/m2. For lifting objects, about 20 W could be enough, but for driving up (small) hills, more power will be required. Assuming a 30° slope and a robot mass (including collected litter) of 25 kg, the force needed is about 142.5 N. Then, to reach a speed of 2 m/s, the maximum power required is about 285 W (see Energy efficiency and power requirements).

This means that a solar panel of at least about 1 m2 would be needed. The weight of a solar panel is about 15 kg/m2 [72], so the solar panel would add a significant amount of weight, and deliver just enough power to lift itself. Of course, the robot would not always have to drive uphill, so the average amount of power required will be lower. Using a smaller solar panel, that delivers the average amount of power needed and storing the solar energy in a rechargeable battery inside the robot could then be an option. This will also solve the problem that the robot can would not work if there were less sunlight for a short time. The battery would also add extra mass and take up space. If there is less sunlight for a longer time, the operation time of the robot will be limited, so it should wait in between working to recharge the battery with its solar panel, which could take a lot of time. An on-board windmill would, besides making the construction very instable, lead to similar problems. Another option would be a central point from which the robot(s) can obtain their energy. At this point, solar panels and possibly (small) windmills can be placed to obtain energy. It can be connected to the electricity network, so that extra energy can be obtained when needed, and energy can be returned when there is more than enough. A central point would already be needed to collect all the litter from the robots, and could also be a place from which a human operator could possibly control everything. See Central hub for further information about this.

From this point, the energy can be distributed to the robots in several ways: (1) via a long cable that can extend, comparable to a vacuum cleaner, (2) by recharging the robots at the central point or (3) by recharging batteries that can be placed into the robots by replacing the used battery, which can be recharged at the central station afterwards. The advantages of using a cable are that the robots are not limited in their working time by a shortage of energy, there is no extra space and mass needed on-board of the robot for a battery and there is no time needed to recharge the robot or replace the battery. The disadvantages are that the cables can stick behind objects, can annoy people and limit the working range of the robots because even if the cables would be very long, at a certain point it will cost too much power to pull them through the sand. In short, it is clear that using cables would be very inconvenient.

The two options left both use rechargeable batteries. The choice to make is whether they should be recharged while the robot is at the central point, or while the robot is working and only replace the battery when the robot is at the central point. The advantage of replacing the battery is that it will take less time, so that the robots can work a larger part of the total time. The advantage of recharging the battery is that no system to replace the battery is required. The decision thus depends on whether the extra working time outweighs the extra costs of a battery replacing system. Both options can be combined with a small (removeable) solar panel on top of the robot, to extend the operation time.

Battery type comparison

Assuming that the robot requires an average power of 100 W while operating and the robot should be able to operate for half an hour without recharging/replacing the battery, the energy needed is 50 Wh.

For the use of batteries in our robot, they should be as small and light as possible due to the weight and space constraints. Therefore, a high energy density is preferred. Besides, the costs should not be too high. In the table below, the most relevant properties of the most common rechargeable batteries can be found [73][74][75][76][77]. Rechargeable alkaline batteries are not included, since their life-time is very short compared to the other types.

Cell chemistry Nominal Voltage [V] Energy density [Wh/kg] ([Wh/L]) Cost [$/kWh]
Lead-acid 2.1 30 – 40 (60 – 75) 57 – 148
Nickel-cadmium 1.2 30 (100) 300 – 600
Nickel-metal hydride 1.2 100 (401) 303
Lithium-ion / -polymer 3.6 – 3.7 90 – 265 (333 – 730) 273

The main advantages and disadvantages of the different battery types are summarized below [78][79].


Battery type Advantages Disadvantages
Lead-acid No memory effect Low energy density
Higher discharge rates result in loss of capacity
Environmental hazard (however, they can be recycled)
Nickel-cadmium (NiCad) Inexpensive Low energy density
Almost no loss of capacity at high discharge rates Memory effect
Environmental hazard, recently banned in many applications in Europe [80]
Nickel-metal hydride (NiMH) High energy density High self-discharge rate (newer chemistry with low self-discharge rate has a ca. 25% lower energy density)
Long life-time
Lithium-ion / -polymer (Li-ion / LiPo) High energy density Relatively expensive
Very high discharge current Low self-discharge rate


High self-discharge rates would only be a problem if the robot would not be used for a long time. If that would happen, the battery could be recharged or replaced with a small effort. Therefore, the self-discharging properties do not have priority when selecting the battery type. The Nickel-cadmium and Lead-acid batteries will not be chosen because of their relatively low energy densities and environmentally hazardous properties. Lithium battery packs appear to be the most suitable for this application due to both their high energy density. An added advantage is that with the current rise in electric vehicles using this battery chemistry, the price of rechargeable lithium batteries is dropping.

Currently, the price of a lithium ion battery pack is dominated by the price of the cells themselves, making up around 50 percent of the cost[81]. For an estimate of the total battery pack weight including battery management and safety features, we might use the Tesla model S as an example. Tesla's 90kWh model has a battery pack of 540kg. This amounts to around 167 kWh per kg[82].


Power system

Power system diagram

A possible configuration of the robot's energy management system is illustrated in the figure to the right. The robot runs off a central battery pack connected through a Battery Management System (BMS). It should be built in a modular way, allowing for the battery to be swapped during operation to instantly replenish the robot's range. The robot is also fitted with a solar cell that can charge the battery through a Maximum Power Point Tracking (MPTT) controller. The robot's locomotion motors are connected to the battery through a motor controller. This is needed to control their speed and directions. If a bidirectional motor controller is employed, the robot can use regenerative braking to recover some energy and improve overall efficiency when driving.

As described before, a solar panel will produce around 200W/m2. A good MPTT setup will yield about 90% efficiency[83], meaning that around 180W can be used to charge the battery per square meter of solar panel surface. The solar panel for our robot will be about 0.5m x 0.5 m, which equals an area of 0.25 m, and thus produce around 50 W, of which 45 W can be used to charge the battery.

The typical electrical efficiency of a PWM motor controller is above 95%[84]. The efficiency of DC-motors in the relevant power range is about 80%[85].

Summary

There are many options in chosing what energy to use for the robot, of which it is decided that a solar panel in combination with a battery would be best in most situations. The following energy numbers and relations are important when forming an energy balance:


Battery pack

Every 100Wh of battery capacity will increase costs by approximately €45,- and weight by 600 grams.

Motor controller

The motor controller should provide a battery-to-motor electrical efficiency of 95 percent.

Solar

In ideal solar conditions, every square meter of solar panels should deliver 180W to the battery pack at the cost of 15 kilograms.

Central hub

Central Hub. The operator can monitor the robots from the white shed, where also the extra batteries are charged using the energy from the solar array on top of the shed. The litter can be stored in the green container.

The central hub is the place where robots can dump their collected litter and replace their batteries if needed. At this place, a human operator can be present to control the whole process. This person can replace the garbage bags and batteries of the robots. Besides, he could monitor the robots by looking at their live camera images. When the robot is stuck, has problems with humans or does not know whether something is litter or not, the operator can help the robot.

The central hub will be located at the land side of the beach, preferably around the center of the operating region in the direction of the coastline, so that it does not annoy the beachgoers. It will be covered by solar panels, that provide the energy needed to charge the batteries. If possible, it will be connected to the electricity network, so that extra energy can be obtained if the energy from the solar panels is not enough at a certain moment, and if there is more energy provided by the solar panels than needed, it can be used by the rest of the world. If this connection is not possible, a large battery, such as a Tesla Powerwall [86], could be used to store the energy for later usage.

Solar panels were chosen, because they are good for the environment. Other solutions that are also good for the environment like generating energy with the use of windmills were not chosen, because they come with a lot more negative external effects. Windmills are often perceived as ugly and that they ruin the view, they also make a noise that can be perceived as annoying. Besides, they cause large moving shadows, which can be unpleasant for the beachgoers. Solar panels have non of these issues, so they are the preferred solution.

The amount of solar panels needed depends on a couple of factors:

  • The amount of cleaning robots: Every cleaning robot will have one spare battery, this means that with an increased number of robots more batteries need to be charged. So more cleaning robots, means that more solar panels are needed.
  • The presence of a connection to the main power grid: If the central hub is connected to the main power grid it will never waste energy, because when the solar panels generate energy which the central hub does not use, the energy will be send to the main power grid. This means that having more solar panels then necessary is not a problem, so the amount needed could be overestimated, so that there is always plenty of power to go around.
  • Power consumption of the cleaning robots: Depending on the chosen parts for the robot and the environment the cleaning robots will have a certain power consumption. When this power consumption is higher, the robots need to change their batteries more often. This means that if the robots have a high power consumption, more solar panels are needed.

The litter can be collected by the operator by disconnecting the solar panel and taking out the garbage back. The garbage back is then placed in a big container underground.

Human interaction

Laziness

STB robots[87]
Piano stairs[88]

Humans are biologically wired to be lazy, and even the most environmentally centered will figure out the least strenuous way to deal with litter responsibly. For example, hikers are encouraged to take their litter home as trails don’t have many litter bins[89]. This does not require much effort as hikers will only need to keep their litter on themselves until they get home. It also saves a lot of work traversing the trails to empty litter bins if they were placed more frequently.

In different situations however, people might be less motivated to dispose of their trash at home. On a beach people tend to wear clothing that may not have pockets to keep their trash in, and they might not feel inclined to take a swim while carrying garbage. If all litter bins on the beach are replaced with robots described on this page, it might cause a new litter-related problems.

First of all, there will be no fixed spots where people can deposit their litter. Currently, the further away a trash receptacle is, the more likely people are to litter[90]. This indicates that the amount of effort required to deposit trash plays a large role in how likely people are to litter. Even if the robots have a chute to deposit litter, users will still need to look around for them. A robot might be sufficiently far away that the user will give up and drop their litter in the sand. This effect might be amplified by human laziness. If robots are roaming around to pick up litter, it could give the impression that there is no need to deposit trash inside their bins as they will come pick it up anyways. Even if normal bins are placed around the beach, this could still become a big issue.

There are several ways to encourage people to deposit their trash in the robot. One of these is to is to make the robot more social. Engineers at Japan's Toyohashi University of Technology have already successfully experimented with so-called Social Trash Box (STB) robots[91]. The STBs are small motorized litter bins. They identify public areas where humans are present, then mingle into those areas. When the robot senses a piece of litter on the ground, it talks and uses ‘body movement’ (wiggling its flexible trash bin) to request a person to pick up the litter. Next, it positions its bin at the best angle for that person to throw in the litter. Our robot could use similar social behaviour to ask for help with trash it is unable to pick up or reach. Additionally, this behaviour might trigger people’s social norms to encourage them not to litter.

A second way to reduce littering when the robots are operating is to integrate some way to summon the robot to your location. The DustCart project[35] relied completely on user action through phone calls to collect garbage from their homes. A similar principle can be implemented next to the autonomous litter collection of our robots. The robot could for example be summoned through an app on the user’s phone, or some sort of action - perhaps yelling or whistling in the direction of the robot.

Finally, a reward system can be implemented to encourage people to deposit trash into the robot. Since material rewards will most likely elicit fraudulent behavior, non-material or psychological rewards are more in place. Several examples of this gamification include a bottle bank arcade, piano stairs, and the world’s deepest bin (covered in Encouraging dustbin designs). The bottle bank arcade turned recycling glass bottles into a game similar to the classic Whac-A-Mole where you have to insert your bottles to be recycled into the slots that light up within the given time to gain points. The piano stairs were a temporary project that transformed a staircase next to an escalator in Stockholm into a piano, with all the steps being working keys that would play notes. This encouraged 66% more people to use the stairs rather than the escalator[92]. Our robot could implement gamification in many different ways. A simple approach would be to award a score for the number of litter that is deposited. This can even end up encouraging people to clean up litter that isn’t their own. It could also give access to a small game or a temporary WiFi password as a form of encouragement. The possibilities are nearly endless.

Accidents

The robot needs to be able to deal with unforeseen events. It might get stuck in a sandpit or mud near the waterline. In this case, helping the robot is trivial and should require no tools. To reduce workload on the operator who would otherwise need to go to the robot to help, the robot could reach out to nearby people. Much like the STBs described above, the robot could vocalize or emit intuitive noises to indicate that it requires help. A display on the robot could then give further information on the specific request.

Similarly, the robot might be unable to pick up a certain piece of litter. In this case, it might use the same strategy of calling for help as when it is stuck. In the event that this doesn’t help, the operator can still be sent to inspect and fix the robot.

Robot algorithm

Formalizing the problem

Before we can discuss any algorithm, it is important to first make the problem explicit. This part describes what the robot does. More precisely, this part looks at the different options of determining which potential litter object needs to be visited next. Therefore the goal of every algorithm is to state the litter object it should go to next.

For testing the different methodologies, it is assumed in the simulation that there are only two types of objects. One of these is the litter object, and the other is the fake litter object. The robot is able to differentiate between these two objects using its sensors. The sensors however cannot determine with absolute certainty if the object is litter or fake. Rather, for each litter object it assigns a certain probability showing how certain the sensor is that the object is litter. This probability will increase or decrease as the distance to the object decreases, simulating the fact that a sensor can see what something is the closer it is to the object. This probability will further be referred to as litter_chance. The distance from the robot to the litter object is referred to simply as distance and is seen as a property of the litter object.

Greedy algorithm

An algorithmic paradigm that is very robust and works well in circumstances with uncertainty is a greedy algorithm. With a greedy algorithm you make locally optimal choices. This however does not guarantee that it leads to the global optimum, or in other words the best decisions. A simple example of where a greedy algorithm does not necessarily lead to the optimal solution is for the change-making problem. In this problem you need to use as few coins as possible such that they add up to a given amount of money. For example, say that you have the coins 1, 5, 7 and you need the coins to sum up to 10. The greedy solution would be to use 4 coins, namely 7 + 1 + 1 + 1, where each time you pick the largest coin without going over your target. The optimal solution would however be to pick 5 + 5 where you only use 2 coins. This is a good example which shows that making locally the best choices does not always lead to the optimal solution. Greedy algorithms are also often applied in areas even where they are suboptimal. This has to do with the fact that greedy algorithms are often very fast computationally speaking. Especially when there are many variables to consider, in our case a lot of litter, using a more complex algorithm might require more expensive hardware or simply take too long.

A good greedy rule for our problem might be to simply pick the litter which leads to the lowest distance per chance of finding litter. More formally, you navigate towards the object which has the greatest litter_chance / distance. This means that the robot is indifferent to walking either 1 meter towards an object which is expected to be in 50% of the cases litter or walking 2 meter towards an object with an 100% expected litter chance since in both cases you are expected to find one piece of litter after walking 2 meters. In practice, this may perform even better than one would think due to the fact that the agent is operating in a dynamic task environment. When the parameters of the environment are continuously changing, i.e. litter is thrown away, blown away, or picked up by people, it is very difficult if not impossible to give an optimal solution.

Vector potential field planning

Vector potential field example

A well-known algorithm for multi-goal planning is Vector Potential Field Planning. This algorithm is able to handle dynamic task environments well. As the name might suggest, it works by putting a positive ‘charge’ on one of the goals. This charge generates a potential field of which the strength attenuates as the distance increases. When the potential fields of two (or more) charges overlaps, the strength is summed. An example of a vector field is shown in the image on the right.

A big advantage of this algorithm that the agent is automatically more attracted to an area where there is a lot of things to do. This is not something the greedy algorithm does, since it goes to the closest litter object it can find. This means that it will ignore a large group of litter, over one piece of litter if it lies slightly closer. The Vector Potential Field algorithm will however favor the large group, since all the weights are added giving rise to a large potential field in the direction of the large group. In addition, this algorithm is able to easily assign different levels of importance to certain objects. You could give for example let glass shards emit a stronger potential field, making the robot more inclined to clean up the dangerous glass shards over for example plastic.

Traveling Salesman Problem

To get an optimal path for the robot, the Traveling Salesman Problem will need to be solved every time new information is gathered. The TSP is a well-known problem in both mathematics and computer science. It is stated as follows. “if a traveling salesman wishes to visit exactly once each of a list of m cities (where the cost of traveling from city i to city j is cij) and then return to the home city, what is the least costly route the traveling salesman can take?” [93] In the case of the litter cleaning robot on the beach, the cities will be the litter (close enough to be energy efficient to check out), and the costs would be the utility function of the Litter Detection section. To get the solution, a tree could be made starting at the robots starting position, expanding nodes to every piece of litter close enough to be energy efficient to check out. Those new nodes would be expanded the same way, except that the utility function would be calculated from as if the robot would be in the position of the previous node, without adding new information, and excluding the litter that are parents of the node. This would however create a tree with N! (the factorial of the amount of litter close enough to be energy efficient to check out) nodes. For N’s as little as 10, this would already require almost 4 million nodes. Therefore this technique is neither memory nor time efficient to be used on a beach full of litter.

TSP with cellular decomposition

As realized in [18], a difficult problem such as the Traveling Salesman Problem, can be solved (semi-)optimal by cutting the total coverage of the area into smaller pieces, and solving the difficult problem within those pieces. Afterwards, the problem would be solved between the pieces that already have a solution, making the total solution very close to the optimal (or even optimal) while maintaining an easy solution. In the Traveling Salesman Problem discussed in the previous section, this would mean splitting the map, solving the TSP for the different sections and saving the total utility function gained from that, and then solving the TSP between the sections with the information gained from within the sections. This would reduce the total amount of nodes needed from N! to n*m!+n!, where m is the amount of litter in each section, and n is the amount of sections. This means that splitting for example a beach of with 12 pieces of litter (almost 500 million nodes in the original solution) in 4 blocks of 3 litter pieces (48 nodes), will decrease the computational time and memory by a factor of 10 million. The closer m and n are to each other, the higher the gain from this method, but also the further away the solution will be from the optimal one. The solution will however always be better than the greedy solution, as in the worst case it will be equal to the greedy solution.

Model

To validate the design, a tool has been developed in which the environment can be simulated.

Simulation

Screenshot of the developed tool

The simulation shows two windows. In the window on the left, you can control the simulation and enter various parameters. In the window on the right you can see the visualization of the simulation. In the simulation the litter, the central hub and the robot is displayed. The litter is displayed using three different icons representing how sure the robot is that it is litter. If the icon is blue, then the robot is 80% sure that the object is actually litter. If the icon has become red, then the robot is 80% sure that the object is not litter. In all other cases, the object is black with a white question mark indicating that the robot is unsure. The central hub is indicated with the light blue circle and is the place where the robot will return to if it is either full or needs to recharge for energy. In case the robot is unable to pickup more litter, the robot will display a trashcan besides his own icon indicating that it's storage has completely filled up. In case the robot is out of energy, a lightning bolt is displayed besides the robot indicating that the robot is out of energy. Note that the size images are not effected by the size of the beach. If the images would have been scaled to the realistic sizes, it would be impossible to see them when simulating a large beach.

Buttons and parameters

The simulation is controlled using the following three buttons:

  • Status: Shows 'Running' in case the tool is simulating or 'Paused' in case the tool is not simulating.
  • Start: Starts the simulation.
  • Stop: Stop the simulation.
  • Reset: Resets the simulation. Will set the robot back in the hub, creates new litter objects and resets the statistics.

The simulation can be influenced by changing the following parameters:

  • Litter spread: Sets the average distance between two litter objects for the beach (the litter that has been washed ashore), given in litter per meter.
  • Human litter: Sets the litter density that has been caused by the people, given in litter per meter squared.
  • Energy per pickup: Total energy it takes for the robot to pickup the litter, given in Joules.
  • Width beach: Total width of the beach, given in meters.
  • Height beach: Total height of the beach, given in meters.
  • Solar energy: Sets how much energy the robot gains per second from the solar panels, given in Joules per second.
  • Max volume: Sets how much the robot can carry.
  • Beach slope: Sets the average slope of the beach, given in degrees.
  • Battery size: Sets the size of the battery, in Watt-hour.
  • Speedup: Indicates how many times the simulation is speedup. If it is set to one, then the simulation will run in real-time.
  • Robot weight: Total mass of the robot, battery not included.

Results window

Screenshot of the developed tool

At the end of the simulation a window pops up showing the results of that run.

In the image on the right one can see such a result box. In this case, the simulation was run on a 200 meters wide by 40 meters deep beach. It shows that the robot has traveled 1600 meters in almost 17 minutes. It also shows how much energy it took from the central hub, and how much it used in total. The difference between these two number gives the total amount of energy generated by the solar panels. Lastly, it shows how much litter it picked up.

Results

To give a good measure of how good the selected robot performs on the selected beach, five parameters are shown when the robot finishes his job. Those are Distance Travelled, Time Elapsed, Hub Energy Leeched, Energy Used and Litter Picked.


Distance Traveled

This measure will give the total distance the robot has travelled in meters from the start to the finish. This might be useful when considering the different possible algorithms, because the distance that the robot needs to travel will need to be as low as possible to make sure the robot will annoy the least people and use the least energy.


Time Elapsed

This measure will give the total time it has taken for the robot from the start to the finish in seconds. This is useful to see if the robot does not take too long to clear up the beach, which might be an indication to use more than one robot. Also making the robot walk on the beach for longer times will annoy more people.


Hub Energy Leeched

This measure will give the total energy that has been charged at the central hub, which is actually a measure for how much energy needs to be supplied in the timespan listed by Time Elapsed. Subtracting this number from Energy Used will give the total Energy gained by the solar panel on top of the robot.


Energy Used

This measure will give the total energy used by the robot. This of course needs to be as low as possible for the amount of litter picked up, as this is what the design is mostly about in the simulation.


Litter Picked

This measure will give the total amount of litter picked up during the simulation. This will be useful to see how much of the litter that is on the beach the robot will actually pick up, and in combination with the Energy Used this can be a great measure for the energy performance of the robot.


Demonstration

In this section, two examples of the use of the simulation are shown and explained.

In the first example, the robot cleans a beach of 200 m by 40 m. Because of these large dimensions, the images of the robot and objects on the beach are displayed larger since otherwise you could not see them. The simulation is sped up 100 times for similar reasons. Due to the energy settings and algorithms used in this example, the robot does not pick up all litter because that would not be worth the energy it would cost.

In the second example, the robot cleans a beach of 8 m by 4 m. In this example the simulation is played in real time which allows you to better see the impact of the different strategies. The different stratagies are explained in Robot algorithm. As you can see, when the greedy strategy is used, the robot goes first to the nearest object and only afterwards to the group of litter. When the Vector Potential Field planning algorithm is used, it goes first to the group of litter and only afterwards to the other litter.

Demo large beach
Demo searching strategies

Results

Time taken for different storages
Energy used for different storages
Time taken for different accu sizes
Energy used for different accu sizes


In this section, the results of the simulation are described. For the simulation, exactly the same settings were used as in the case of the image 'Screenshot of the developed tool', except for the setting that was tested.


In the graphs it can be seen that increasing the total litter that the robot can store will exponentially decrease the time the robot takes to clear the beach, as well as the total energy it uses as well as the total distance traveled. It should be taken into account that increasing the storage however also increases the size of the robot and the costs. Therefore there will be an optimum for choosing the total litter storage, which will be dependent on the needs of the beach.

At 170 maximum litter, the graph does not comply to the exponential decay, but because this is the case in all of the graphs, it can be concluded that the beach the robot ran on was more difficult. This can be the case because the beach is randomly generated and therefore it can be that a certain test will be slightly more difficult than others. This point can therefore be thrown away as an outlier.

Also for the battery sizes it can be seen that increasing the battery size decreases the time, energy and distance used. This makes sense since increasing the battery size only slightly increases the mass, while greatly increasing the distance the robot can travel. At around 50 Wh the curve stops decreasing. This is caused by the fact that the robot is only limited by the maximum amount of litter it can carry and no longer by the battery size.

For the beach used as an example, we can thus conclude that a battery of 50 Wh is ideal, since making it larger does not increase the performance of the robot. It is recommended to at least be able to store 100 litter, since beyond this the performance does not increase significantly.

Do note however that the results in this section are indicative only. In case the robot is to be used on a beach that differs much from the one proposed here, the simulation should be run again.

Conclusions

After doing research into all the subsystems that are necessary for an autonomous beach cleaning robot, their respective energy consumption and their limitations were found. A simulation was made that used the energy consumption values and the set limitations to model a beach with a beach cleaning robot. The simulation is able to accurately calculate and visualize the energy consumption of an arbitrary robot on an arbitrary beach within the constraints that were set at the beginning of the project. The tool can be used to evaluate energy consumption and efficiency of a litter cleaning robot in a beach environment before building the robot. This information could help governments or companies with deciding if the use of beach cleaning robots is worth it. When they decide that it is indeed worth it, the simulation could also help determining the amount of robots and central hubs that would be the most efficient for their beach.

Discussion

Even though the simulation calculates the energies accurately when looking at other research, still multiple assumptions have been made in the simulation. The biggest assumption is that the robot is able to drive towards the litter in a straight line. Of course this is not the case on a real beach as there are hills, holes and most importantly, people. It is however believed that this assumption does not make the simulation useless, as it will be mostly used to compare different robots, which will both get the same 'advantage' of not having to avoid obstacles. Furthermore, evading obstacles will only be a small part of what the robot is doing and therefore the error will be unlikely to change the users opinion on the robot being effective enough or not.

Some requirements and specifications were not used in the model and simulation because they were not relevant to the necessary subsystems. For example, outside temperature and the size of the robot are not taken into account. Specifications such as surviving in water and the maximum cost of a robot were not used in the model. Most of the given requirements and specifications will however be useful when an actual beach-cleaning robot is designed.


Future research

To make the simulation even more reliable, more of the assumptions can be researched and if necessary removed and implemented in the simulation. A list of assumptions that can be added are the following.

Dark vision

The robot is assumed to work during bright lighting conditions. Further research could be done in putting lights on the system, which will cost more energy, but will make the robot see in certain directions in the dark. This will also influence the litter detection. This might be interesting because if you clean the beach later on the day, there will be less people. This means that less energy has to be used to avoid people. You do however get less energy from the solar panels and can get less help from the people around. Therefore this is an interesting trade-off that can be researched in the future.


Robot Cooperation

The robot is assumed to work alone, but it might be way more efficient to put multiple robots on a single beach with a single central hub. Algorithms for the cooperation of such robots would need to be researched. This offers again an interesting optimization problem, since it is not trivial to determine the optimal amount of robots.


Obstacle Avoidance

As stated above, obstacle avoidance has not yet been added to the simulation. Adding people that walk around and holes that are static to the simulation which the robot should move around would make the simulation more realistic.


Human Interaction

Human Interaction between the robot and humans has been thought of in this project, but not yet implemented in the simulation. With some extra research, this could improve the reliability of the program and the efficiency of the robots.


Waterproof

As the robot is moving on the beach, it might get wet. It has been assumed this is a task for the builder to take care of for now. With extra research this could also be included in the simulation and the subsystem guidance.


Robot Design

Apart from further research in the simulation, further research could also be done in the robot design. For a specific beach the best subdesigns could be chosen and integrated using the V model. This would mean that first the different chosen components will be build and tested, and afterwards they would be integrated step by step. This would mean that the frame would need to be designed specifically for the designs chosen and that for example the locomotion and the litter collection mechanisms work together perfectly. This would require many tests and revisions of the model to do correctly, and therefore this is something that can be done in future research. To protect the robot against the elements, a hull could be designed.

Planning

Gantt chart

Gantt Chart PRE2017 15.png


Full size: File:Gantt Chart PRE2017 15.pdf

Coaching Questions

Coaching Questions Group 15

References

  1. 1.0 1.1 1.2 1.3 Milieu Centraal. 2015. Utrecht, Zwerfafval. S. de Waart, W. de Jong, M. Tijs
  2. Litter prevention. (2018, May 05). From https://www.kab.org/?pagename=focus_litter_prevention
  3. 3.0 3.1 3.2 3.3 CE Delft. 01.5090.21/Inzamel- en beloningsystemen ter vermindering van zwerfafval. Bergsma et al.
  4. ©AFP/Getty Images
  5. https://www.themorningbulletin.com.au/news/yeppoon-cafes-inspiring-move-to-create-clean-beach/3281692/
  6. http://www.downtoearth.org.in/blog/solving-india-s-garbage-problem-53956
  7. https://www.theatlantic.com/international/archive/2014/06/confessions-of-a-trash-tourist-india/373118/
  8. Ter Laak, Gemeente Utrecht, 2015, persoonlijke mededeling
  9. https://economictimes.indiatimes.com/smart-dustbins-that-give-you-free-wifi-not-rubbish-at-all/articleshow/55804651.cms
  10. http://www.omroepbrabant.nl/?news/2675941243/Efteling+inspireert+Eindhoven+en+Tilburg+steden+zoeken+moderne+Holle+Bolle+Gijs.aspx
  11. https://www.tilburgers.nl/afvalbak-de-trash-tree-winnaar-designwedstrijd/
  12. http://www.omroepbrabant.nl/?news/269611762/Pratende+prullenbakken+met+speciale+stemmen+voor+Sinterklaas+of+Kerstmis.aspx
  13. http://www.thefuntheory.com/worlds-deepest-bin
  14. Waibel, M., Beetz, M., Civera, J., D'Andrea, R., Elfring, J., Gálvez-López, D., . . . Van de Molengraft, R. (2011). RoboEarth. IEEE Robotics & Automation Magazine, 18(2). doi:10.1109/MRA.2011.941632
  15. Springer Handbook of Automation, chapter 70: Cleaning Automation - Norbert Elkmann, Justus Hortig, Markus Fritzsche
  16. Bormann, R., Hampp, J., Hägele, M.(2015). "New Brooms Sweep Clean - An Autonomous Robotic Cleaning Assistant for Professional Office Cleaning". 2015 IEEE International Conference on Robotics and Automation (ICRA), 4470-4477. doi:10.1109/ICRA.2015.7139818
  17. J. W. Kang, S. J. Kim, M. J. Chung, H. Myung, J. H. Park and S. W. Bang, "Path Planning for Complete and Efficient Coverage Operation of Mobile Robots," 2007 International Conference on Mechatronics and Automation, Harbin, 2007, pp. 2126-2131. doi: 10.1109/ICMA.2007.4303880
  18. 18.0 18.1 M. Waanders, Coverage Path Planning for Mobile Cleaning Robots
  19. H. Durrant-Whyte, T. Bailey, Simultaneous Localization and Mapping: Part I History of the SLAM Problem
  20. Joon Seop Oh, Yoon Ho Choi, Jin Bae Park, and Yuan F. Zheng, Fellow, IEEE
  21. R. Neumann de Carvalho, H.A. Vidal, P. Vieira, M.I. Ribeiro
  22. J. Borenstein, H. R. Everett, L. Feng, D. Wehe
  23. Chiang, C. (2015). Vision-based coverage navigation for robot trash collection task. 2015 International Conference on Advanced Robotics and Intelligent Systems (ARIS). doi:10.1109/aris.2015.7158229
  24. R. Bormann, J. Fischer, G. Arbeiter, F. Weißhardt, and A. Verl, "A Visual Dirt Detection System for Mobile Service Robots," in Proc. of the German Conference on Robotics (ROBOTIK), Munich, Germany, May 2012.
  25. R. Bormann, F. Weißhardt, G. Arbeiter and J. Fischer, "Autonomous Dirt Detection for Cleaning in Office Environments," in 2013 IEEE International Conference on Robotics and Automation (ICRA), Karlsruhe, Germany, May 6-10, 2013.
  26. J.Jeon, B.Jung, J.C.Koo, H.R.Choi, H.Moon, A.Pintado, P.Oh, "Autonomous Robotic Street Sweeping: Initial Attempt for Curbside Sweeping"
  27. Feifei Qian et al (2015), "Principles of appendage design in robots and animals determining terradynamic performance on flowable ground" in Bioinspir. Biomim. 10 056014
  28. Bonnema, G.M. (2012). System design of a litter collecting robot. CSER.
  29. Romanov, N., Johnson, C. E., Case, J. P., Goel, D., Gutmann, S., & Dooley, M. (2008). U.S. Patent No. US20110202175A1. Washington, DC: U.S. Patent and Trademark Office. "Mobile robot for cleaning"
  30. Obata, M., Nishida, T., Miyagawa, H., Kondo, T., & Ohkawa, F. (2006). Development of Outdoor Service Robot to Collect Trash on Streets. IEEJ Transactions on Electronics, Information and Systems, 126(7), 840-848. doi:10.1541/ieejeiss.126.840
  31. Nishida, T., Takemura, Y., Fuchikawa, Y., Kurogi, S., Ito, S., Obata, M., . . . Ohkawa, F. (2006). Development of outdoor service robots. Paper presented at the 2006 SICE-ICASE International Joint Conference, 2052-2057. 10.1109/SICE.2006.315491
  32. Ma, Y., Kim, S., Oh, D., & Cho, Y. (2008). A study on development of home Mess-Cleanup Robot McBot. 2008 IEEE/ASME International Conference on Advanced Intelligent Mechatronics. doi:10.1109/aim.2008.4601644
  33. Pattanashetty, K., Balaji, K. P., & Pandian, S. R. (2016). Educational outdoor mobile robot for trash pickup. 2016 IEEE Global Humanitarian Technology Conference (GHTC). doi:10.1109/ghtc.2016.7857304
  34. M. Ahmadi and P. Stone, "A multi-robot system for continuous area sweeping tasks," Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA 2006., Orlando, FL, 2006, pp. 1724-1729. doi: 10.1109/ROBOT.2006.1641955
  35. 35.0 35.1 G. Ferri, A. Manzi, P. Salvini, B. Mazzolai, C. Laschi and P. Dario, "DustCart, an autonomous robot for door-to-door garbage collection: From DustBot project to the experimentation in the small town of Peccioli," 2011 IEEE International Conference on Robotics and Automation, Shanghai, 2011, pp. 655-660. doi: 10.1109/ICRA.2011.5980254
  36. E. Rechtin. 1992. The art of systems architechting.
  37. Caltrans and USDOT. 2005. Systems Engineering Guidebook for Intelligent Transportation Systems (ITS), version 1.1. Sacramento, CA, USA: California Department of Transportation (Caltrans) Division of Reserach & Innovation/U.S. Department of Transportation (USDOT), SEG for ITS 1.1.
  38. 38.0 38.1 CE Twente. Het zwerfafvalprobleem op het Etty Hillesum Lyceum De Waard et al.
  39. https://www.worldweatheronline.com/vlissingen-weather-averages/zeeland/nl.aspx
  40. https://www.sony.net/SonyInfo/CorporateInfo/History/sonyhistory-j.html
  41. B. B. Dey, S. Manjanna and G. Dudek, "Ninja legs: Amphibious one degree of freedom robotic legs," 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems, Tokyo, 2013, pp. 5622-5628. doi: 10.1109/IROS.2013.6697171
  42. Ryan D Maladen and Yang Ding and Paul B Umbanhowar and Daniel I Goldman, "Undulatory swimming in sand: experimental and simulation studies of a robotic sandfish", 2011 The International Journal of Robotics Research vol. 30. doi: 10.1177/0278364911402406
  43. H. Ohno and S. Hirose, "Design of slim slime robot and its gait of locomotion," Proceedings 2001 IEEE/RSJ International Conference on Intelligent Robots and Systems. Expanding the Societal Role of Robotics in the the Next Millennium (Cat. No.01CH37180), Maui, HI, 2001, pp. 707-715 vol.2. doi: 10.1109/IROS.2001.976252
  44. 44.0 44.1 44.2 44.3 Böttcher, S. (2006). Principles of robot locomotion. Available at http://www2.cs.siu.edu/~hexmoor/classes/CS404-S09/RobotLocomotion.pdf
  45. Luneckas, M., Luneckas, T., Udris, D., & Ferreira, N. (2014). Hexapod Robot Energy Consumption Dependence on Body Elevation and Step Height. Elektronika Ir Elektrotechnika, 20(7), 7-10. doi:10.5755/j01.eee.20.7.8017
  46. J. Morales, J. L. Martinez, A. Mandow, A. J. Garcia-cerezo, J. M. Gomez-gabriel and S. Pedraza, "Power Analysis for a Skid-Steered Tracked Mobile Robot," 2006 IEEE International Conference on Mechatronics, Budapest, 2006, pp. 420-425. doi: 10.1109/ICMECH.2006.252564
  47. S.Roland, Introduction to autonomous mobile robots, pp. 12-45, 2004
  48. https://www.ien.com/product-development/article/20493735/rolling-resistance-industrial-wheels
  49. Ogorkiewicz, R. M. (1991). Technology of tanks (pp. 227-229). Retrieved from Internet Archive website: https://archive.org/details/Janes_Technology_of_Tanks_01
  50. Gillespie, T. D. (1992). Fundamentals of Vehicle Dynamics, Society of Automotive Engineers (pp. 117). ISBN: 1-56091-199-9
  51. D. Lowe, "Object Recognition from Local Scale-Invariant Features"
  52. N.S. Kopeika, "A system engineering approach to imaging"
  53. F. Galgani, G. Hanke, T. Maes, “Global Distribution, Composition and Abundance of Marine Litter
  54. http://statline.cbs.nl/Statweb/publication/?VW=T&DM=SLNL&PA=70262ned&D1=a&D2=0&HD=180313-1350&HDR=G2&STB=T
  55. Bergmann, M., Gutow, L., & Klages, M. (Eds.). (2015). Marine anthropogenic litter. Cham: SpringerOpen. doi:10.1007/978-3-319-16510-3
  56. AMERICAN SAMOA POWER AUtHORITY MATERIALS MANAGEMENT OFFICE (http://www.aspower.com/aspaweb/bids/RFP%20NO.%20ASPA14.1216%20ASPA%20AND%20PUBLIC%20JOINT%20VENTURE%20RECYCLING-Appendix%20A.pdf)
  57. 57.0 57.1 Felippe Schmoeller da Roza, Vinicius Ghizoni da Silva, Patrick Jose Pereira and Douglas Wildgrube Bertol. Modular robot used as a beach cleaner. March 7, 2016
  58. 58.0 58.1 58.2 John Mazurkiewicz. How efficient is your servomotor. http://www.machinedesign.com/technologies/how-efficient-your-servomotor. Sep 01, 2002
  59. Robotic All-metal Claw for Robot Arm DIY (https://www.elecrow.com/robotic-all-metal-claw-for-robot-arm-diy.html)
  60. http://www.trossenrobotics.com/dynamixel-ax-12-robot-actuator.aspx
  61. https://www.amazon.com/Futaba-FUTM0031-S3003-Standard-Servo/dp/B0015H2V72
  62. 62.0 62.1 Francisco Cuellar, Michel Siguenza, Franco Guillen Basantez, Elizabeth Gutierrez and Dante Arroyo López. IEEE Open Category: Beach Cleaner. 2013. http://www.natalnet.br/lars2013/LARC/Artigo11.pdf
  63. MG958 http://www.towerpro.com.tw/product/mg958/
  64. MG958 digital servo. https://www.hobbyelectronica.nl/product/mg958-digital-servo/
  65. ULTEM 3D printing filament. https://www.3dxtech.com/ultem-9085-3d-printing-filament/
  66. 66.0 66.1 Oscar Cieza, Carlos Ugarte, Elizabeth Gutiérrez, Javier García, José Tafur. Prometeo: Beach Cleaner Robot. 2012. http://www.sistemaolimpo.org/midias/uploads/d7abd08b1e341fcd029c5ca0e3ca2218.pdf
  67. MG995. http://www.towerpro.com.tw/product/mg995/
  68. MG995 Digital metal servo. https://www.kiwi-electronics.nl/mg995-digital-metal-servo
  69. Siemens NX: https://www.plm.automation.siemens.com/en/products/nx/
  70. https://www.newport.com/t/introduction-to-solar-radiation
  71. https://news.energysage.com/what-are-the-most-efficient-solar-panels-on-the-market/
  72. https://news.energysage.com/average-solar-panel-size-weight/
  73. https://en.wikipedia.org/wiki/Comparison_of_commercial_battery_types
  74. http://www.epectec.com/batteries/chemistry/
  75. https://en.wikipedia.org/wiki/Lithium_polymer_battery
  76. http://batteryuniversity.com/learn/article/bu_1006_cost_of_mobile_power
  77. https://data.bloomberglp.com/bnef/sites/14/2017/07/BNEF-Lithium-ion-battery-costs-and-market.pdf
  78. http://www.epectec.com/batteries/chemistry/m
  79. Cook D. (2015) Nine-Volt Batteries. In: Robot Building for Beginners. Apress, Berkeley, CA
  80. http://www.europarl.europa.eu/news/en/press-room/20131004IPR21519/meps-ban-cadmium-from-power-tool-batteries-and-mercury-from-button-cells
  81. http://cleanleap.com/7-electricity-transport/71-battery-cell-and-pack-costs-and-characteristics
  82. http://batteryuniversity.com/learn/article/electric_vehicle_ev
  83. Müller et al. PV-off-grid Hybrid Systems and MPPT Charge Controllers, a State of the Art Analyses, Energy Procedia, Volume 57 2014, pp. 1421-1430, ISSN 1876-6102, https://doi.org/10.1016/j.egypro.2014.10.133.
  84. https://drive.tech/en/stream-content/on-the-efficiency-of-drive-components
  85. https://www.maxonmotor.nl/maxon/view/catalog/
  86. https://www.tesla.com/powerwall
  87. https://www.nippon.com/en/views/b00902/
  88. From KJ Vogelius on flickr - https://www.flickr.com/photos/kj_/3668908841
  89. http://www.info.gov.hk/gia/general/201608/26/P2016082600760.htm
  90. https://www.alleghenyfront.org/the-psychology-of-littering/
  91. https://newatlas.com/social-trash-box-robot/29769/
  92. Jayson A. Corey, Nick M. Sitar, and Shea M. Bernardo - Gamification: Changing People’s Behavior with Fun - Worcester Polytechnic Institute. Available from https://web.wpi.edu/Pubs/E-project/Available/E-project-042914-114258/unrestricted/Gamification1.pdf
  93. K. Hoffman, M. Padberg, G. Rinaldi, 2016, “Traveling Salesman Problem”