BeagleBoard/GSoC/"beagle"bone

=“Beagle”bone: Interactive Pet Surveillance =

An opensource project to improve lives of pet owners and pets. It provides an interface between home alone pets and their owners. You can easily interact with the pets at home while on the go. It helps both pet and the owner to overcome the sadness of separation. You can video call your pets on the go through the BeagleBone and PocketBeagle powered units and all while monitoring their everyday behavior through the surveillance unit. Features for the food dispensing can also be added to the main unit. The main unit will be equipped with sensors to recognize if the pet feels alone and wants the owners attention, allowing them to call them at will. Further improvements can be introduced as the software is completely open source.

Student: Yatharth Mathur Mentors: Nidhi Gupta Code: https://github.com/yatharthmathur Wiki: https://elinux.org/BeagleBoard/GSoC/%22beagle%22bone GSoC: GSoC entry

=Status= This project is currently just a proposal.

=Proposal= Goal: To develop an IoT based solution for the problem of anxious and scared home alone pets and their worried owners. Hardware Skills: Knowledge of basic electronics, sensors and pinout configuration of BeagleBoard Software Skills: C++, Python, Git Possible Mentors: Nidhi Gupta

About Me
IRC: yatharth.mathur Github: https://github.com/yatharthmathur School: Army Institute of Technology, Pune Country: India Primary language : English, Hindi(Native) Typical work hours : 5PM-12AM Indian Standard Time Previous GSoC participation: N/A

About my project
Project name: "Beagle"Board: Interactive Pet Surveillance

Description
As stated above, my project is basically about a Pet Surveillance/Assistant Device. As I am very fond of animals and pets in particular, I have decided to do something to assist both the owner and the pet. We all know how saddening it is for the poor critter when their owner is away. So what I plan to do with my project is to provide the pet with a platform/device with which they can interact with their owner even when they are away. So the device would basically be a small computer (BeagleBone main unit) connected to the cloud. So through the main unit surveillance you can observe your pet's activity. Moreover, the computer will have an installed display as well as a camera in it through which the pet can video call you. Various other features can be installed on this device, like food/treat dispenser with which you can reward your pets even when you’re away. It will be installed with a few sensors like proximity sensors so that it can know when the pet feels like talking to the owner. The pets can just come close to the device and call their owner. The device can be pre-programmed to dispense food on regular intervals. Basic programming languages like Git, C, C++ or Python can be used to program the software required. Main requirement would be a BeagleBone based computer. Additional requirement could be proximity sensor/thermal sensor and a servo motor. A USB Modem dongle will also be required for the internet connectivity along with a display on the main unit to enable video calling. An android based mobile device will also be required for the main unit to user connectivity.

Approach
 I plan to use Python and OpenCV for the pet movement tracking. I plan to use a USB modem(dongle with a Cellular Sim) to connect the BeagleBone main unit to the internet. The main unit will be equipped with a servo motor based food dispenser the control of which can be user defined. It can be through IR motion tracking/OpenCV image tracking or just at the press of a button or programmed for regular intervals. I will use the pet movement tracking/proximity sensors to further enhance the features, to include the feature of allowing them to call the owner at will. The main unit will be equipped with a display (for video calling purposes). A software would be required to integrate all of the features together + a simple android application to control the main device remotely (the unit with the user). 

Timeline
 For pre-GSoC, I will be preparing on the methods on how to implement and all the hardware requirements/specifications. For the first week, I’ll be focusing on study of Beaglebone product provided and experimentation. In the second and third week, we’ll set up the main device (the interface that connects the pet and the owner). Food dispensing unit and motion tracking unit will be installed here. For the fourth and fifth week, I’ll be looking at the logic implementation for the device. The software and the motion tracking through Py and OpenCV will be implemented here. In the sixth week, the development of app for the user will be completed (a lot of preexisting open source code can be utilised). Seventh week will be utilized for integration of both the main unit and user unit (through cloud). In the eight week, I’ll test and debug the code and improve the features and make the code open source. <li>Ninth week onwards I’ll work on improvements and fix for the application/main unit software and repository maintenance (after GSoC as well). </ul>

Experience
I have always been interested in Open source development and IoT and this is THE best platform where I can learn, grow and do. Even though I have little experience in this field, I have studied a lot about it. I am a keen observer and a fast learner so I’ll take little time to learn about things I don’t know yet. I have allotted a couple weeks for that in the timeline. Since I have a bit of experience with competitive coding and mathematics, it won’t be very hard for me to do the logic part of the project. I am constantly practicing and learning C++ and Python in my free time so again it’ll be easy for me to write the code. I am a little new with Git but I have almost gotten the hang of it at the time of writing this proposal so in a couple weeks more I’ll be proficient in it. Moreover, the project is of personal value to me because of my love for pets so it’ll be very interesting and exciting to me always and not turn monotonous. I would like it if I get my hands on the modules beforehand so that I can get comfortable with it and learn all the functionalities and finalize the hardware requirements Since, I am from an engineering background, all of the science and math prerequisite for the project is already clear to me. I have a calm and composed approach towards problems and I am very hardly tensed. So even in this time constraint I’ll keep my calm and work efficiently.

Contingency
There will be shortcomings along the process and there will be many times that I’ll be stuck. I'll try my best to not let that happen but if in case that happens, I have my college faculty, friends and seniors to help me along the way along with the Beagleboard community. I'll read up on all the kinds problems I can run into as I would've learned that from my mentor before hand.

Benefit
If this project is successful, it will not only help the user but the pets too. A lot of pets become ill due to the separation from their owners. So this will definitely help those who love animals. Since the idea is rather novel in the field of open source, more animal enthusiasts who are studying Computer Science, Electronics, and other STEM subjects will be attracted towards it, further improving the community. This will also work as step forward in the direction of IoT implementation in our homes. I will create generic methods and reusable modules, maybe as a library so that anyone can use it in any different scenario and benefit from it.