This is a balancing robot platform to practice how to tune PIDs, how to work with Raspberry Pi and openCV. (for dummies by the dummies)
Most of sketches are not yet well-commented, but they are not very hard to comprehend. Although I'm planning to make some how-to videos, but a bit later.
Balancing robot is based on Joop Brokking's project http://www.brokking.net/yabr_main.html
Web app is based on Fredrik Gustafsson's project https://github.com/fregu856/Sommarprojekt16
Color tracking using PID is based on this article https://oscarliang.com/raspberry-pi-color-tracking-opencv-pid/
First algorithm of line detection is based on this medium article https://medium.com/@galen.ballew/opencv-lanedetection-419361364fc0
Second algorithm of line detection is based on this project https://github.com/CRM-UAM/VisionRace
Third algorithm of line detection is based on this project (there are also good videos on youtube, see Out of the BOTS) https://gist.github.com/flyboy74
Many helpful info about working with raspberry camera I found here http://www.pyimagesearch.com/2015/03/30/accessing-the-raspberry-pi-camera-with-opencv-and-python/
Here is a nice tutorial how to build simple flusk web-server https://projects.raspberrypi.org/en/projects/python-web-server-with-flask
How to stream video https://blog.miguelgrinberg.com/post/video-streaming-with-flask
How to setup the RPI as a WiFi hotspot (not done yet) https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/
Basic serial communication RPI and Arduino https://oscarliang.com/connect-raspberry-pi-and-arduino-usb-cable/
DRV8825 Stepper Motor Driver Carrier, High Current https://b.pololu-files.com/product/2133
And ofcourse https://docs.opencv.org/2.4/