Introduction
Hi! For now I had only worked on smaller couple of weeks projects, where I would usually end up with either a prototype/proof of concept, or something that is only useful for me. So I thought why not try out something different, a project that I would try to develop as much as possible while also trying to make it useful for others as well. Besides developing it as much as possible, I would also like to get into the "matter" of it as much possible. The plan is having the project finished somewhere for summer of 2019, which I'll explain very shortly. This will give me enough time for everything without making me sacrifice my studies on the university and will also let me to approach it in as much detail as I can. For now I've done a lot general research on the topic, but I will be going more specific part by part.
Project Plan
Since this is a project I plan on putting a lot of time in, I wanted it to be something that I have a lot of passion for. Two of my absolutely favorite sports in the world are (besides basketball) skiing and cycling (more specifically mountain biking). Those two are the sports that can really clear my mind, which I can enjoy endlessly. While these sports are fun to do on their own, they are also great if you have other people with you, and are also incredible for capturing cool footage. But there are a lot of things to capturing great footage, since sometimes it is hard to place the camera for the shot or more commonly the footage is too shaky. There are of course a lot of solutions for this from digital stabilization to gimbals. But there are also situations where I would like to record myself going down the slope, so I either have to find someone to film me or just stay within a very narrow path, there is also following someone else and filming them while trying to keep balance and keep the shot as best as possible.
My idea is to make a gimbal based on an Arduino and Raspberry which would as a main camera use my old action camera, with the addition of a Raspberry camera which I plan on using for object tracking to give object tracking abilities to the gimbal besides stabilizing. With this I hope to make a device which I could use to film POV footage as well as a device which I could place at the end of a slope/on a tree on a trail, and film everything while everything is framed properly. This would also allow me to film friends while skiing much easier since I could concentrate on keeping balance and angles instead of framing.
Camera
For the actual recording I will probably be going with my old action camera. The Raspberry camera V2 recordings are pretty decent, but unfortunately it can only go to 1080p 30fps. My old action camera can do 1080p 60fps which really changes how the video looks, but I will be testing and comparing the cameras along to way to see if the Raspberry camera V2 is maybe a viable option, since I can adjust a lot of stuff on it through software. If I stick with using 2 cameras I will probably be rewiring the buttons on it or the remote that comes with the camera to the Arduino/Raspberry.
Hardware
As the brain of this device I plan on using a Raspberry, I will be experimenting with the 0W to see what kind of performance I can get out of it for object tracking, but if that doesn't go through I will be going with the 3B+. The raspberry will be communicating with an Arduino which will be in charge of communicating with all of the sensors and the motor controllers for the gimbal itself. One more really important thing of course will be supplying power to everything, I have a few ideas here on making a sort of a UPS system which would power the whole device long enough for a battery change without restarting/shutting down, since this is one of the things that always bugged me a lot. There are a lot of different types of gimbals out there and by far the smoothest are the ones with BLDC motors. There are also options with servo and stepper motors, but they usually aren't fast enough and can get pretty choppy footage from them. I don't have a lot of experience with BLDC-s but will try my best to incorporate them into the project.
Software
The Arduino and controlling the motors them selves is something I will get into a bit later, since this is something I will be reading on the most. For the Raspberry, I will be going with OpenCV, the plan is to experiment on a lot of levels here from color to shape tracking and so on and then pass that information down to the Arduino. For controlling the whole device I plan on having physical buttons as well as an Android app which will be able to control a lot of parameters of the device.
There is of course a lot of more detail with all of this, but I will go into detail in other blogs which will be themed towards a certain part of the project progress.
Summary
While I know there are solutions like this on the market already they usually cost a lot of money. This seems like it will be a pretty challenging but also incredibly rewarding project if at least a part of it works out. As I've already said, the plan is to have the project done by the summer since I have a lot of other things to do and since I would really like to get a little bit deeper into some of the things. I will be posting all of the updates on this project as a series here, where I will be covering in great detail, part by part how and why I did things. Thanks for reading the blog! Hope you follow the project along!
Milos Rasic