BeagleBoard/GSoC/"beagle"bone

From eLinux.org
Jump to: navigation, search


“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 with a simple app. 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 powered unit and all while monitoring their everyday behavior. 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 Black Wireless based computer. Additional requirement could be proximity sensor/thermal sensor and a servo motor. A display and a USB based webcam on the main unit to enable video calling will be required. An android based mobile device will also be required for the main unit to user connectivity.

Approach

  • The main unit will utilize the BeagleBone Black Wireless board.
  • I plan to use Python and OpenCV for the pet movement tracking.
  • I plan to use a WiFi connection to connect the BeagleBone Black Wireless 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 HDMI display and a USB WebCam for Video Calling.
  • 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. Food dispensing unit, motion tracking unit, the HDMI display and the Camera 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.
  • Ninth week onwards I’ll work on improvements and fix for the application/main unit software and repository maintenance (after GSoC as well).

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.