PRE2024 3 Group11: Difference between revisions
(added members page) |
No edit summary |
||
(85 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
https://docs.google.com/document/d/134X5otIGJQW5CHC_7DGSuY8oDns-jvgIoZ2rAsN69zg/edit?usp=sharing | |||
Final presentation: https://docs.google.com/presentation/d/1UnbBNV1ydnzloF3R05HMhvIAnWFgMi6zT5n6MISVKuk/edit?usp=sharing | |||
Code: https://github.com/lthoedt/0LAUK0-feeding-bot | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 10: | Line 14: | ||
|Computer Science and Engineering | |Computer Science and Engineering | ||
|- | |- | ||
|Thijs van Berkel | |||
|1831917 | |||
|Computer Science and Engineering | |||
|- | |||
|Pijke van Bohemen | |||
|1819755 | |||
|Computer Science and Engineering | |||
|- | |||
|Mihaita Manolache | |||
|1457543 | |||
|Computer Science and Engineering | |||
|- | |||
|Luca Borst | |||
|1669397 | |||
|Electrical Engineering | |||
|- | |||
|Jort Arendse | |||
|1761285 | |||
|Psycholgy and Technology | |||
|} | |||
== Introduction == | |||
Cities contain loads of birds who cannot find enough food to stay alive. Therefore, many people help these birds by supplying them with food like seeds or peanut butter. This helps most of these birds to get through the cold winter months. However, if you have ever looked outside at one of these food spots, you might have noticed that strong or large birds often try to eat from the feed as well. They however are much stronger than small birds and have less difficulty getting food naturally. They also scare away these small birds, who need food more than large birds. For example, in the Netherlands, a big subset of these strong birds are Magpies, who are quite aggressive. They will guard these feeding spots often and prevent tiny Sparrows from getting food. | |||
To help these smaller birds, we want to create a feed-dispenser-type device. It will be able to detect what birds are around it and will close off access to the food if large birds are trying to eat. To help you as a user in finding a good spot and making sure that the container will not get empty. It will send notifications about which bird is eating food, it will also send the current food level. | |||
== State of the art research == | |||
Before conducting interviews to gain a better understanding of the problem and how the product should be designed state of the art research was conducted. | |||
=== Existing product features === | |||
===== 'Big Bird' repellent ===== | |||
This feeder prevents big birds from feeding by using a closing door, based on the weight of the bird. If a small bird sits down on the metal ring to feed, nothing will happen, but when a big bird sits down on the metal ring, it exceeds the weight limit, presumably by using a spring. The plastic barrier might also help with deterring big birds, but its main purpose is deterring squirrels with its smooth and sloped surface. (Source: <nowiki>https://www.gardenwildlifedirect.co.uk/pest-free-squirrel-proof-seed-feeder.html</nowiki>, and: <nowiki>https://www.tfmsuperstore.co.uk/products/leto-small-bird-seed-feeder-anti-big-bird/</nowiki>) | |||
This feeder prevents big birds from feeding by enclosing the entire feeder in a cage. The size of the holes in the cage is chosen such that big birds and squirrels cannot get through, while smaller birds (like the “Koolmezen” in the image). (Source: <nowiki>https://www.gardenwildlifedirect.co.uk/national-trust-aura-peanut-feeder.html</nowiki>) | |||
===== Bird detection ===== | |||
This bird feeder has a camera that detects bird species with the use of ‘AI’. It is connected to an app that notifies you if a bird is present. The app allows you to see more information about the bird on Wikipedia. It allows you to store footage on-device with an optional SD card or using their cloud subscription (the AI bird recognition also requires this subscription). The birdhouse is equipped with solar panels and an internal battery to provide its own electricity. Additionally, it is equipped with a light and a speaker that can be used to scare away squirrels if the camera detects them. (Source: <nowiki>https://www.amazon.com/GNCC-Squirrel-Notifications-Identify-B1/dp/B0CDXFPTRM</nowiki>) | |||
This bird feeder has a camera for bird recognition. It has WiFi connectivity to connect to an app, which can notify you if a bird is present. The app also tracks the number of visits per species. Additionally, the app allows you to name specific birds, identify sick birds, and send notifications if other animals (like pets) are near the feeder. This feeder needs to be charged manually, unless you buy the optional solar panels. The app also allows for you to livestream the feeder’s feed (publicly). In the app, you can view streams from feeders all over the world. Finally, the site claims that the photos taken by the feeder help researchers track bird population and migration. (Source: <nowiki>https://mybirdbuddy.eu/product/smart-bird-feeder/</nowiki>) | |||
== USE == | |||
An automatic bird feeder can be made into a product suitable for multiple purposes and can be interesting for different users. Most birdfeeders are in gardens of people who simply like to watch birds from the comfort of their homes. However, they do not know when birds are feeding and thus when they can watch them. The automatic birdfeeder is ideal for this type of situation because it can send a message to the user's phone alerting them which type of bird is in their garden. For example, an elderly man who loves to bird watch has 2 feeders in his garden at different places around his house. His vision is a bit impaired, so he cannot keep a close watch on the feeders since this costs too much energy. With the automatic birdfeeder, he does not have to keep a close watch since he now knows when and which bird is feeding, giving him a very pleasant user experience. The app which sends the message can also have a educational purpose if in the message information about species was added. That way people would learn about birds and how important they are for biodiversity. This way awareness is created about nature and the importance of preservation. | |||
The automatic birdfeeder can also directly be used for wildlife conservation in areas where certain species have a difficult time surviving. Many habitats have exotics, species not native to an area, that were taken as pets from different countries and escaped. These exotics pose a big danger to the biodiversity of ecosystems since they do not have natural predators living there. As a result, the numbers of their population increase rapidly, leaving not enough food for native species. With the automatic bird feeder, wildlife reservists can help the native species by giving them food without the exotics benefiting from their advantage. The automatic birdfeeder can also help in helping to understand the severity of the problem by keeping count of the birds that tried to feed. This is also interesting for researchers and ornithologists to preserve ecosystems better since birds play a vital role in almost all ecosystems globally. Not only exotics, but also urbanisation posses a problem for birds and other animals. Habitats shrink rapidly because of cities having to expand. By having birdfeeders which could give the correct food to the birds you could prevent species from fully disapearing and being able to live more and more in the cities themselves. | |||
Bigger birds can be of great annoyance to people who like to feed birds in their garden. By for example scaring away little birds, leaving feces and making a mess by dropping the food on the ground. An automatic bird feeder would be able to deter these bigger type of birds the user would not like. This would make it an interesting product for companies to develop and to sell to society. | |||
For the scope of this course, we decided to focus on the group of people who just like to have a feeder in their garden. To understand their needs better, we have conducted multiple semi-structured interviews with different users. The first questions were open questions regarding peoples bird watching behaviour. The latter questions were more guided by already identified possible features. These features were a way to scare off larger birds, a notification feature, bird identification and overfeeding prevention. The participants gave their thoughts on the proposed features and ranked them from most useful to least useful. The research questions and short summaries of the interviews can be found in Appendix D and Appendix E. From the answers, an affinity diagram was made with five different identified themes. | |||
[[File:Affinity diagram birds.png|thumb|900x900px|center]]The users had a preference for detering bigger birds and less for an app with a notifying or a educational purpose. The overfeeding problem was also less of a problem in their minds. Another very important aspect was that the bird feeder should not be too complex. People want to see birds without having to instal a complicated bird feeder. | |||
== Requirements == | |||
=== MoSCoW === | |||
It is important to note down the exact requirements we have for this project. This gives us a clear goal to work towards and also helps us later to create a test plan. In this section, we note down our requirements for our project. We base these on the affinity attributes mentioned above and rank them according to the MoSCoW Theory. This means that every requirement has a given priority based on how important it is for the final prototype. | |||
These requirements are split up in different categories: physical design, electronics, communication, app design, app user interface, and other app requirements. Most of these requirements are for potential further developments of our project. We thought of them during the initial phase of our project, but we realized that we did not have time to finish most of the requirements in time. | |||
One of the biggest features we decided to scrap is the app. We mentioned it during our interviews and in our initial phase, but we decided that it was outside the scope of our project, because of the time constraints. | |||
{| class="wikitable" | |||
|+MoSCoW | |||
!Requirement ID | |||
!Description | |||
!Priority | |||
|- | |||
|PD01 | |||
|The system shall have a container for bird food | |||
|Must have | |||
|- | |||
|PD02 | |||
|The system shall allow the user to hang the system on a hook | |||
|Could have | |||
|- | |||
|PD03 | |||
|The system shall allow the user to hang the system using screws | |||
|Could have | |||
|- | |||
|PD04 | |||
|The system shall have a landing area for the birds | |||
|Should have | |||
|- | |||
|PD05 | |||
|The system shall have a door to the bird food | |||
|Must have | |||
|- | |||
|PE01 | |||
|The system shall measure the amount of bird food left in the container | |||
|Won’t have | |||
|- | |||
|PE02 | |||
|The system shall record the area in front of the door | |||
|Must have | |||
|- | |||
|PE03 | |||
|The system shall detect birds approaching the cage | |||
|Must have | |||
|- | |||
|PE04 | |||
|The system shall close the door to the bird food if an undesired bird* has been detected | |||
|Must have | |||
|- | |||
|PE05 | |||
|The system shall keep the door to the bird food open if no undesired bird* has been detected | |||
|Must have | |||
|- | |||
|PE06 | |||
|The system shall open the door to the bird food if no undesired bird* has been detected and the door is closed | |||
|Must have | |||
|- | |||
|PE07 | |||
|The system shall scares away undesired birds | |||
|Should have | |||
|- | |||
|PE08 | |||
|The system shall record the number of detected birds | |||
|Could have | |||
|- | |||
|PE09 | |||
|The system shall record the species of detected birds | |||
|Could have | |||
|- | |||
|PE10 | |||
|The system shall have an internet connection | |||
|Must have | |||
|- | |||
|PE11 | |||
|The system shall produce audio to attract desired birds | |||
|Could have | |||
|- | |||
|PE12 | |||
|The system shall refill the food if less than 50 grams of food is detected | |||
|Won’t have | |||
|- | |||
|PE13 | |||
|An additional power source, like solar panels, shall power the system. | |||
|Won’t have | |||
|- | |||
|PC01 | |||
|The system shall send the amount of bird food left in the container to the app | |||
|Won’t have | |||
|- | |||
|PC02 | |||
|The system shall send the recorded data to the app | |||
|Could have | |||
|- | |||
|PC03 | |||
|The system shall allow the user to connect the system to a registered account | |||
|Won’t have | |||
|- | |||
|AD01 | |||
|The app shall display the amount of food left in the container | |||
|Won’t have | |||
|- | |||
|AD02 | |||
|The app shall display the number of birds by species detected | |||
|Won't have | |||
|- | |||
|AD03 | |||
|The app shall graph the number of birds detected | |||
|Won't have | |||
|- | |||
|AD04 | |||
|The app shall graph the amount of food measured | |||
|Won’t have | |||
|- | |||
|AU01 | |||
|The app shall allow the user to register a new account | |||
|Won’t have | |||
|- | |||
|AU02 | |||
|The app shall allow the user to login to a new account | |||
|Won’t have | |||
|- | |||
|AU03 | |||
|The app shall allow the user to connect the account to multiple of our products | |||
|Won’t have | |||
|- | |||
|AU04 | |||
|The app shall display general information about bird species | |||
|Won't have | |||
|- | |||
|AO01 | |||
|The app shall send a push notification to the user if there is less than 50 grams of food left | |||
|Won’t have | |||
|- | |||
|AO02 | |||
|The app shall recommend bird food | |||
|Won't have | |||
|- | |||
|AO03 | |||
|The app shall allow the user to export data to a .csv file | |||
|Won’t have | |||
|} | |||
== Research == | |||
=== Bird luring === | |||
Early in this project, we also thought about adding ways to attract birds to our bird feeder. Although we didnt go through with this, as apparent from our requirements, we did research anyway for accomplishing this and found valuable information for future enhancements of our project. | |||
In "Trees, Shrubs and Vines for attracting birds" by DeGraaf, he documents a wide variety of plants and what birds are interested in those plants. He documents whether birds settle near the plant, take shelter near the plant or eat its fruits. We can use this information to add plants to our birdfeeder itself, or guide users in creating a preferable habitat for the birds they would like to atract. Furthermore, McAtee mentions that birds, especially in dry periods, are attracted to water supplies. They like water supplies for both drinking and washing purposes. Again, this information could be used to further enhance our product or to guide users in creating a prefered habitat for birds. | |||
We also hypothesized that mimic bird sounds could attract birds to our product. We could not find any good research that aligned that subject with our project, but we found various discussions across the internet. One of the main concerns about this approach is whether it is an ethical approach or not, as it essentially relies on deceiving birds. Furthermore, it could also have the opposite effect, as it could scare away birds because of territorial behaviour. We thus quickly realized that this is not a feature we want to add to our project. | |||
== Design == | |||
=== Sketches === | |||
We first made two rough sketches so we could have a discussion about those. These two rough sketches are presented below. They each are designed with some common requirements, they must store the food, they must have something such that birds can stand and eat and they must have something that can cover the food. | |||
{| class="wikitable" | |||
|+ | |||
|[[File:Sketch -1.jpg|center|frameless|545x545px]] | |||
|[[File:Sketch -2.png|center|frameless|500x500px]] | |||
|} | |||
=== Prototype === | |||
After the sketches were made, a discussion followed to further determine our design. We decided on the main shape and features that we could use to actually create our prototype. Following this, we made more formal drawings of our design using 3d rendering software. The results of this are displayed below. The images aren’t to scale, but they give a general impression of our prototype. We will construct this prototype ourselves using electrical components and wood planks. | |||
The dimensions of our prototype are about 14x18x20 cm. The door itself is about 6 cm. Our product contains two separate rooms. One room is used to store food, the other is used to store the electrical components. The door can be opened or closed using a servo that is connected to the raspberry pi. On the front is a camera that can capture images. | |||
{| class="wikitable" | |||
|+ | |||
|[[File:Prototype -2.png|frameless|600x600px]] | |||
|[[File:Prototype -1.png|frameless|600x600px]] | |||
|} | |||
=== Classifier (Recognition System) === | |||
The classifier is the component in the system responsible for detecting and recognising (classifying) birds. Specifically, the classifier is tasked with classifying whether an image, outputted by the camera, contains a specie of bird which is considered undesirable. | |||
For the classifier, we have used Roboflow. Roboflow is a platform that useful tools for computer vision models. We have also considered using models more directly using the PyTorch library, but this proved more cumbersome in terms of configuration. After some basic testing, Roboflow did not seem to perform significantly worse than PyTorch in classification. | |||
The Raspberry PI is capable of running the Roboflow server through Docker, but our particular model of Raspberry PI (model 4B) seemed to have an older instruction set, on which Roboflow could not be run. Instead, for our prototype, we ran the Roboflow server on a laptop and communicated over wifi. | |||
[[File:Koolmees en Mus.jpg|thumb|300x300px|Example input for the classifier. The object detector reports two bird 'objects': the left with a confidence of 92%, the right with 95%. The classifier reports the left to be 'Sparrow' (61%) and the right to be 'Great Tit' (79%)]] | |||
==== Corner Cases ==== | |||
There are two corner cases regarding birds classification: the system might encounter a bird it cannot classify, or multiple birds might be encountered at one time. | |||
For the first case, if the system encounters a bird that it cannot classify, it will assume that the given bird is not undesirable. This is to prevent any false negatives. False negatives -- closing the door when a potentially desired but unclassified bird is seen -- could have scared off more birds, and, as birds are often reluctant to feed in new spots, we feared we would scare off more birds permanently from our feeder. | |||
For the second case, when the classifier recognizes both a desired and undesired bird, it prioritizes the fact that an undesired bird was encountered, and closes the door. This is because (apparent from our interviews) some birds bully others, and one of the points of our feeder is to minimize this behaviour and attempt to give smaller birds an advantage. Leaving the door opened could have given more opportunity for bullying birds to scare off smaller ones. | |||
[[File:Huismus, man.jpg|thumb|300x300px|One of the base images used for the dataset.]] | |||
==== Structure ==== | |||
The classifier consists of two parts: a (general) object detector in order to detect where in the image a bird might be, followed by a ViT (Vision Transformer) classifier which classifiers the bird. The object detector outputs a bounding box detailing the position of the recognized birds. The image is cropped to this bounding box, then resized to a default resolution, and finally used as the input to the ViT. | |||
We have used the "YOLOv11" model for the object detector, and trained our own model for the ViT classifier. We have chosen to use an object detector in addition to the simple ViT classifier for two reasons: | |||
Firstly, the camera is angled outwards, viewing a larger area, meaning that the images contain birds at difference distances, and hence different apparent sizes. If the ViT is trained on a dataset where all the birds were photographed from more or less the same distance, then it might give inconsistent output when classifying images with birds from a further distance. Thus, by first cropping the images using the object detector, we could be more certain of consistent outputs. | |||
Secondly, there could be multiple birds in view at one time. In such case, a simple single-output ViT classifier is not sufficient. The object detector can recognize multiple objects in one scene, and each bird recognized by the object detector is classified separately by the ViT, which simplifies the requirements for the ViT, as it can be trained on simple images containing one bird each.[[File:Sparrow, cropped after YOLOv11.jpg|thumb|221x221px|The same image from the dataset after it has been cropped using the object detection model.]]We have chosen for "YOLOv11" simply for the fact that it was the most recent pre-trained object detector model available in Roboflow. Alternatives would have been less recent versions (such as "YOLOv8") or train our own model, but given the scope of the prototype and the fact that the pre-trained model worked well enough, we chose the pre-trained model. | |||
Lastly, we wish to mention the confidence threshold as one of our hyperparameters: we had a confidence threshold of >0.4 for our ViT classifier. This is because after some testing, we had noticed that this suffice in cutting out the additional output. For instance, when classifying a sparrow, the classifier will also always output some small chance of it being crow. These small chances were typically below 0.3, so a cut-off of 0.4 provided a bit of margin on top of that. | |||
==== Dataset ==== | |||
The dataset was chosen to have four classes, two of which were generally desired birds, namely sparrow and great tit, and two of which were undesired, namely crow and magpie. This limited set of classes was chosen as necessary minimum viable product to display the prototype's ability to classify birds. The birds were chosen from the results of the interviews. Other possible classes would have been "blackbird" or "sea gull". | |||
Each dataset contains eight images, selected from online image searches, which are cropped YOLOv11. Each image is furthermore also copied and rotated +15 or -15 degrees to generate additional training data. The chosen images varied in size and background, and the birds depicted varied in the direction in which they were photographed. | |||
We had also looked at using a pre-trained model for bird classification. Most of the existing models we had looked at, however, seemed to be trained on datasets of North American bird species. Some quick manual tests showed that these pre-trained models were inadequate for classifying common Dutch birds, given they were not present in the respective datasets. | |||
=== Door system. === | |||
One of the two core principles is the door that closes when unwanted birds are in front of the feeder, so we put a lot of thought into how we wanted to design the door mechanism. We primarily evaluated our choices on their mechanical complexity and how dangerous they would be to birds. The option we ended up using was a drop-down hatch. Normally, the door would rest in the horizontal position, giving access to the food inside. | |||
Then, when the system decides the door needs to be closed, it rotates from angle_zero to angle_one using a small servo motor. Angle_zero and angle_one correspond to 0 and 90 degrees, respectively. Due to physical limitations of the servo, the servo’s arm doesn’t rotate a full 90 degrees but rather about 80 degrees. To make up for this difference, we designed the birdhouse to have a little protrusion in front of the door, which makes sure the door can fully close. | |||
The closing of the door works exactly the same but in reverse. It rotates 80 degrees from its vertical position to its horizontal position, allowing access to the food again. The opening and closing motion is done over a span of a couple of seconds.[[File:Door mechanism.png|center|268x268px|Side view of door mechanism]] | |||
Mechanically, this design is not very complicated. Depending on how you want the aesthetics of the feeder to be, you can either mount the door directly to the motor’s axis, with the motor being mounted on the outside of the feeder, or you can put the motor inside the feeder and use something like gears or chains to rotate the door. | |||
We have chosen to put the motor inside the feeder, but as we do not know the precise layout at the time of making the decisions, the actual implementation is left to design in the modeling stage. We also think this door is quite bird-friendly. The door does not have to close fast, so if there are still birds feeding when the door has to close, they are gently pushed back without risk of getting stuck between the door. | |||
The other option that was considered was a door that rotated in front of the circular hole the food was accessible from. The door would normally be rotated such that it was not blocking the food, either upright or to the side, depending on where the camera would have been placed. Then if the system decided there was an unwanted bird present, it would rotate the door such that it would block the ‘food hole’. Then, when the system decides the food might become accessible again, it would reverse this process, rotating the door away from the hole. | |||
Mechanically, this idea is very simple. You can simply mount the door directly to a servo with its rotation axis orthogonal to the front side of the feeder, and then it only has to rotate a specific amount. You could even help the motor by placing stoppers on both sides of the rotation to prevent the motor from rotating the door too far. However, we ended up not choosing this design. Even though mechanically it is very simple, we did fear for the safety of the birds. | |||
If the motor is very strong, we fear that birds might get their heads stuck and get seriously injured, which is not what we want. If the motor is just barely strong enough to move the door (or you have some sort of advanced door-obstruction system), the door will not crush the bird’s head. However, we might fear that the birds are smart enough to figure this out. They might be scared of a moving object closing in on them the first few times, but we predict birds (especially bigger birds) will be smart enough to figure out this system is actually harmless, which then renders our entire design useless. Overall we might have been able to make this door work, but our other idea wasn’t that mechanically complex either, and we preferred how it looked/functioned over this one. | |||
=== Component list === | |||
We chose to use a Raspberry Pi since it is easy to program, it has all the functionality we need, and it was available to use. A RPi allows us to implement image recognition functionality and is able to transfer data via a WiFi module in case we want to evaluate real-time data. We chose to use a small servo motor to be able to open and close the door. These servos are compact and cheap, can be connected to the RPi, and are relatively reliable. | |||
In order to detect birds, we considered several options: a distance sensor, a pressure plate and a camera. In theory we would be able to recognise a bird based on its weight; the problem is the bird would have to land exactly on the weight sensor and would have to have the exact weight of its species. Bird species with similar weight or birds with deviating weight would essentially throw the bird recognition off. In the end we went with the camera options, as this allowed us to be able to both detect birds and recognise them. The camera is placed in front of the birdhouse, slightly tilted at an angle of 27.7 degrees so that it can oversee distances from about 0.7 cm to 30 cm in front of the birdhouse. The camera module has a FOV of about 62 degrees. | |||
We have chosen to make our product out of wood, since it is available to us, it is easy to use, and it conserves the look of classical birdhouses. We decided on the specified size, as it was easily available to us, and it is easy to use the birdhouse in this way. The door is currently made out of cardboard to make sure the small servo motor can handle it. In future iterations the door might also be made out of wood, but this would require the servo motor to be upgraded. | |||
[[File:Component diagram.png|center|thumb|Component diagram of the whole system]] | |||
[[File:Camera bereik.png|center|thumb|Frontal horizontal distance the camera is able to oversee, ranging from 0.7 cm to 30 cm]] | |||
=== Sequence diagram === | |||
[[File:Sequence Diagram Selective Bird Feeder.png|center|thumb|Sequence diagram of the Selective Bird feeder]] | |||
=== Non-focus areas === | |||
If we were a company designing this product for the actual market, we would have to think of every aspect. But as we only have a limited time for this project, we have chosen to focus on the primary aspects of our design. These are the detection of bird species (with the camera) and the closing and opening of the door. But there are some other aspects for bird feeders that might be relevant that we have placed outside of the scope for our project. | |||
===== Power supply ===== | |||
Our design uses electronic components for the detection of birds and the operation of the motor. This requires electricity, which has to come from somewhere. For our current prototype we will be using whatever method is most convenient, whether this be a power bank or simply connecting it with a laptop. For a market-ready product, options like a changeable battery, solar panels and connection to a power outlet are possible ways of getting power. | |||
===== Mounting mechanism ===== | |||
Our prototype will simply be a feeder you can put on a table, as we have taken no special considerations for mounting the feeder. For a market-ready product you can alternatively consider wall-mounting or pole-mounting the feeder. | |||
===== Refilling ===== | |||
The prototype might contain a method to access the food storage from which you can refill the food supplies, but this is not a focus. The simplest solution would just be to make the roof removable. | |||
===== Microprocessor /microcontroller ===== | |||
We will use a Raspberry Pi in our design. This is an ideal tool for prototyping because the Pi can be programmed however you like. However, because the Pi is so versatile, it has a lot of components we do not use. For a market-ready product, it would likely be preferred to design your own electronic PCB (combined with already existing ICs) with only the functions the feeder requires. This would make it a lot more compact and power efficient and would reduce production cost. | |||
===== Aesthetics ===== | |||
We have made some decisions for our prototype based on looks, but overall the design could be a lot more polished. However, it is also well known that prototypes are generally not concerned with aesthetics, and we will also be primarily focused on the functional aspect of the design. For a market-ready product, you could change the shape, creating a custom mould to fit its exact needs. | |||
== Testing == | |||
=== Test plan === | |||
{| class="wikitable" | |||
|+ | |||
!'''Test''' | |||
!'''Requirement''' | |||
!'''Precondition''' | |||
!'''Action''' | |||
!'''Expected output''' | |||
!'''Observed Output''' | |||
!'''Result''' | |||
|- | |||
|servomotor | |||
|Servomotor works | |||
| Servomotor is on | |||
| Signal is given to servomotor | |||
|Servomotor changes from its initial state | |||
|Servomotor arm changed position | |||
|Pass | |||
|- | |||
|Camera | |||
|Camera works | |||
| Camera is on and is connected to a laptop | |||
|Camera is connected to laptop | |||
|Recordings from camera can be seen on the laptop | |||
|The laptop shows the recordings of the camera with a small delay | |||
|pass | |||
|- | |||
|Raspberry pi 3 | |||
|The raspberry works | |||
|The raspberry is on and connected to a laptop | |||
| | | | ||
|Laptop shows connection with raspberry pi | |||
|Laptop gave signal raspberry was connected | |||
|pass | |||
|- | |||
|bird identification | |||
|The subsystem can detect 4 types of birds from printed images | |||
|Detection system is on | |||
|An image of a bird is shown | |||
|The software correctly identifies each individual bird. | |||
|Identification system reports type of bird correctly | |||
|pass | |||
|- | |||
|bird identification system multiple birds | |||
|The subsystem can detect 2 types of birds at the same time from printed images | |||
|Detection system is on | |||
|An image of with two birds is shown | |||
|The software recognises the presence of 2 different birds and identifies both correctly | |||
|Identification system reports both birds correctly | |||
|pass | |||
|- | |||
|Door opening and closing | |||
|Door can open and close | |||
|Servomotor is powered on | |||
|Door gets signal to close | |||
|Door closes and after 30 seconds opens | |||
|Door closes in 4 seconds and opens again after 30 seconds | |||
|pass | |||
|- | |||
|Bird stuck prevention | |||
|Door can open and close without leaving more than 2 cm of space for a bird to get stuck | |||
|Servomotor is powered on | |||
|The door opens and closes | |||
|The door closes without ever leaving more than 2 cm of space | |||
|At every point of closing the door leaves less than 2 cm | |||
|pass | |||
|- | |||
|Bird crushed prevention | |||
|The door can open and close without birds getting stuck | |||
|Servomotor is powered on | |||
|The door opens and closes | |||
|The door closes in 4 seconds leaving enough time for the bird to fly away. It also leaves a bit of a gap preventing the bird from getting stuck | |||
|The door close slowly in 4 seconds and leave a gap | |||
|pass | |||
|- | |||
|outside condition test | |||
|The robot can withstand the outside conditions without technical difficulties | |||
|Robot is outside for multiple days, powered on and has feed in its storage compartment | |||
|Robot runs | |||
|The robot does not have any technical problems caused by outside conditions | |||
|Robot only left outside for one day, no technical difficulties | |||
|Not completed | |||
|- | |||
|undesired bird prevention test | |||
|The robot prevents classified undesired birds from feeding | |||
|Robot is outside for multiple days, powered on, has feed in its storage compartment and sends pictures to a laptop to confirm the test is completed | |||
|undesired Birds come and feed at the robot. | |||
|The robot closes the door for undesired birds | |||
|No undesired birds detected during testing day. | |||
|Not completed | |||
|- | |||
|Desired bird stuck prevention reality | |||
|The robot prevents classified desired birds from getting stuck and allows them to feed | |||
|Robot is outside for multiple days, powered on, has feed in its storage compartment and sends pictures to a | |||
|desired Birds come and feed at the robot. | |||
|Robot keeps door open for desired birds. When undesired birds come and feed no birds gets stuck in the | |||
|No birds detected during testing day | |||
|Not completed | |||
|} | |||
=== Tests === | |||
The test plan is split in multiple types of tests: component tests, sub-system tests, system tests and a prototype test. | |||
The component tests are simply for testing if the servo motor, camera and raspberry pi worked. The sub-system tests test a part of the robot seperate from the whole. This makes it easier to make changes without having to disassemble to whole robot. Full system test in a controlled environment where done to see if the whole robot would function. In the end a prototype was tested in the real world. | |||
The component, sub-system and system tests went very well. Only a few changes needed to be made after which the tests were conducted again. Those changes involved allowing the software to detect and identify multiple birds, changing the speeds of the door closing and leaving a bit of a gap preventing birds to get stuck. | |||
To get as much data as possible from the outside test, without somebody having to sit and watch the feeder all day, an addition to the program was made. This addition had to make sure that when the identification system detected a bird pictures would be taken and send to a laptop. Unfortunately because of time constraints the bird feeder was only outside for one day. It did withstand the weather conditions, which were good that day, but no bird tried to feed at the feeder. This was however to be expected since birds need more time to get used to the new feeder before they try to get the food. Unfortunetely there was not enough time to leave the robot outside for multiple days. This resulted in the prototype tests not being completed. | |||
== Discussion == | |||
=== Conclusion === | |||
This project was about solving the problem of having unwanted birds feeding at bird feeders. After interviewing users related to this problem, we established our goals of making a bird feeder that fends off these birds. This came in the form of a custom bird feeder, with the ability to recognize the type of birds in front of the feeder and a door which can open and close based on bird activity. | |||
During the project, we managed to construct a working prototype. It has an image recognition system that can accurately distinguish between birds in the small test set we have established. The door mechanism functions adequately, closing slowly to prevent birds from getting stuck, and then opening again 30 seconds after an unwanted bird was last detected. | |||
Therefore, we consider the project a success. | |||
=== Limitations === | |||
Due to the time restrain there was not enough time to test the bird feeder in a real life situation for long enough. Real life tests almost always shed light on all sorts of problems the developers had not anticipated. There also was not enough time to do more than just the identification and the door opening and closing. The other ideas we had for example the message and other features would make the bird feeder worth a lot more than it currently is. | |||
The robot is only able to identify 4 types of birds common in the Netherlands. There are a lot of birds for which the program is not trained. To have a fully operational product the model needs to be trained to identify other types of birds. Not only in the Netherlands but also other different areas. | |||
The identification system was only trained on a few pictures. Meaning that if the birds would come from a different angle it would not be able to detect what type of bird was present. The camera therefore either needs to have a better point of view or be trained with pictures taken from above the birds and at the correct angle. The different camera angle has as disadvantage that you need two places in which you have to hang the product which makes it more difficult for the user to install. For the other solution you would need a lot pictures from a difficult angle. Most pictures of birds are not taken from above and finding enough data to train the model correctly could be very challenging. | |||
=== Future work === | |||
While the current prototype has all the basic functionality, it is in no way a final product. If one were to continue working on the feeder, many improvements to both the hardware and the software of the device should be considered. | |||
For example, the current prototype is made of a few planks that are screwed together. This works for housing all the components and the bird food, but it is not very weather-proof and it does not look very nice. A future prototype could use prettier, more weather-resistant materials. This could still be wood, but alternatively one could design a custom plastic housing, also enabling you to design the feeder more freely. | |||
Furthermore, it is likely that each of the electronic components will have to be swapped with something different. The current camera is not very weather proof, and other camera's might have more beneficial properties (Think of: Bigger FOV, better resolution, better framerate, less power draw). Additionally, the placement of the camera could be changed. Currently it is positioned at the top at the front of the feeder. However, placing the camera lower might provide better images of the birds. This all depends on what camera is used, how far down it can see and what source images the image recognition is trained on. | |||
The (servo) motor could also be swapped. The current motor was chosen because it was quickly available, however we do not know how durable the motor is and if it can withstand thousands of opening/closing sequences over multiple years. Additionally, one could change how the door mechanism functions and could therefore require a different kind of motor. | |||
One should also consider replacing the Raspberry PI with a different (custom) circuit board. The Raspberry PI is essentially a versatile mini-computer which can be used to code and implement loads of different behavior. But because it is so versatile, it has a robust feature set. A lot of these features are not used by the selective feeder and only take up space/power. When using a custom chip, you can make it such that it only has the components the feeder requires. In this case, we would need a motor controller, a camera connection, and either a moderately powerful CPU with some storage, or an internet connection based on how you run the image recognition (this is discussed in a moment). | |||
On the topic of power usage, the prototype draws its power by being plugged into a socket. For a new prototype one should consider if it should plug in to the mains, whether it should draw its power from solar panels or perhaps a big (swappable) battery. | |||
Very important in this decision is the way in how the image recognition model is run. More specifically, whether it is run locally, or if the recognition is done on an external sever and the feeder only has to send images over the internet. Both of these methods have their own drawbacks and benefits. | |||
Running the model locally makes the feeder a much more stand-alone product and it might sell to more people as it would certainly not require a subscription and it does not require an internet connection. Furthermore the detection could be a lot faster as the images do not have to be sent off to a server. However, this greatly depends on how powerful and accurate the local model is. Also, the added delay by sending it to a server is long, but likely less than a second. Which usually not great in software development, but does it really matter if the physical door closes a second later? Additionally, running the model locally requires a lot more power, primarily for the extra computational power required to process the images. The size of the chip will likely also get bigger, which might or might not be a problem depending on the space available. | |||
When using an external sever to process the images, you can run much larger, more powerful models. Updating the models would also be much easier, although make it such that the local model can be updated should be possible as well. | |||
Downsides of using an external server for image processing is that running a sever is not free. So unless the cost of running the server can be compensated for by only selling the feeders, you will need to sell some form of subscription. Processing the images externally also means that the feeder needs to be permanently connected to the internet, and people do often not have an internet connection ready in their garden. | |||
In either case of running locally or externally, the image recognition model will have to be upgraded to include more species of birds, as the current model only supports detection for 4 types of birds. | |||
It would also be interesting to look into a way for the customer to choose the behavior of the feeder. For example, allowing customers to add or remove birds from the "unwanted" list, or allowing them to change the behavior if a mix of wanted and unwanted birds has been detected simultaneously. | |||
Implementing such features would be most convenient in an app that connects to the feeder. Creating an accompanying app would allow for features like tracking bird counts, live video feeds from the feeder or even a way to track the amount of food left in the feeder. However, the ability to implement a companion app depends on how the feeder itself is designed. It must also be considered that people might find an app a bit unnecessary for a bird feeder. So, one might choose not to make one, or to make it optional. | |||
So very long story short, if you were to continue the development of the feeder, there is a lot that can be improved. | |||
== Appendix == | |||
=== Appendix A: Planning === | |||
{| class="wikitable" | |||
!Week number | |||
!Task | |||
|- | |||
|Week 1 | |||
|Brainstorming for potential ideas + State of the art research + MoSCoW theory | |||
|- | |||
|Week 2 | |||
|User research + Literature research and patents + design | |||
|- | |||
|Week 3 | |||
|Built feeder + work on user-specified features | |||
|- | |||
|Week 4 | |||
|Implement features into the feeder | |||
|- | |||
|Week 5 | |||
|Finish Prototype | |||
|- | |||
|Week 6 | |||
|Test + improve prototype | |||
|- | |||
|Week 7 | |||
|Finalising product + presentation | |||
|- | |||
|week 8 | |||
|Finish Wiki | |||
|} | |||
=== Appendix B: Sources === | |||
==== Regarding Bird Population and Behaviours ==== | |||
# (attraction) https://books.google.nl/books?hl=en&lr=&id=H3Cx1hB-TeQC&oi=fnd&pg=PR9&dq=attracting+birds&ots=yf6QfmbysH&sig=-EyO28YygyhS2iJluR8gjbLpYnM#v=onepage&q=attracting%20birds&f=false | |||
# (attraction) https://books.google.nl/books?hl=en&lr=&id=qLd1mSAMSz0C&oi=fnd&pg=PP7&dq=attracting+birds&ots=aX5OLryMyA&sig=d5jGRLf54bOp6OquQYQmWINXZZk#v=onepage&q=attracting%20birds&f=false | |||
# (bird population in the Netherlands) https://bioone.org/journals/ardea/volume-98/issue-3/078.098.0303/Long-Term-Population-Developments-in-Typical-Marshland-Birds-in-The/10.5253/078.098.0303.full | |||
# (bird population in the Netherlands) https://www.tandfonline.com/doi/full/10.1080/00063657.2021.1939652#abstract | |||
# (bird feed advice -- informal) https://www.allaboutbirds.org/news/types-of-bird-seed-a-quick-guide/ | |||
# (bird house design) https://dergipark.org.tr/en/download/article-file/4037334 | |||
# (bird feed preferences) https://avianres.biomedcentral.com/articles/10.1186/s40657-018-0111-z | |||
# (defensive methods -- informal) https://feederwatch.org/community/tips-from-feederwatchers/deterring-unwanted-visitors/ | |||
# (which birds benefit from birdfeeders) https://www.frontiersin.org/journals/ecology-and-evolution/articles/10.3389/fevo.2017.00081/full | |||
# (importance of birdfeeding) https://www.publish.csiro.au/mu/MUv111n2_ED | |||
# (risks of wild birdfeeding) https://www.sciencedirect.com/science/article/pii/S0006320714003553 | |||
==== Regarding Automatic Bird Classification ==== | |||
# (provides an overview of existing methods) https://thesai.org/Downloads/Volume14No3/Paper_97-Bird_Image_Classification_using_Convolutional_Neural_Network.pdf | |||
# (small scope, but extensive research) https://www.researchgate.net/publication/365080475_Bird_Species_Identification_Using_Convolutional_Neural_Network | |||
# (only using sound) https://pure.tue.nl/ws/portalfiles/portal/320757124/Xie_Y.pdf | |||
# (uses a slightly more complex AI model) https://www.mdpi.com/2076-3417/14/10/4278 | |||
# (general) https://www.researchgate.net/publication/358956994_Effective_Classification_of_Birds%27_Species_Based_on_Transfer_Learning | |||
# (general) https://www.researchgate.net/publication/378059236_A_New_Efficient_Classifier_for_Bird_Classification_Based_on_Transfer_Learning | |||
# (uses PCA) https://thesai.org/Publications/ViewPaper?Volume=12&Issue=4&Code=IJACSA&SerialNo=34 | |||
# (general use of CNNs) https://besjournals.onlinelibrary.wiley.com/doi/full/10.1111/2041-210X.13075 | |||
# (analyses how to track individuals in cattle -- could be used for tracking individual birds) https://www.sciencedirect.com/science/article/abs/pii/S2542660522000415 | |||
# (differentiating individuals) https://www.sciencedirect.com/science/article/abs/pii/S0149763420304395 | |||
==== Regarding Existing Projects ==== | |||
# (smart birdfeeder) https://www.diva-portal.org/smash/get/diva2:1708245/FULLTEXT01.pdf | |||
# (smart feeder for pets) https://www.mdpi.com/2673-4591/82/1/63 | |||
# (solar powered birdhouse) https://www.theseus.fi/bitstream/handle/10024/808828/Seleznev_Alexandre.pdf?sequence=2 | |||
# (smart scarecrow with bird image and sound recognition) https://ieeexplore.ieee.org/abstract/document/5721481?casa_token=2-zSwSi6bdMAAAAA:d-BLOleNNwYZ6Id9-snu4sNyP-LpMizyU-QLn4yOXMt6gkCaW90cj_vjx39Gf6DT_ezH5zU | |||
# (solar scarecrow design) https://ieomsociety.org/proceedings/2023detroit/36.pdf | |||
=== Appendix C: Logbook === | |||
{| class="wikitable" | |||
|+ | |||
!Week | |||
!Who | |||
!Breakdown of hours | |||
!Hours | |||
|- | |||
|1 | |||
|Leander | |||
|Lecture (2), literature research (2), meetings (2), problem statements & objectives (1) | |||
|7 | |||
|- | |||
| | |||
|Thijs | |||
|Lecture (2), literature research (2), meetings (2), Requirements (4) | |||
|10 | |||
|- | |||
| | |||
|Pijke | |||
|Lecture (2) Literature research (3), meetings (2) | |||
|7 | |||
|- | |||
| | |||
|Mihaita | |||
|searching literature on classification (1), searching more literature on classification and also existing projects (3), meetings (2) | |||
|6 | |||
|- | |||
| | |||
|Luca | |||
|Lecture (2), meetings (2), research and literature research (3) | |||
|7 | |||
|- | |||
| | |||
|Jort | |||
|Starting lecture (2), literature research (4), user identification (2), planning (1), meetings (2) | |||
|11 | |||
|- | |||
|2 | |||
|Leander | |||
|Meetings (2), Interview (1), Sketching (2) | |||
|5 | |||
|- | |||
| | |||
|Thijs | |||
|Meetings (2), Interview (1), Sketching (3) | |||
|6 | |||
|- | |||
| | |||
|Pijke | |||
|Meetings (2), Researching existing features (6) | |||
|8 | |||
|- | |||
| | |||
|Mihaita | |||
|Meetings (2), Interviews & processing (2), Collecting bird feeder pictures (1), R&D on a RPI3 (3) | |||
|8 | |||
|- | |||
| | |||
|Luca | |||
|Meetings (2), interview (2), researched some components (3) | |||
|7 | |||
|- | |||
| | |||
|Jort | |||
|Meetings (2), Interview questions (2), Interview (2), Conducting research into bird feeding (4), meeting (1) | |||
|11 | |||
|- | |||
|3 | |||
|Leander | |||
|Meetings (2), Classifier research (4), Sketching prototype (2) | |||
|8 | |||
|- | |||
| | |||
|Thijs | |||
|Meetings (2), Attracting birds research (5) | |||
|7 | |||
|- | |||
| | |||
|Pijke | |||
|Meetings (2), Design (4), Design decisions (4) | |||
|10 | |||
|- | |||
| | |||
|Mihaita | |||
|Meetings (2), Classifier research (4), Finding Object Detection Model (2) | |||
|8 | |||
|- | |||
| | |||
|Luca | |||
|Meetings (2), electronics (5) | |||
|7 | |||
|- | |||
| | |||
|Jort | |||
|Affinity diagram (3), Changing MoSCoW (1), working on Wiki (3), meetings (2) | |||
|9 | |||
|- | |||
|4 | |||
|Leander | |||
|Meetings (2), Design decisions (2), Initial operating system created (4) | |||
|8 | |||
|- | |||
| | |||
|Thijs | |||
|Meetings (2), 3D modeling and rendering of prototype (5) | |||
|7 | |||
|- | |||
| | |||
|Pijke | |||
|Meetings (2), Design decisions (7) | |||
|9 | |||
|- | |||
| | |||
|Mihaita | |||
|Meetings (2), Installing classifier's roboflow RPi / Laptop (6) | |||
|8 | |||
|- | |||
| | |||
|Luca | |||
|Meetings (2), servo + RPi (6), soldering & electronics (2) | |||
|10 | |||
|- | |||
| | |||
|Jort | |||
|Meetings (2), research (2), work on wiki (3) | |||
|7 | |||
|- | |||
|5 | |||
|Leander | |||
|Meetings (2), Building prototype (4), Implementing components (3) | |||
|9 | |||
|- | |||
| | |||
|Thijs | |||
|Meetings (2), 3D part modeling (5) | |||
|7 | |||
|- | |||
| | |||
|Pijke | |||
|Meetings (2), Creating Diagrams (5), Testplan (2) | |||
|9 | |||
|- | |||
| | |||
|Mihaita | |||
|Meetings (2), implementing components (4), fixing issues (2) | |||
|8 | |||
|- | |||
| | | | ||
|Luca | |||
|Testing camera and RPi (4), implementing components (3), fixing issues (2) | |||
|9 | |||
|- | |||
| | | | ||
|Jort | |||
|Testplan(2), to-do list (2), work on wiki (3), Meetings (2), interview (1) | |||
|10 | |||
|- | |||
|6 | |||
|Leander | |||
|Meetings (4), Prototype upgrades (2), Fixing hardware/software integration (4) | |||
|10 | |||
|- | |- | ||
| | | | ||
|Thijs | |||
|Meetings (4) Presentatie slides and format (3) Getting 3d part printed (2) | |||
|9 | |||
|- | |||
| | | | ||
|Pijke | |||
|Meetings (4), work on presentation (4), Continue testplan (2) | |||
|10 | |||
|- | |||
| | | | ||
|Mihaita | |||
|Meetings (4), testing robot (2), implementing more components (3) | |||
|9 | |||
|- | |- | ||
| | | | ||
|Luca | |||
|Testing servo motor and RPi (5), implementing components (3), fixing issues (4) | |||
|12 | |||
|- | |||
| | | | ||
|Jort | |||
|Meetings (4), testing robot (2), preparing presentation (2), editing video (1) | |||
|9 | |||
|- | |||
|7 | |||
|Leander | |||
|Meetings (4), Final prototype updates (3), Running/adapting to test cases (4) | |||
|11 | |||
|- | |||
| | |||
|Thijs | |||
|Meetings (4), preparing presentation (2), final wiki work (3) | |||
|7 | |||
|- | |||
| | | | ||
|Pijke | |||
|Meetings (4), prepating presentation (2), work on wiki (4) | |||
|10 | |||
|- | |- | ||
| | | | ||
|Mihaita | |||
|Meetings (4), preparing demo and final patches (2), work on wiki (4) | |||
|10 | |||
|- | |||
| | | | ||
|Luca | |||
|Meetings (4), preparing presentation (2), work on wiki (4) | |||
|10 | |||
|- | |||
| | | | ||
|Jort | |||
|Meetings (4), Preparing presentation (2), work on wiki (4) | |||
|10 | |||
|} | |} | ||
=== Appendix D: Interview questions === | |||
==== Interview questions start course ==== | |||
# I am interviewing you because you indicated you love birds, and you have a bird feeder. What is the primary reason you have a bird feeder? What do you enjoy about feeding birds? | |||
# What kind of birdfeeder do you have or how do you feed the birds at the moment? | |||
# Which birds do you enjoy seeing the most? | |||
# On the other hand, are there birds that you would prefer not to feed at the feeder? | |||
# How would you describe the types of birds that you most often see at the feeder. | |||
# What challenges or frustrations have you experienced with bird feeders in the past? | |||
# If you could implement any features in a bird feeder, what would these features be? | |||
<introduce features> | |||
Features: | |||
Scare away birds | |||
Notify the user when a bird has been detected | |||
Identify the birds, count them and show the user | |||
Stop feeding birds if they have been encountered several times already | |||
# Have you ever encountered large birds at your birdfeeder and have you experienced problems with these larger birds? | |||
#* Would you like your birdfeeder to be able to deter larger birds? | |||
# How often are you able to see birds in your garden? | |||
#* Would you like to get a notification when birds are feeding? | |||
#* Would you like to get a notification for a specific bird type, such as rare birds? | |||
# Do you know what types of birds feed at your feeder? | |||
#* Would you like to get information about the species of birds when you see them at your feeder? | |||
# Do you get the idea that there are birds who eat too much from your feeder? | |||
#* Would you like your bird feeder to be able to detect if a certain bird has already gotten food from the feeder that day to prevent overfeeding? | |||
# Would you consider using such a smart birdfeeder? | |||
# Could you rank the features we have discussed from what you would like most to what you want least? | |||
=== | End | ||
# How did you like participating? | |||
# Do you have any other remarks you would like to add or elaborate on? | |||
# What did you expect going into this interview? | |||
==== Interview questions needed for specification ==== | |||
During the project more design questions came up. The decision was made to conduct more short interviews to answer these questions. | |||
# What decision should the robot make if there were multiple birds of which one is of the desired class and one is of the undesired class? | |||
# What do you think is a good way to scare of birds? | |||
## Close door quick | |||
## Close door slowly | |||
## Sound | |||
# What do you think of our design so far? | |||
=== Appendix E: Interview answers === | |||
Below are the answers to the interviews conducted in our research: | |||
---- | |||
# I like watching the birds in my garden. I am quite old and live alone so it is good pastime. | |||
# I put out the feeding balls with seeds in them and sometimes chains of peanuts. In the wintertime, I put out more food. In the summer the birds are often in my garden without having to put out food | |||
# The smaller birds and the Jaybird. The Jaybird is my favourite and quite rare to see in my garden. There are also different types of sparrows where I live which are fun to see. Especially the red chest sparrow. | |||
# I sometimes see jackdaw birds which can be a nuisance. I also often have cats in my garden from one of the neighbours. I don’t like it when the cat tries to hunt the smaller birds. Luckily I have never seen the cat catch a little bird. Interviewer: What don’t you like about the bigger birds? The bigger birds scare away the smaller birds and make a mess in my garden. Sometimes the food balls fall from the tree and I expect that that is the doing of the bigger birds, but I have never seen that. | |||
# The smaller sparrows are very common. I live close to the park and they are abundant there. As I mentioned the Jaybird is rare to see. | |||
# Can be difficult for an old man like me to hang them in the tree, so you might have to help me with that in the future. I sometimes have to clean up after the food balls have fallen. | |||
# No idea, I don’t know much about technology. | |||
<introduce design> | |||
# Already answered previously. | |||
## That would be nice. I don’t know how, but I would prefer only small birds and jaybirds in my garden. | |||
# When I sit at the window quite often. There are quite often birds in my garden so I don’t really need to wait long, just have to focus. Spotting them gets more difficult with my bad eyes, but if I focus I can see them. | |||
## I have an Apple phone on which I do get text notifications, so it would be possible to get the notifications, but I am not good with my phone. | |||
## That would be nice, it has been a long time since I have seen a jaybird and maybe there are other birds in my garden of which I don’t know they came here. | |||
# Mostly sparrows | |||
## I have lived here for very long so I think I know all the bird types by now. | |||
# I don’t know. Never thought about that. | |||
## Interviewer had to explain a bit more about overfeeding That sounds indeed like a problem. I like the variety of sparrows. It is more fun to see different sorts than just them same. So if overfeeding is a real problem here than I would prefer if I didn’t make the situation worse. | |||
# If I don’t have to do a lot of settings or you come to help me with it then yes. The youth know a lot about technology, but I don’t | |||
# For which do I need to do things with my phone? The interviewer explains for which features an app is necessary. Scare away birds - prevent overfeeding - Notify with rare birds - Identify birds I have no use for an app because I won’t learn how to use it. I am too old for that. | |||
End | |||
# Fun and nice to see what you do at school, sounds very advanced | |||
# No not really | |||
# I didn’t know what to expect. Never thought that at my old age anybody would interview me about technology. | |||
---- | |||
# Enjoys watching birds and being able to see them from their window, especially with and for their kids, also considers it educationally [educational as in 'upbringing']. Mostly feeds birds in spring and autumn, considers winter months 'too cold' to maintain feed. | |||
# Fat balls ["''vetbollen''"], peanuts on a string ["''pindaslingers''"] -- particularly fun as an activity with kids --, empty peanutbutter jars (has a small wooden holder for it), and a birdhouse [not for feeding] which was only visited once | |||
# European robin, Parakeet, Blackbird, Sparrow, Great Tit and Blue Tit | |||
# Crow because they're big and seem to scare off the other birds, Seagull because they steal trash and litter [interviewee responded in general; the common seagull of that area is "Zilvermeeuw"] | |||
# Jackdaws, Sparrows, Seagulls, Great Tit and Blue Tit, Ducks (who come near feeder, but don't actually feed) | |||
# Three frustrations: in cold months it is inconvenient to put new bird feed out; sometimes birds don't come near the feed at all; often they don't see the birds feeding, and only notice that birds have been there due to the fact the food is gone. The interviewee owns cats, which means the bird feeding spot needs to be appropriately distanced. | |||
# Two features: (1) wishes they experience see the birds from closer: from far away most birds look like silhouettes. Talked about something like a live video or audio stream to see the birds. Interviewee likened it to online live streams of cat feeders. (2) wishes they could know how many birds came to feed there, akin to a "''vogeltelling''" [ie. a counter of the number of birds in each species that came by] | |||
<introduce features> | |||
# Yes, specifically seagulls, which trash the place, and "big birds". Interviewee noticed that when larger birds feed on the fat balls, smaller birds are too scared to get near, and often wait nearby. Also noticed problems with cats, but not other animals [eg. squirrels]. | |||
#* Probably yes, but would like to retain personal freedom in selection. Would also prefer to listen to expert advice (eg. advice from national institutes) regarding which birds should be selected against instead of making the choice entirely themselves. | |||
# Many, their residence is near a park and birds often fly over or perch in yard. | |||
#* Yes, but the interviewee mentions that they don't want to get spammed by notifications. Proposes either the ability to silent the notifications, or [after discussion] a daily overview of which birds were spotted. | |||
#* Yes, very much, as they consider it difficult to spot the bird specie from a distance, and would like to be aware of the presence of rare birds. | |||
# see answer to question 5 | |||
#* Yes, would like to receive information (such as a wiki page or encyclopedia entry) of birds. Interviewee likes this feature more than simple notifications of which birds were spotted. Interviewee doubly likes this feature with respect to unknown or rare birds [tied to the discussion of question 12]. Also considers it neat from an educational [upbringing] point of view. | |||
# Possibly, but unsure, mentions they are not an expert at this. | |||
#* In terms of certain bird individuals, no. In terms of certain bird species: possibly, but wouldn't want to make that choice themselves. Would accept getting advised by national institutes regarding this issue. Believes it is not their business to decide which birds eats and which doesn't. | |||
# Concerned about data privacy, but considers the notifications a nice (smart) feature. | |||
# Positive: photos (video) of birds, information page of birds, educational value; Neutral: large bird deterring, selective feeding; Negative: yet another app that sends notifications | |||
Further remarks: Considers proposed design is also fun for their kids. | |||
---- | |||
# Continues a habit started by their partner, feeds birds and watches them, enjoys seeing them incidentally. | |||
# Mostly a handful of grains, breadcrumbs, stale bread, or other leftover grain products [eg. polenta] left on a tile or plate. | |||
# Pigeons and Doves in particular, Swallows, Storks (not near feeding -- just likes them in general) | |||
# Crows | |||
# Pigeons, Swallows, Sparrows, Crows, Great Tit and Blue Tit, rarely a Seagull | |||
# Excrement, attracting birds makes a mess in the general area surrounding the feeding spot. Interviewee particularly has the problem that flocks of birds tend to perch on their building when much feed is available. | |||
# Mostly just wishes for cleanliness, something to prevent many birds from amassing. | |||
<introduce features> | |||
# Yes, specifically seagulls, but no problems with other large birds. Interviewee reports sometimes spotting a bird of prey in the sky, but never had problems. | |||
#* Not really, no. [interviewee does not care much about the larger birds, but considers a mechanical method of deterring 'neat'] | |||
# Many, their residence is near a forest [forest is further away than the park of the previous interviewee], and birds often fly over. | |||
#* No, does not care much about getting live notifications. | |||
#* In general, no, but would consider it for rare or endangered birds specifically. | |||
# see answer to question 5 | |||
#* Yes, but would like this more if the bird feeders were placed in public domain, such as parks or forests, by 'professionals' [eg. national institutes], to get information on birds which are not common in the city. Interviewee mentioned live streams of cameras placed in stork nests. | |||
# Unsure, but also does not care much if the pigeons get fat. | |||
#* No, does not consider overfeeding or under-attracting certain birds an issue. | |||
# Prefers the idea [suggested] of placing a monitored bird feeder in the woods (owned by institute / association) over personally owning a smart device. Also mentioned they prefer mechanical action to electrical action. | |||
# Positive: information page, bird photos, originality of focusing on birds [in contrast to common house pets as cats or dogs]; Neutral: large bird deterring, selective feeding, constant information; Negative: - | |||
---- | |||
# I like to see them in the garden, for example when I work from home. In the wintertime, I think it is good to feed the birds. | |||
# On a small plateau, we have hanging from the trees. I put the food on there and watch birds feed from it. | |||
# Tit birds are fun to see. They are quite small and chirp a lot. | |||
# We have a lot of doves in the area which I don’t really like. We sometimes have ravens I think. | |||
# Small birds are plentiful, I don’t know all the names of the birds. | |||
# Not that many to be honest. I just put seeds on the plateau and that is it. | |||
# No idea, I like the simplicity of the feeder. Doesn’t have to be too complicated. | |||
<introduce design> | |||
# Doves as I mentioned are annoying because they shit a lot. | |||
#* That would be something I am interested. I don’t know what you are thinking about, I don’t want to harm the birds ofcourse. | |||
# Not that often. During Covid is was more, because I worked more from home then. | |||
#* Not really, I am not that fanatic | |||
#* I don’t know if there are any rare birds near me, but that would be cool. I rather use the feature for that then knowing when a bird is present. | |||
# No not really. | |||
#* I don’t know how much I would use that feature. In the beginning it would be fun I guess, but eventually it would probably get repetitive. | |||
# I don’t know to be honest. | |||
#* I mostly put out food during the winter so I don’t think it is a problem then, but if it is I would like to know. Then I would put out less food or indeed your solution would also work | |||
# No, I think the idea is cool, but not everything has to be made complicated. | |||
# Scare away birds - Stop overfeeding - notify user - identify birds | |||
End | |||
# Was fun, but unfortunately, we had to rush the conversation a bit, because of time constraints. | |||
# Not really | |||
# Not that much, didn’t really have the time to make expectations since you just asked me and we started it. | |||
----''(interview in Dutch)'' | |||
# Ze houdt van dieren en helpt graag dieren in het algemeen. Ze heeft een tuin met redelijk wat begroeiing dus er zijn veel vogels in de tuin. Dus wil ze graag deze vogels helpen. | |||
# Huisjes met potjes pindakaas en vetbollen. | |||
# De kleine vogeltjes dus mereltjes, musjes, meesjes. | |||
# Ja, soms hangt er een grote ekster aan een klein vetbolletje of kraai. | |||
# Meestal zijn het koolmeesjes. | |||
# Vaak wanneer een grote vogel aan zo’n vetbolletje hangt, valt de bol op de grond, waarna de meeste vogels er niet meer van eten. Of ze maken een groot gat in het netje waardoor er een groot deel uit valt. | |||
# Iets dat grote vogels beperkt, of iets waardoor kleine vogels meer beschut zitten en niet worden weggejaagd door grote vogels. | |||
<introduce features> | |||
# Ja wegjagen zou dus graag willen | |||
# Vrijwel altijd | |||
## Niet per se, je kunt ook gewoon een tijdje kijken totdat je een vogel ziet. | |||
## Dat zou wel leuk zijn om zelf vogels weg te jagen. | |||
# ja, maar meer als ze ze niet kent. Inmiddels kent ze de meeste wel. | |||
# Dat zou ze niet weten aangezien er veel vogels van dezelfde soort zijn. | |||
# Als ze grote vogels goed wegjagen ja. Maar de notificaties hoeven niet per se aangezien er geen zeldzame vogels komen. | |||
----''(interview in Dutch)'' | |||
# Vogelhuisje want ze woont in nieuwbouwwijk dus vogels aantrekken. Ze ziet niet vaak vogels. Concern voor katten. | |||
# bird feeder is een cirkel met een platform en een klein gaatje voor kleinere vogels | |||
# ze heeft een voorkeur voor bepaalde vogels, vooral ook voor vogelgeluiden met wakker worden. | |||
# dr zijn vooral kleine vogels in haar tuin, dus ze heeft niet echt een voorkeur tegen bepaalde vogels. Liever geen reiger. Geen moeite tegen grote vogels maar wel moeite voor kleine vogels | |||
# Heel weinig vogels, maar vooral kleinere | |||
# Current birdfeeder is niet heel mooi. Vogels blijven niet heel lang hangen, ze komen snel eten en dan gaan ze weer weg. | |||
# Meer ruimte voor de vogels om te staan, meer zachte bekleding, vogels lokken met geluiden. App om vogels statistieken te zien. | |||
<introduce features> | |||
# Nog niet problemen gehad met grotere vogels. Grotere vogels afschrikken maar wel zorgen dat het niet andere vogels afschrikt. | |||
# Ze ziet niet vaak vogels maar kijkt ook niet vaak, dus notificaties met eventueel statistieken zijn leuk. | |||
# Eerder beantwoord | |||
# Ze ziet niet heel veel vogels dus het is nog niet voorgekomen. Overfeeding is niet echt een concern voor haar, dus of de feeder het bijhoudt of niet maakt niet uit | |||
# Ja | |||
# Statistieken en notificaties bovenaan, afschrikken/overfeeding minder | |||
Andere ideeën: foto’s van de foto’s opslaan en aan de gebruiker aanbieden als diegene dat wil. Wel disclaimers maken over data van camera's. | |||
----''(interview in Dutch; interviewed a couple)'' | |||
# Primaire reden is vogels bijvoeren in de winterperiode. Het is leuk om de vogels van dichtbij te kunnen aanschouwen. | |||
# Silovoeder, en losse vetbollen en potten "pindakaas" en korstjes brood. | |||
# Pimpelmees en koolmees en roodborstjes. | |||
# Eksters, Vlaamse gaaien en kouwen. | |||
# De kleinere vogelsoorten zoals de mezen en mussen. | |||
# Dat de grotere vogels alles in één keer meenemen (korstjes brood) en niks voor de kleinere vogels overlaten. | |||
# Mogelijkheid 3: vogels identificeren en tellen. (liefst de mogelijkheid om dat in een app te kunnen nakijken. | |||
<introduce features> | |||
# Grotere vogels zijn te zwaar voor de voedersilo die wij hebben. Één voedersilo die wij hadden is door het zware gewicht van de vogels kapotgegaan. | |||
## zou mooi zijn maar heeft geen prioriteit. | |||
# Iedere dag. | |||
## Zou mooi zijn maar wat ons betreft geen "must". | |||
## [idem] | |||
# We herkennen inderdaad alle vogels die gebruik maken van de voedersilo. | |||
## is leuk maar absoluut geen "must". | |||
# Is voor ons niet na te gaan. Vogels vliegen af en aan. | |||
## Nee | |||
# Afhankelijk van de prijs. | |||
## Notify the user when a bird has been detected | |||
# Identify the birds, count them and show the user > Scare away (larger) birds > Stop feeding birds if they have been encountered several times already | |||
=== Appendix F: week 1 ideas === | |||
Lists of interests for each group member. | Lists of interests for each group member. | ||
Line 40: | Line 1,002: | ||
!Thijs | !Thijs | ||
|- | |- | ||
| | | - Drugs test robot for in a bar to prevent people from getting drugged. | ||
- Safety walk system in which you can set you designation and it looks for safest road with most lights and busyness.Warning when straying from path | |||
- Social interaction robot which moves while video chatting | |||
| - Robotic "guidedog" for visually impaired (something that detects obstacles and communicates avoidance directions) | | - Robotic "guidedog" for visually impaired (something that detects obstacles and communicates avoidance directions) | ||
- AI bird feeder (identifies, dispenses accordingly) | - AI bird feeder (identifies, dispenses accordingly) | ||
- AI window cleaner (cleans windows that are hard to reach for example, finds them and cleans them) | - AI window cleaner (cleans windows that are hard to reach for example, finds them and cleans them) | ||
| - app to chessboard | | - app to chessboard | ||
- Pill dispenser | - Pill dispenser | ||
- smart energy meter and app | - smart energy meter and app | ||
Line 62: | Line 1,020: | ||
-Entertainment or usefulness | -Entertainment or usefulness | ||
|} | |||
=== Appendix G: photos of the product === | |||
{| class="wikitable" | |||
|+ | |||
![[File:Birdhouse frame.jpg|center|thumb|274x274px|Birdhouse frame]] | |||
![[File:Foto2.jpg|thumb|243x243px|Inside the birdhouse; RPi with camera module and servo.]] | |||
![[File:Im3.jpg|thumb|Bird food]] | |||
![[File:Foto1.jpg|thumb]] | |||
|} | |} |
Latest revision as of 20:56, 10 April 2025
https://docs.google.com/document/d/134X5otIGJQW5CHC_7DGSuY8oDns-jvgIoZ2rAsN69zg/edit?usp=sharing
Final presentation: https://docs.google.com/presentation/d/1UnbBNV1ydnzloF3R05HMhvIAnWFgMi6zT5n6MISVKuk/edit?usp=sharing
Code: https://github.com/lthoedt/0LAUK0-feeding-bot
Name | Student ID | Department |
---|---|---|
Leander ten Hoedt | 1663259 | Computer Science and Engineering |
Thijs van Berkel | 1831917 | Computer Science and Engineering |
Pijke van Bohemen | 1819755 | Computer Science and Engineering |
Mihaita Manolache | 1457543 | Computer Science and Engineering |
Luca Borst | 1669397 | Electrical Engineering |
Jort Arendse | 1761285 | Psycholgy and Technology |
Introduction
Cities contain loads of birds who cannot find enough food to stay alive. Therefore, many people help these birds by supplying them with food like seeds or peanut butter. This helps most of these birds to get through the cold winter months. However, if you have ever looked outside at one of these food spots, you might have noticed that strong or large birds often try to eat from the feed as well. They however are much stronger than small birds and have less difficulty getting food naturally. They also scare away these small birds, who need food more than large birds. For example, in the Netherlands, a big subset of these strong birds are Magpies, who are quite aggressive. They will guard these feeding spots often and prevent tiny Sparrows from getting food.
To help these smaller birds, we want to create a feed-dispenser-type device. It will be able to detect what birds are around it and will close off access to the food if large birds are trying to eat. To help you as a user in finding a good spot and making sure that the container will not get empty. It will send notifications about which bird is eating food, it will also send the current food level.
State of the art research
Before conducting interviews to gain a better understanding of the problem and how the product should be designed state of the art research was conducted.
Existing product features
'Big Bird' repellent
This feeder prevents big birds from feeding by using a closing door, based on the weight of the bird. If a small bird sits down on the metal ring to feed, nothing will happen, but when a big bird sits down on the metal ring, it exceeds the weight limit, presumably by using a spring. The plastic barrier might also help with deterring big birds, but its main purpose is deterring squirrels with its smooth and sloped surface. (Source: https://www.gardenwildlifedirect.co.uk/pest-free-squirrel-proof-seed-feeder.html, and: https://www.tfmsuperstore.co.uk/products/leto-small-bird-seed-feeder-anti-big-bird/)
This feeder prevents big birds from feeding by enclosing the entire feeder in a cage. The size of the holes in the cage is chosen such that big birds and squirrels cannot get through, while smaller birds (like the “Koolmezen” in the image). (Source: https://www.gardenwildlifedirect.co.uk/national-trust-aura-peanut-feeder.html)
Bird detection
This bird feeder has a camera that detects bird species with the use of ‘AI’. It is connected to an app that notifies you if a bird is present. The app allows you to see more information about the bird on Wikipedia. It allows you to store footage on-device with an optional SD card or using their cloud subscription (the AI bird recognition also requires this subscription). The birdhouse is equipped with solar panels and an internal battery to provide its own electricity. Additionally, it is equipped with a light and a speaker that can be used to scare away squirrels if the camera detects them. (Source: https://www.amazon.com/GNCC-Squirrel-Notifications-Identify-B1/dp/B0CDXFPTRM)
This bird feeder has a camera for bird recognition. It has WiFi connectivity to connect to an app, which can notify you if a bird is present. The app also tracks the number of visits per species. Additionally, the app allows you to name specific birds, identify sick birds, and send notifications if other animals (like pets) are near the feeder. This feeder needs to be charged manually, unless you buy the optional solar panels. The app also allows for you to livestream the feeder’s feed (publicly). In the app, you can view streams from feeders all over the world. Finally, the site claims that the photos taken by the feeder help researchers track bird population and migration. (Source: https://mybirdbuddy.eu/product/smart-bird-feeder/)
USE
An automatic bird feeder can be made into a product suitable for multiple purposes and can be interesting for different users. Most birdfeeders are in gardens of people who simply like to watch birds from the comfort of their homes. However, they do not know when birds are feeding and thus when they can watch them. The automatic birdfeeder is ideal for this type of situation because it can send a message to the user's phone alerting them which type of bird is in their garden. For example, an elderly man who loves to bird watch has 2 feeders in his garden at different places around his house. His vision is a bit impaired, so he cannot keep a close watch on the feeders since this costs too much energy. With the automatic birdfeeder, he does not have to keep a close watch since he now knows when and which bird is feeding, giving him a very pleasant user experience. The app which sends the message can also have a educational purpose if in the message information about species was added. That way people would learn about birds and how important they are for biodiversity. This way awareness is created about nature and the importance of preservation.
The automatic birdfeeder can also directly be used for wildlife conservation in areas where certain species have a difficult time surviving. Many habitats have exotics, species not native to an area, that were taken as pets from different countries and escaped. These exotics pose a big danger to the biodiversity of ecosystems since they do not have natural predators living there. As a result, the numbers of their population increase rapidly, leaving not enough food for native species. With the automatic bird feeder, wildlife reservists can help the native species by giving them food without the exotics benefiting from their advantage. The automatic birdfeeder can also help in helping to understand the severity of the problem by keeping count of the birds that tried to feed. This is also interesting for researchers and ornithologists to preserve ecosystems better since birds play a vital role in almost all ecosystems globally. Not only exotics, but also urbanisation posses a problem for birds and other animals. Habitats shrink rapidly because of cities having to expand. By having birdfeeders which could give the correct food to the birds you could prevent species from fully disapearing and being able to live more and more in the cities themselves.
Bigger birds can be of great annoyance to people who like to feed birds in their garden. By for example scaring away little birds, leaving feces and making a mess by dropping the food on the ground. An automatic bird feeder would be able to deter these bigger type of birds the user would not like. This would make it an interesting product for companies to develop and to sell to society.
For the scope of this course, we decided to focus on the group of people who just like to have a feeder in their garden. To understand their needs better, we have conducted multiple semi-structured interviews with different users. The first questions were open questions regarding peoples bird watching behaviour. The latter questions were more guided by already identified possible features. These features were a way to scare off larger birds, a notification feature, bird identification and overfeeding prevention. The participants gave their thoughts on the proposed features and ranked them from most useful to least useful. The research questions and short summaries of the interviews can be found in Appendix D and Appendix E. From the answers, an affinity diagram was made with five different identified themes.
The users had a preference for detering bigger birds and less for an app with a notifying or a educational purpose. The overfeeding problem was also less of a problem in their minds. Another very important aspect was that the bird feeder should not be too complex. People want to see birds without having to instal a complicated bird feeder.
Requirements
MoSCoW
It is important to note down the exact requirements we have for this project. This gives us a clear goal to work towards and also helps us later to create a test plan. In this section, we note down our requirements for our project. We base these on the affinity attributes mentioned above and rank them according to the MoSCoW Theory. This means that every requirement has a given priority based on how important it is for the final prototype.
These requirements are split up in different categories: physical design, electronics, communication, app design, app user interface, and other app requirements. Most of these requirements are for potential further developments of our project. We thought of them during the initial phase of our project, but we realized that we did not have time to finish most of the requirements in time.
One of the biggest features we decided to scrap is the app. We mentioned it during our interviews and in our initial phase, but we decided that it was outside the scope of our project, because of the time constraints.
Requirement ID | Description | Priority |
---|---|---|
PD01 | The system shall have a container for bird food | Must have |
PD02 | The system shall allow the user to hang the system on a hook | Could have |
PD03 | The system shall allow the user to hang the system using screws | Could have |
PD04 | The system shall have a landing area for the birds | Should have |
PD05 | The system shall have a door to the bird food | Must have |
PE01 | The system shall measure the amount of bird food left in the container | Won’t have |
PE02 | The system shall record the area in front of the door | Must have |
PE03 | The system shall detect birds approaching the cage | Must have |
PE04 | The system shall close the door to the bird food if an undesired bird* has been detected | Must have |
PE05 | The system shall keep the door to the bird food open if no undesired bird* has been detected | Must have |
PE06 | The system shall open the door to the bird food if no undesired bird* has been detected and the door is closed | Must have |
PE07 | The system shall scares away undesired birds | Should have |
PE08 | The system shall record the number of detected birds | Could have |
PE09 | The system shall record the species of detected birds | Could have |
PE10 | The system shall have an internet connection | Must have |
PE11 | The system shall produce audio to attract desired birds | Could have |
PE12 | The system shall refill the food if less than 50 grams of food is detected | Won’t have |
PE13 | An additional power source, like solar panels, shall power the system. | Won’t have |
PC01 | The system shall send the amount of bird food left in the container to the app | Won’t have |
PC02 | The system shall send the recorded data to the app | Could have |
PC03 | The system shall allow the user to connect the system to a registered account | Won’t have |
AD01 | The app shall display the amount of food left in the container | Won’t have |
AD02 | The app shall display the number of birds by species detected | Won't have |
AD03 | The app shall graph the number of birds detected | Won't have |
AD04 | The app shall graph the amount of food measured | Won’t have |
AU01 | The app shall allow the user to register a new account | Won’t have |
AU02 | The app shall allow the user to login to a new account | Won’t have |
AU03 | The app shall allow the user to connect the account to multiple of our products | Won’t have |
AU04 | The app shall display general information about bird species | Won't have |
AO01 | The app shall send a push notification to the user if there is less than 50 grams of food left | Won’t have |
AO02 | The app shall recommend bird food | Won't have |
AO03 | The app shall allow the user to export data to a .csv file | Won’t have |
Research
Bird luring
Early in this project, we also thought about adding ways to attract birds to our bird feeder. Although we didnt go through with this, as apparent from our requirements, we did research anyway for accomplishing this and found valuable information for future enhancements of our project.
In "Trees, Shrubs and Vines for attracting birds" by DeGraaf, he documents a wide variety of plants and what birds are interested in those plants. He documents whether birds settle near the plant, take shelter near the plant or eat its fruits. We can use this information to add plants to our birdfeeder itself, or guide users in creating a preferable habitat for the birds they would like to atract. Furthermore, McAtee mentions that birds, especially in dry periods, are attracted to water supplies. They like water supplies for both drinking and washing purposes. Again, this information could be used to further enhance our product or to guide users in creating a prefered habitat for birds.
We also hypothesized that mimic bird sounds could attract birds to our product. We could not find any good research that aligned that subject with our project, but we found various discussions across the internet. One of the main concerns about this approach is whether it is an ethical approach or not, as it essentially relies on deceiving birds. Furthermore, it could also have the opposite effect, as it could scare away birds because of territorial behaviour. We thus quickly realized that this is not a feature we want to add to our project.
Design
Sketches
We first made two rough sketches so we could have a discussion about those. These two rough sketches are presented below. They each are designed with some common requirements, they must store the food, they must have something such that birds can stand and eat and they must have something that can cover the food.
Prototype
After the sketches were made, a discussion followed to further determine our design. We decided on the main shape and features that we could use to actually create our prototype. Following this, we made more formal drawings of our design using 3d rendering software. The results of this are displayed below. The images aren’t to scale, but they give a general impression of our prototype. We will construct this prototype ourselves using electrical components and wood planks.
The dimensions of our prototype are about 14x18x20 cm. The door itself is about 6 cm. Our product contains two separate rooms. One room is used to store food, the other is used to store the electrical components. The door can be opened or closed using a servo that is connected to the raspberry pi. On the front is a camera that can capture images.
![]() |
![]() |
Classifier (Recognition System)
The classifier is the component in the system responsible for detecting and recognising (classifying) birds. Specifically, the classifier is tasked with classifying whether an image, outputted by the camera, contains a specie of bird which is considered undesirable.
For the classifier, we have used Roboflow. Roboflow is a platform that useful tools for computer vision models. We have also considered using models more directly using the PyTorch library, but this proved more cumbersome in terms of configuration. After some basic testing, Roboflow did not seem to perform significantly worse than PyTorch in classification.
The Raspberry PI is capable of running the Roboflow server through Docker, but our particular model of Raspberry PI (model 4B) seemed to have an older instruction set, on which Roboflow could not be run. Instead, for our prototype, we ran the Roboflow server on a laptop and communicated over wifi.
Corner Cases
There are two corner cases regarding birds classification: the system might encounter a bird it cannot classify, or multiple birds might be encountered at one time.
For the first case, if the system encounters a bird that it cannot classify, it will assume that the given bird is not undesirable. This is to prevent any false negatives. False negatives -- closing the door when a potentially desired but unclassified bird is seen -- could have scared off more birds, and, as birds are often reluctant to feed in new spots, we feared we would scare off more birds permanently from our feeder.
For the second case, when the classifier recognizes both a desired and undesired bird, it prioritizes the fact that an undesired bird was encountered, and closes the door. This is because (apparent from our interviews) some birds bully others, and one of the points of our feeder is to minimize this behaviour and attempt to give smaller birds an advantage. Leaving the door opened could have given more opportunity for bullying birds to scare off smaller ones.
Structure
The classifier consists of two parts: a (general) object detector in order to detect where in the image a bird might be, followed by a ViT (Vision Transformer) classifier which classifiers the bird. The object detector outputs a bounding box detailing the position of the recognized birds. The image is cropped to this bounding box, then resized to a default resolution, and finally used as the input to the ViT.
We have used the "YOLOv11" model for the object detector, and trained our own model for the ViT classifier. We have chosen to use an object detector in addition to the simple ViT classifier for two reasons:
Firstly, the camera is angled outwards, viewing a larger area, meaning that the images contain birds at difference distances, and hence different apparent sizes. If the ViT is trained on a dataset where all the birds were photographed from more or less the same distance, then it might give inconsistent output when classifying images with birds from a further distance. Thus, by first cropping the images using the object detector, we could be more certain of consistent outputs.
Secondly, there could be multiple birds in view at one time. In such case, a simple single-output ViT classifier is not sufficient. The object detector can recognize multiple objects in one scene, and each bird recognized by the object detector is classified separately by the ViT, which simplifies the requirements for the ViT, as it can be trained on simple images containing one bird each.
We have chosen for "YOLOv11" simply for the fact that it was the most recent pre-trained object detector model available in Roboflow. Alternatives would have been less recent versions (such as "YOLOv8") or train our own model, but given the scope of the prototype and the fact that the pre-trained model worked well enough, we chose the pre-trained model.
Lastly, we wish to mention the confidence threshold as one of our hyperparameters: we had a confidence threshold of >0.4 for our ViT classifier. This is because after some testing, we had noticed that this suffice in cutting out the additional output. For instance, when classifying a sparrow, the classifier will also always output some small chance of it being crow. These small chances were typically below 0.3, so a cut-off of 0.4 provided a bit of margin on top of that.
Dataset
The dataset was chosen to have four classes, two of which were generally desired birds, namely sparrow and great tit, and two of which were undesired, namely crow and magpie. This limited set of classes was chosen as necessary minimum viable product to display the prototype's ability to classify birds. The birds were chosen from the results of the interviews. Other possible classes would have been "blackbird" or "sea gull".
Each dataset contains eight images, selected from online image searches, which are cropped YOLOv11. Each image is furthermore also copied and rotated +15 or -15 degrees to generate additional training data. The chosen images varied in size and background, and the birds depicted varied in the direction in which they were photographed.
We had also looked at using a pre-trained model for bird classification. Most of the existing models we had looked at, however, seemed to be trained on datasets of North American bird species. Some quick manual tests showed that these pre-trained models were inadequate for classifying common Dutch birds, given they were not present in the respective datasets.
Door system.
One of the two core principles is the door that closes when unwanted birds are in front of the feeder, so we put a lot of thought into how we wanted to design the door mechanism. We primarily evaluated our choices on their mechanical complexity and how dangerous they would be to birds. The option we ended up using was a drop-down hatch. Normally, the door would rest in the horizontal position, giving access to the food inside.
Then, when the system decides the door needs to be closed, it rotates from angle_zero to angle_one using a small servo motor. Angle_zero and angle_one correspond to 0 and 90 degrees, respectively. Due to physical limitations of the servo, the servo’s arm doesn’t rotate a full 90 degrees but rather about 80 degrees. To make up for this difference, we designed the birdhouse to have a little protrusion in front of the door, which makes sure the door can fully close.
The closing of the door works exactly the same but in reverse. It rotates 80 degrees from its vertical position to its horizontal position, allowing access to the food again. The opening and closing motion is done over a span of a couple of seconds.
Mechanically, this design is not very complicated. Depending on how you want the aesthetics of the feeder to be, you can either mount the door directly to the motor’s axis, with the motor being mounted on the outside of the feeder, or you can put the motor inside the feeder and use something like gears or chains to rotate the door.
We have chosen to put the motor inside the feeder, but as we do not know the precise layout at the time of making the decisions, the actual implementation is left to design in the modeling stage. We also think this door is quite bird-friendly. The door does not have to close fast, so if there are still birds feeding when the door has to close, they are gently pushed back without risk of getting stuck between the door.
The other option that was considered was a door that rotated in front of the circular hole the food was accessible from. The door would normally be rotated such that it was not blocking the food, either upright or to the side, depending on where the camera would have been placed. Then if the system decided there was an unwanted bird present, it would rotate the door such that it would block the ‘food hole’. Then, when the system decides the food might become accessible again, it would reverse this process, rotating the door away from the hole.
Mechanically, this idea is very simple. You can simply mount the door directly to a servo with its rotation axis orthogonal to the front side of the feeder, and then it only has to rotate a specific amount. You could even help the motor by placing stoppers on both sides of the rotation to prevent the motor from rotating the door too far. However, we ended up not choosing this design. Even though mechanically it is very simple, we did fear for the safety of the birds.
If the motor is very strong, we fear that birds might get their heads stuck and get seriously injured, which is not what we want. If the motor is just barely strong enough to move the door (or you have some sort of advanced door-obstruction system), the door will not crush the bird’s head. However, we might fear that the birds are smart enough to figure this out. They might be scared of a moving object closing in on them the first few times, but we predict birds (especially bigger birds) will be smart enough to figure out this system is actually harmless, which then renders our entire design useless. Overall we might have been able to make this door work, but our other idea wasn’t that mechanically complex either, and we preferred how it looked/functioned over this one.
Component list
We chose to use a Raspberry Pi since it is easy to program, it has all the functionality we need, and it was available to use. A RPi allows us to implement image recognition functionality and is able to transfer data via a WiFi module in case we want to evaluate real-time data. We chose to use a small servo motor to be able to open and close the door. These servos are compact and cheap, can be connected to the RPi, and are relatively reliable.
In order to detect birds, we considered several options: a distance sensor, a pressure plate and a camera. In theory we would be able to recognise a bird based on its weight; the problem is the bird would have to land exactly on the weight sensor and would have to have the exact weight of its species. Bird species with similar weight or birds with deviating weight would essentially throw the bird recognition off. In the end we went with the camera options, as this allowed us to be able to both detect birds and recognise them. The camera is placed in front of the birdhouse, slightly tilted at an angle of 27.7 degrees so that it can oversee distances from about 0.7 cm to 30 cm in front of the birdhouse. The camera module has a FOV of about 62 degrees.
We have chosen to make our product out of wood, since it is available to us, it is easy to use, and it conserves the look of classical birdhouses. We decided on the specified size, as it was easily available to us, and it is easy to use the birdhouse in this way. The door is currently made out of cardboard to make sure the small servo motor can handle it. In future iterations the door might also be made out of wood, but this would require the servo motor to be upgraded.
Sequence diagram
Non-focus areas
If we were a company designing this product for the actual market, we would have to think of every aspect. But as we only have a limited time for this project, we have chosen to focus on the primary aspects of our design. These are the detection of bird species (with the camera) and the closing and opening of the door. But there are some other aspects for bird feeders that might be relevant that we have placed outside of the scope for our project.
Power supply
Our design uses electronic components for the detection of birds and the operation of the motor. This requires electricity, which has to come from somewhere. For our current prototype we will be using whatever method is most convenient, whether this be a power bank or simply connecting it with a laptop. For a market-ready product, options like a changeable battery, solar panels and connection to a power outlet are possible ways of getting power.
Mounting mechanism
Our prototype will simply be a feeder you can put on a table, as we have taken no special considerations for mounting the feeder. For a market-ready product you can alternatively consider wall-mounting or pole-mounting the feeder.
Refilling
The prototype might contain a method to access the food storage from which you can refill the food supplies, but this is not a focus. The simplest solution would just be to make the roof removable.
Microprocessor /microcontroller
We will use a Raspberry Pi in our design. This is an ideal tool for prototyping because the Pi can be programmed however you like. However, because the Pi is so versatile, it has a lot of components we do not use. For a market-ready product, it would likely be preferred to design your own electronic PCB (combined with already existing ICs) with only the functions the feeder requires. This would make it a lot more compact and power efficient and would reduce production cost.
Aesthetics
We have made some decisions for our prototype based on looks, but overall the design could be a lot more polished. However, it is also well known that prototypes are generally not concerned with aesthetics, and we will also be primarily focused on the functional aspect of the design. For a market-ready product, you could change the shape, creating a custom mould to fit its exact needs.
Testing
Test plan
Test | Requirement | Precondition | Action | Expected output | Observed Output | Result |
---|---|---|---|---|---|---|
servomotor | Servomotor works | Servomotor is on | Signal is given to servomotor | Servomotor changes from its initial state | Servomotor arm changed position | Pass |
Camera | Camera works | Camera is on and is connected to a laptop | Camera is connected to laptop | Recordings from camera can be seen on the laptop | The laptop shows the recordings of the camera with a small delay | pass |
Raspberry pi 3 | The raspberry works | The raspberry is on and connected to a laptop | Laptop shows connection with raspberry pi | Laptop gave signal raspberry was connected | pass | |
bird identification | The subsystem can detect 4 types of birds from printed images | Detection system is on | An image of a bird is shown | The software correctly identifies each individual bird. | Identification system reports type of bird correctly | pass |
bird identification system multiple birds | The subsystem can detect 2 types of birds at the same time from printed images | Detection system is on | An image of with two birds is shown | The software recognises the presence of 2 different birds and identifies both correctly | Identification system reports both birds correctly | pass |
Door opening and closing | Door can open and close | Servomotor is powered on | Door gets signal to close | Door closes and after 30 seconds opens | Door closes in 4 seconds and opens again after 30 seconds | pass |
Bird stuck prevention | Door can open and close without leaving more than 2 cm of space for a bird to get stuck | Servomotor is powered on | The door opens and closes | The door closes without ever leaving more than 2 cm of space | At every point of closing the door leaves less than 2 cm | pass |
Bird crushed prevention | The door can open and close without birds getting stuck | Servomotor is powered on | The door opens and closes | The door closes in 4 seconds leaving enough time for the bird to fly away. It also leaves a bit of a gap preventing the bird from getting stuck | The door close slowly in 4 seconds and leave a gap | pass |
outside condition test | The robot can withstand the outside conditions without technical difficulties | Robot is outside for multiple days, powered on and has feed in its storage compartment | Robot runs | The robot does not have any technical problems caused by outside conditions | Robot only left outside for one day, no technical difficulties | Not completed |
undesired bird prevention test | The robot prevents classified undesired birds from feeding | Robot is outside for multiple days, powered on, has feed in its storage compartment and sends pictures to a laptop to confirm the test is completed | undesired Birds come and feed at the robot. | The robot closes the door for undesired birds | No undesired birds detected during testing day. | Not completed |
Desired bird stuck prevention reality | The robot prevents classified desired birds from getting stuck and allows them to feed | Robot is outside for multiple days, powered on, has feed in its storage compartment and sends pictures to a | desired Birds come and feed at the robot. | Robot keeps door open for desired birds. When undesired birds come and feed no birds gets stuck in the | No birds detected during testing day | Not completed |
Tests
The test plan is split in multiple types of tests: component tests, sub-system tests, system tests and a prototype test.
The component tests are simply for testing if the servo motor, camera and raspberry pi worked. The sub-system tests test a part of the robot seperate from the whole. This makes it easier to make changes without having to disassemble to whole robot. Full system test in a controlled environment where done to see if the whole robot would function. In the end a prototype was tested in the real world.
The component, sub-system and system tests went very well. Only a few changes needed to be made after which the tests were conducted again. Those changes involved allowing the software to detect and identify multiple birds, changing the speeds of the door closing and leaving a bit of a gap preventing birds to get stuck.
To get as much data as possible from the outside test, without somebody having to sit and watch the feeder all day, an addition to the program was made. This addition had to make sure that when the identification system detected a bird pictures would be taken and send to a laptop. Unfortunately because of time constraints the bird feeder was only outside for one day. It did withstand the weather conditions, which were good that day, but no bird tried to feed at the feeder. This was however to be expected since birds need more time to get used to the new feeder before they try to get the food. Unfortunetely there was not enough time to leave the robot outside for multiple days. This resulted in the prototype tests not being completed.
Discussion
Conclusion
This project was about solving the problem of having unwanted birds feeding at bird feeders. After interviewing users related to this problem, we established our goals of making a bird feeder that fends off these birds. This came in the form of a custom bird feeder, with the ability to recognize the type of birds in front of the feeder and a door which can open and close based on bird activity.
During the project, we managed to construct a working prototype. It has an image recognition system that can accurately distinguish between birds in the small test set we have established. The door mechanism functions adequately, closing slowly to prevent birds from getting stuck, and then opening again 30 seconds after an unwanted bird was last detected.
Therefore, we consider the project a success.
Limitations
Due to the time restrain there was not enough time to test the bird feeder in a real life situation for long enough. Real life tests almost always shed light on all sorts of problems the developers had not anticipated. There also was not enough time to do more than just the identification and the door opening and closing. The other ideas we had for example the message and other features would make the bird feeder worth a lot more than it currently is.
The robot is only able to identify 4 types of birds common in the Netherlands. There are a lot of birds for which the program is not trained. To have a fully operational product the model needs to be trained to identify other types of birds. Not only in the Netherlands but also other different areas.
The identification system was only trained on a few pictures. Meaning that if the birds would come from a different angle it would not be able to detect what type of bird was present. The camera therefore either needs to have a better point of view or be trained with pictures taken from above the birds and at the correct angle. The different camera angle has as disadvantage that you need two places in which you have to hang the product which makes it more difficult for the user to install. For the other solution you would need a lot pictures from a difficult angle. Most pictures of birds are not taken from above and finding enough data to train the model correctly could be very challenging.
Future work
While the current prototype has all the basic functionality, it is in no way a final product. If one were to continue working on the feeder, many improvements to both the hardware and the software of the device should be considered.
For example, the current prototype is made of a few planks that are screwed together. This works for housing all the components and the bird food, but it is not very weather-proof and it does not look very nice. A future prototype could use prettier, more weather-resistant materials. This could still be wood, but alternatively one could design a custom plastic housing, also enabling you to design the feeder more freely.
Furthermore, it is likely that each of the electronic components will have to be swapped with something different. The current camera is not very weather proof, and other camera's might have more beneficial properties (Think of: Bigger FOV, better resolution, better framerate, less power draw). Additionally, the placement of the camera could be changed. Currently it is positioned at the top at the front of the feeder. However, placing the camera lower might provide better images of the birds. This all depends on what camera is used, how far down it can see and what source images the image recognition is trained on.
The (servo) motor could also be swapped. The current motor was chosen because it was quickly available, however we do not know how durable the motor is and if it can withstand thousands of opening/closing sequences over multiple years. Additionally, one could change how the door mechanism functions and could therefore require a different kind of motor.
One should also consider replacing the Raspberry PI with a different (custom) circuit board. The Raspberry PI is essentially a versatile mini-computer which can be used to code and implement loads of different behavior. But because it is so versatile, it has a robust feature set. A lot of these features are not used by the selective feeder and only take up space/power. When using a custom chip, you can make it such that it only has the components the feeder requires. In this case, we would need a motor controller, a camera connection, and either a moderately powerful CPU with some storage, or an internet connection based on how you run the image recognition (this is discussed in a moment).
On the topic of power usage, the prototype draws its power by being plugged into a socket. For a new prototype one should consider if it should plug in to the mains, whether it should draw its power from solar panels or perhaps a big (swappable) battery.
Very important in this decision is the way in how the image recognition model is run. More specifically, whether it is run locally, or if the recognition is done on an external sever and the feeder only has to send images over the internet. Both of these methods have their own drawbacks and benefits.
Running the model locally makes the feeder a much more stand-alone product and it might sell to more people as it would certainly not require a subscription and it does not require an internet connection. Furthermore the detection could be a lot faster as the images do not have to be sent off to a server. However, this greatly depends on how powerful and accurate the local model is. Also, the added delay by sending it to a server is long, but likely less than a second. Which usually not great in software development, but does it really matter if the physical door closes a second later? Additionally, running the model locally requires a lot more power, primarily for the extra computational power required to process the images. The size of the chip will likely also get bigger, which might or might not be a problem depending on the space available.
When using an external sever to process the images, you can run much larger, more powerful models. Updating the models would also be much easier, although make it such that the local model can be updated should be possible as well.
Downsides of using an external server for image processing is that running a sever is not free. So unless the cost of running the server can be compensated for by only selling the feeders, you will need to sell some form of subscription. Processing the images externally also means that the feeder needs to be permanently connected to the internet, and people do often not have an internet connection ready in their garden.
In either case of running locally or externally, the image recognition model will have to be upgraded to include more species of birds, as the current model only supports detection for 4 types of birds.
It would also be interesting to look into a way for the customer to choose the behavior of the feeder. For example, allowing customers to add or remove birds from the "unwanted" list, or allowing them to change the behavior if a mix of wanted and unwanted birds has been detected simultaneously.
Implementing such features would be most convenient in an app that connects to the feeder. Creating an accompanying app would allow for features like tracking bird counts, live video feeds from the feeder or even a way to track the amount of food left in the feeder. However, the ability to implement a companion app depends on how the feeder itself is designed. It must also be considered that people might find an app a bit unnecessary for a bird feeder. So, one might choose not to make one, or to make it optional.
So very long story short, if you were to continue the development of the feeder, there is a lot that can be improved.
Appendix
Appendix A: Planning
Week number | Task |
---|---|
Week 1 | Brainstorming for potential ideas + State of the art research + MoSCoW theory |
Week 2 | User research + Literature research and patents + design |
Week 3 | Built feeder + work on user-specified features |
Week 4 | Implement features into the feeder |
Week 5 | Finish Prototype |
Week 6 | Test + improve prototype |
Week 7 | Finalising product + presentation |
week 8 | Finish Wiki |
Appendix B: Sources
Regarding Bird Population and Behaviours
- (attraction) https://books.google.nl/books?hl=en&lr=&id=H3Cx1hB-TeQC&oi=fnd&pg=PR9&dq=attracting+birds&ots=yf6QfmbysH&sig=-EyO28YygyhS2iJluR8gjbLpYnM#v=onepage&q=attracting%20birds&f=false
- (attraction) https://books.google.nl/books?hl=en&lr=&id=qLd1mSAMSz0C&oi=fnd&pg=PP7&dq=attracting+birds&ots=aX5OLryMyA&sig=d5jGRLf54bOp6OquQYQmWINXZZk#v=onepage&q=attracting%20birds&f=false
- (bird population in the Netherlands) https://bioone.org/journals/ardea/volume-98/issue-3/078.098.0303/Long-Term-Population-Developments-in-Typical-Marshland-Birds-in-The/10.5253/078.098.0303.full
- (bird population in the Netherlands) https://www.tandfonline.com/doi/full/10.1080/00063657.2021.1939652#abstract
- (bird feed advice -- informal) https://www.allaboutbirds.org/news/types-of-bird-seed-a-quick-guide/
- (bird house design) https://dergipark.org.tr/en/download/article-file/4037334
- (bird feed preferences) https://avianres.biomedcentral.com/articles/10.1186/s40657-018-0111-z
- (defensive methods -- informal) https://feederwatch.org/community/tips-from-feederwatchers/deterring-unwanted-visitors/
- (which birds benefit from birdfeeders) https://www.frontiersin.org/journals/ecology-and-evolution/articles/10.3389/fevo.2017.00081/full
- (importance of birdfeeding) https://www.publish.csiro.au/mu/MUv111n2_ED
- (risks of wild birdfeeding) https://www.sciencedirect.com/science/article/pii/S0006320714003553
Regarding Automatic Bird Classification
- (provides an overview of existing methods) https://thesai.org/Downloads/Volume14No3/Paper_97-Bird_Image_Classification_using_Convolutional_Neural_Network.pdf
- (small scope, but extensive research) https://www.researchgate.net/publication/365080475_Bird_Species_Identification_Using_Convolutional_Neural_Network
- (only using sound) https://pure.tue.nl/ws/portalfiles/portal/320757124/Xie_Y.pdf
- (uses a slightly more complex AI model) https://www.mdpi.com/2076-3417/14/10/4278
- (general) https://www.researchgate.net/publication/358956994_Effective_Classification_of_Birds%27_Species_Based_on_Transfer_Learning
- (general) https://www.researchgate.net/publication/378059236_A_New_Efficient_Classifier_for_Bird_Classification_Based_on_Transfer_Learning
- (uses PCA) https://thesai.org/Publications/ViewPaper?Volume=12&Issue=4&Code=IJACSA&SerialNo=34
- (general use of CNNs) https://besjournals.onlinelibrary.wiley.com/doi/full/10.1111/2041-210X.13075
- (analyses how to track individuals in cattle -- could be used for tracking individual birds) https://www.sciencedirect.com/science/article/abs/pii/S2542660522000415
- (differentiating individuals) https://www.sciencedirect.com/science/article/abs/pii/S0149763420304395
Regarding Existing Projects
- (smart birdfeeder) https://www.diva-portal.org/smash/get/diva2:1708245/FULLTEXT01.pdf
- (smart feeder for pets) https://www.mdpi.com/2673-4591/82/1/63
- (solar powered birdhouse) https://www.theseus.fi/bitstream/handle/10024/808828/Seleznev_Alexandre.pdf?sequence=2
- (smart scarecrow with bird image and sound recognition) https://ieeexplore.ieee.org/abstract/document/5721481?casa_token=2-zSwSi6bdMAAAAA:d-BLOleNNwYZ6Id9-snu4sNyP-LpMizyU-QLn4yOXMt6gkCaW90cj_vjx39Gf6DT_ezH5zU
- (solar scarecrow design) https://ieomsociety.org/proceedings/2023detroit/36.pdf
Appendix C: Logbook
Week | Who | Breakdown of hours | Hours |
---|---|---|---|
1 | Leander | Lecture (2), literature research (2), meetings (2), problem statements & objectives (1) | 7 |
Thijs | Lecture (2), literature research (2), meetings (2), Requirements (4) | 10 | |
Pijke | Lecture (2) Literature research (3), meetings (2) | 7 | |
Mihaita | searching literature on classification (1), searching more literature on classification and also existing projects (3), meetings (2) | 6 | |
Luca | Lecture (2), meetings (2), research and literature research (3) | 7 | |
Jort | Starting lecture (2), literature research (4), user identification (2), planning (1), meetings (2) | 11 | |
2 | Leander | Meetings (2), Interview (1), Sketching (2) | 5 |
Thijs | Meetings (2), Interview (1), Sketching (3) | 6 | |
Pijke | Meetings (2), Researching existing features (6) | 8 | |
Mihaita | Meetings (2), Interviews & processing (2), Collecting bird feeder pictures (1), R&D on a RPI3 (3) | 8 | |
Luca | Meetings (2), interview (2), researched some components (3) | 7 | |
Jort | Meetings (2), Interview questions (2), Interview (2), Conducting research into bird feeding (4), meeting (1) | 11 | |
3 | Leander | Meetings (2), Classifier research (4), Sketching prototype (2) | 8 |
Thijs | Meetings (2), Attracting birds research (5) | 7 | |
Pijke | Meetings (2), Design (4), Design decisions (4) | 10 | |
Mihaita | Meetings (2), Classifier research (4), Finding Object Detection Model (2) | 8 | |
Luca | Meetings (2), electronics (5) | 7 | |
Jort | Affinity diagram (3), Changing MoSCoW (1), working on Wiki (3), meetings (2) | 9 | |
4 | Leander | Meetings (2), Design decisions (2), Initial operating system created (4) | 8 |
Thijs | Meetings (2), 3D modeling and rendering of prototype (5) | 7 | |
Pijke | Meetings (2), Design decisions (7) | 9 | |
Mihaita | Meetings (2), Installing classifier's roboflow RPi / Laptop (6) | 8 | |
Luca | Meetings (2), servo + RPi (6), soldering & electronics (2) | 10 | |
Jort | Meetings (2), research (2), work on wiki (3) | 7 | |
5 | Leander | Meetings (2), Building prototype (4), Implementing components (3) | 9 |
Thijs | Meetings (2), 3D part modeling (5) | 7 | |
Pijke | Meetings (2), Creating Diagrams (5), Testplan (2) | 9 | |
Mihaita | Meetings (2), implementing components (4), fixing issues (2) | 8 | |
Luca | Testing camera and RPi (4), implementing components (3), fixing issues (2) | 9 | |
Jort | Testplan(2), to-do list (2), work on wiki (3), Meetings (2), interview (1) | 10 | |
6 | Leander | Meetings (4), Prototype upgrades (2), Fixing hardware/software integration (4) | 10 |
Thijs | Meetings (4) Presentatie slides and format (3) Getting 3d part printed (2) | 9 | |
Pijke | Meetings (4), work on presentation (4), Continue testplan (2) | 10 | |
Mihaita | Meetings (4), testing robot (2), implementing more components (3) | 9 | |
Luca | Testing servo motor and RPi (5), implementing components (3), fixing issues (4) | 12 | |
Jort | Meetings (4), testing robot (2), preparing presentation (2), editing video (1) | 9 | |
7 | Leander | Meetings (4), Final prototype updates (3), Running/adapting to test cases (4) | 11 |
Thijs | Meetings (4), preparing presentation (2), final wiki work (3) | 7 | |
Pijke | Meetings (4), prepating presentation (2), work on wiki (4) | 10 | |
Mihaita | Meetings (4), preparing demo and final patches (2), work on wiki (4) | 10 | |
Luca | Meetings (4), preparing presentation (2), work on wiki (4) | 10 | |
Jort | Meetings (4), Preparing presentation (2), work on wiki (4) | 10 |
Appendix D: Interview questions
Interview questions start course
- I am interviewing you because you indicated you love birds, and you have a bird feeder. What is the primary reason you have a bird feeder? What do you enjoy about feeding birds?
- What kind of birdfeeder do you have or how do you feed the birds at the moment?
- Which birds do you enjoy seeing the most?
- On the other hand, are there birds that you would prefer not to feed at the feeder?
- How would you describe the types of birds that you most often see at the feeder.
- What challenges or frustrations have you experienced with bird feeders in the past?
- If you could implement any features in a bird feeder, what would these features be?
<introduce features>
Features:
Scare away birds
Notify the user when a bird has been detected
Identify the birds, count them and show the user
Stop feeding birds if they have been encountered several times already
- Have you ever encountered large birds at your birdfeeder and have you experienced problems with these larger birds?
- Would you like your birdfeeder to be able to deter larger birds?
- How often are you able to see birds in your garden?
- Would you like to get a notification when birds are feeding?
- Would you like to get a notification for a specific bird type, such as rare birds?
- Do you know what types of birds feed at your feeder?
- Would you like to get information about the species of birds when you see them at your feeder?
- Do you get the idea that there are birds who eat too much from your feeder?
- Would you like your bird feeder to be able to detect if a certain bird has already gotten food from the feeder that day to prevent overfeeding?
- Would you consider using such a smart birdfeeder?
- Could you rank the features we have discussed from what you would like most to what you want least?
End
- How did you like participating?
- Do you have any other remarks you would like to add or elaborate on?
- What did you expect going into this interview?
Interview questions needed for specification
During the project more design questions came up. The decision was made to conduct more short interviews to answer these questions.
- What decision should the robot make if there were multiple birds of which one is of the desired class and one is of the undesired class?
- What do you think is a good way to scare of birds?
- Close door quick
- Close door slowly
- Sound
- What do you think of our design so far?
Appendix E: Interview answers
Below are the answers to the interviews conducted in our research:
- I like watching the birds in my garden. I am quite old and live alone so it is good pastime.
- I put out the feeding balls with seeds in them and sometimes chains of peanuts. In the wintertime, I put out more food. In the summer the birds are often in my garden without having to put out food
- The smaller birds and the Jaybird. The Jaybird is my favourite and quite rare to see in my garden. There are also different types of sparrows where I live which are fun to see. Especially the red chest sparrow.
- I sometimes see jackdaw birds which can be a nuisance. I also often have cats in my garden from one of the neighbours. I don’t like it when the cat tries to hunt the smaller birds. Luckily I have never seen the cat catch a little bird. Interviewer: What don’t you like about the bigger birds? The bigger birds scare away the smaller birds and make a mess in my garden. Sometimes the food balls fall from the tree and I expect that that is the doing of the bigger birds, but I have never seen that.
- The smaller sparrows are very common. I live close to the park and they are abundant there. As I mentioned the Jaybird is rare to see.
- Can be difficult for an old man like me to hang them in the tree, so you might have to help me with that in the future. I sometimes have to clean up after the food balls have fallen.
- No idea, I don’t know much about technology.
<introduce design>
- Already answered previously.
- That would be nice. I don’t know how, but I would prefer only small birds and jaybirds in my garden.
- When I sit at the window quite often. There are quite often birds in my garden so I don’t really need to wait long, just have to focus. Spotting them gets more difficult with my bad eyes, but if I focus I can see them.
- I have an Apple phone on which I do get text notifications, so it would be possible to get the notifications, but I am not good with my phone.
- That would be nice, it has been a long time since I have seen a jaybird and maybe there are other birds in my garden of which I don’t know they came here.
- Mostly sparrows
- I have lived here for very long so I think I know all the bird types by now.
- I don’t know. Never thought about that.
- Interviewer had to explain a bit more about overfeeding That sounds indeed like a problem. I like the variety of sparrows. It is more fun to see different sorts than just them same. So if overfeeding is a real problem here than I would prefer if I didn’t make the situation worse.
- If I don’t have to do a lot of settings or you come to help me with it then yes. The youth know a lot about technology, but I don’t
- For which do I need to do things with my phone? The interviewer explains for which features an app is necessary. Scare away birds - prevent overfeeding - Notify with rare birds - Identify birds I have no use for an app because I won’t learn how to use it. I am too old for that.
End
- Fun and nice to see what you do at school, sounds very advanced
- No not really
- I didn’t know what to expect. Never thought that at my old age anybody would interview me about technology.
- Enjoys watching birds and being able to see them from their window, especially with and for their kids, also considers it educationally [educational as in 'upbringing']. Mostly feeds birds in spring and autumn, considers winter months 'too cold' to maintain feed.
- Fat balls ["vetbollen"], peanuts on a string ["pindaslingers"] -- particularly fun as an activity with kids --, empty peanutbutter jars (has a small wooden holder for it), and a birdhouse [not for feeding] which was only visited once
- European robin, Parakeet, Blackbird, Sparrow, Great Tit and Blue Tit
- Crow because they're big and seem to scare off the other birds, Seagull because they steal trash and litter [interviewee responded in general; the common seagull of that area is "Zilvermeeuw"]
- Jackdaws, Sparrows, Seagulls, Great Tit and Blue Tit, Ducks (who come near feeder, but don't actually feed)
- Three frustrations: in cold months it is inconvenient to put new bird feed out; sometimes birds don't come near the feed at all; often they don't see the birds feeding, and only notice that birds have been there due to the fact the food is gone. The interviewee owns cats, which means the bird feeding spot needs to be appropriately distanced.
- Two features: (1) wishes they experience see the birds from closer: from far away most birds look like silhouettes. Talked about something like a live video or audio stream to see the birds. Interviewee likened it to online live streams of cat feeders. (2) wishes they could know how many birds came to feed there, akin to a "vogeltelling" [ie. a counter of the number of birds in each species that came by]
<introduce features>
- Yes, specifically seagulls, which trash the place, and "big birds". Interviewee noticed that when larger birds feed on the fat balls, smaller birds are too scared to get near, and often wait nearby. Also noticed problems with cats, but not other animals [eg. squirrels].
- Probably yes, but would like to retain personal freedom in selection. Would also prefer to listen to expert advice (eg. advice from national institutes) regarding which birds should be selected against instead of making the choice entirely themselves.
- Many, their residence is near a park and birds often fly over or perch in yard.
- Yes, but the interviewee mentions that they don't want to get spammed by notifications. Proposes either the ability to silent the notifications, or [after discussion] a daily overview of which birds were spotted.
- Yes, very much, as they consider it difficult to spot the bird specie from a distance, and would like to be aware of the presence of rare birds.
- see answer to question 5
- Yes, would like to receive information (such as a wiki page or encyclopedia entry) of birds. Interviewee likes this feature more than simple notifications of which birds were spotted. Interviewee doubly likes this feature with respect to unknown or rare birds [tied to the discussion of question 12]. Also considers it neat from an educational [upbringing] point of view.
- Possibly, but unsure, mentions they are not an expert at this.
- In terms of certain bird individuals, no. In terms of certain bird species: possibly, but wouldn't want to make that choice themselves. Would accept getting advised by national institutes regarding this issue. Believes it is not their business to decide which birds eats and which doesn't.
- Concerned about data privacy, but considers the notifications a nice (smart) feature.
- Positive: photos (video) of birds, information page of birds, educational value; Neutral: large bird deterring, selective feeding; Negative: yet another app that sends notifications
Further remarks: Considers proposed design is also fun for their kids.
- Continues a habit started by their partner, feeds birds and watches them, enjoys seeing them incidentally.
- Mostly a handful of grains, breadcrumbs, stale bread, or other leftover grain products [eg. polenta] left on a tile or plate.
- Pigeons and Doves in particular, Swallows, Storks (not near feeding -- just likes them in general)
- Crows
- Pigeons, Swallows, Sparrows, Crows, Great Tit and Blue Tit, rarely a Seagull
- Excrement, attracting birds makes a mess in the general area surrounding the feeding spot. Interviewee particularly has the problem that flocks of birds tend to perch on their building when much feed is available.
- Mostly just wishes for cleanliness, something to prevent many birds from amassing.
<introduce features>
- Yes, specifically seagulls, but no problems with other large birds. Interviewee reports sometimes spotting a bird of prey in the sky, but never had problems.
- Not really, no. [interviewee does not care much about the larger birds, but considers a mechanical method of deterring 'neat']
- Many, their residence is near a forest [forest is further away than the park of the previous interviewee], and birds often fly over.
- No, does not care much about getting live notifications.
- In general, no, but would consider it for rare or endangered birds specifically.
- see answer to question 5
- Yes, but would like this more if the bird feeders were placed in public domain, such as parks or forests, by 'professionals' [eg. national institutes], to get information on birds which are not common in the city. Interviewee mentioned live streams of cameras placed in stork nests.
- Unsure, but also does not care much if the pigeons get fat.
- No, does not consider overfeeding or under-attracting certain birds an issue.
- Prefers the idea [suggested] of placing a monitored bird feeder in the woods (owned by institute / association) over personally owning a smart device. Also mentioned they prefer mechanical action to electrical action.
- Positive: information page, bird photos, originality of focusing on birds [in contrast to common house pets as cats or dogs]; Neutral: large bird deterring, selective feeding, constant information; Negative: -
- I like to see them in the garden, for example when I work from home. In the wintertime, I think it is good to feed the birds.
- On a small plateau, we have hanging from the trees. I put the food on there and watch birds feed from it.
- Tit birds are fun to see. They are quite small and chirp a lot.
- We have a lot of doves in the area which I don’t really like. We sometimes have ravens I think.
- Small birds are plentiful, I don’t know all the names of the birds.
- Not that many to be honest. I just put seeds on the plateau and that is it.
- No idea, I like the simplicity of the feeder. Doesn’t have to be too complicated.
<introduce design>
- Doves as I mentioned are annoying because they shit a lot.
- That would be something I am interested. I don’t know what you are thinking about, I don’t want to harm the birds ofcourse.
- Not that often. During Covid is was more, because I worked more from home then.
- Not really, I am not that fanatic
- I don’t know if there are any rare birds near me, but that would be cool. I rather use the feature for that then knowing when a bird is present.
- No not really.
- I don’t know how much I would use that feature. In the beginning it would be fun I guess, but eventually it would probably get repetitive.
- I don’t know to be honest.
- I mostly put out food during the winter so I don’t think it is a problem then, but if it is I would like to know. Then I would put out less food or indeed your solution would also work
- No, I think the idea is cool, but not everything has to be made complicated.
- Scare away birds - Stop overfeeding - notify user - identify birds
End
- Was fun, but unfortunately, we had to rush the conversation a bit, because of time constraints.
- Not really
- Not that much, didn’t really have the time to make expectations since you just asked me and we started it.
(interview in Dutch)
- Ze houdt van dieren en helpt graag dieren in het algemeen. Ze heeft een tuin met redelijk wat begroeiing dus er zijn veel vogels in de tuin. Dus wil ze graag deze vogels helpen.
- Huisjes met potjes pindakaas en vetbollen.
- De kleine vogeltjes dus mereltjes, musjes, meesjes.
- Ja, soms hangt er een grote ekster aan een klein vetbolletje of kraai.
- Meestal zijn het koolmeesjes.
- Vaak wanneer een grote vogel aan zo’n vetbolletje hangt, valt de bol op de grond, waarna de meeste vogels er niet meer van eten. Of ze maken een groot gat in het netje waardoor er een groot deel uit valt.
- Iets dat grote vogels beperkt, of iets waardoor kleine vogels meer beschut zitten en niet worden weggejaagd door grote vogels.
<introduce features>
- Ja wegjagen zou dus graag willen
- Vrijwel altijd
- Niet per se, je kunt ook gewoon een tijdje kijken totdat je een vogel ziet.
- Dat zou wel leuk zijn om zelf vogels weg te jagen.
- ja, maar meer als ze ze niet kent. Inmiddels kent ze de meeste wel.
- Dat zou ze niet weten aangezien er veel vogels van dezelfde soort zijn.
- Als ze grote vogels goed wegjagen ja. Maar de notificaties hoeven niet per se aangezien er geen zeldzame vogels komen.
(interview in Dutch)
- Vogelhuisje want ze woont in nieuwbouwwijk dus vogels aantrekken. Ze ziet niet vaak vogels. Concern voor katten.
- bird feeder is een cirkel met een platform en een klein gaatje voor kleinere vogels
- ze heeft een voorkeur voor bepaalde vogels, vooral ook voor vogelgeluiden met wakker worden.
- dr zijn vooral kleine vogels in haar tuin, dus ze heeft niet echt een voorkeur tegen bepaalde vogels. Liever geen reiger. Geen moeite tegen grote vogels maar wel moeite voor kleine vogels
- Heel weinig vogels, maar vooral kleinere
- Current birdfeeder is niet heel mooi. Vogels blijven niet heel lang hangen, ze komen snel eten en dan gaan ze weer weg.
- Meer ruimte voor de vogels om te staan, meer zachte bekleding, vogels lokken met geluiden. App om vogels statistieken te zien.
<introduce features>
- Nog niet problemen gehad met grotere vogels. Grotere vogels afschrikken maar wel zorgen dat het niet andere vogels afschrikt.
- Ze ziet niet vaak vogels maar kijkt ook niet vaak, dus notificaties met eventueel statistieken zijn leuk.
- Eerder beantwoord
- Ze ziet niet heel veel vogels dus het is nog niet voorgekomen. Overfeeding is niet echt een concern voor haar, dus of de feeder het bijhoudt of niet maakt niet uit
- Ja
- Statistieken en notificaties bovenaan, afschrikken/overfeeding minder
Andere ideeën: foto’s van de foto’s opslaan en aan de gebruiker aanbieden als diegene dat wil. Wel disclaimers maken over data van camera's.
(interview in Dutch; interviewed a couple)
- Primaire reden is vogels bijvoeren in de winterperiode. Het is leuk om de vogels van dichtbij te kunnen aanschouwen.
- Silovoeder, en losse vetbollen en potten "pindakaas" en korstjes brood.
- Pimpelmees en koolmees en roodborstjes.
- Eksters, Vlaamse gaaien en kouwen.
- De kleinere vogelsoorten zoals de mezen en mussen.
- Dat de grotere vogels alles in één keer meenemen (korstjes brood) en niks voor de kleinere vogels overlaten.
- Mogelijkheid 3: vogels identificeren en tellen. (liefst de mogelijkheid om dat in een app te kunnen nakijken.
<introduce features>
- Grotere vogels zijn te zwaar voor de voedersilo die wij hebben. Één voedersilo die wij hadden is door het zware gewicht van de vogels kapotgegaan.
- zou mooi zijn maar heeft geen prioriteit.
- Iedere dag.
- Zou mooi zijn maar wat ons betreft geen "must".
- [idem]
- We herkennen inderdaad alle vogels die gebruik maken van de voedersilo.
- is leuk maar absoluut geen "must".
- Is voor ons niet na te gaan. Vogels vliegen af en aan.
- Nee
- Afhankelijk van de prijs.
- Notify the user when a bird has been detected
- Identify the birds, count them and show the user > Scare away (larger) birds > Stop feeding birds if they have been encountered several times already
Appendix F: week 1 ideas
Lists of interests for each group member.
We will use this to decide our final pick(s).
Jort | Leander | Luca | Pijke | Thijs |
---|---|---|---|---|
- Drugs test robot for in a bar to prevent people from getting drugged.
- Safety walk system in which you can set you designation and it looks for safest road with most lights and busyness.Warning when straying from path - Social interaction robot which moves while video chatting |
- Robotic "guidedog" for visually impaired (something that detects obstacles and communicates avoidance directions)
- AI bird feeder (identifies, dispenses accordingly) - AI window cleaner (cleans windows that are hard to reach for example, finds them and cleans them) |
- app to chessboard
- Pill dispenser - smart energy meter and app |
- Software-hardware connection
- Making a robot move; pathfinding - Visual recognition; Sorting pills? |
-Embedded systems
-Solving puzzles -Entertainment or usefulness |