Some history:
Back in 2007 I soldered ASURO robot and flashed C programs onto it -- it had two wheels and a half table tennis ball below PCB front:
(only in German language) https://de.wikipedia.org/wiki/ASURO

This is list of projects I did with myIrAsuro (German language, photos, animations, links to German language robot forum):
https://stamm-wilbrandt.de/myIrAsuro.html
Flashing code was done from PC via IR connection. Putting IR led and IR sensor directed to front and separated allowd to measure distance to obstacles (here small cell phone allowed to even capture videos from moving myIrAsuro) :

With very simple code (no obstacle in front => both wheels full speed forward / obstacle in front => left wheel stop, right wheel full speed forward) this allowed robot to drive rounds in our kitchen. Two ASUROs with different distance threshold were able to drive as "2-robot swarm" autonomously (the ASURO with big wheels attched had 1.8m/s maximal speed, and did really slide into the curves):




I mounted IR led and sensor so that robot "standing" on two wheels only was able to measure distance to desk. First I did not get it right completely, and created a "ranaway robot"


Later I was able to balance on two wheels, made left wheel stop the whole time, and change the thrshold distance for right wheel forward/backward drive to make robot slanted. That way myIrAsuro did drive forward (fast)

In this (German language) posting I discussed the title of this thread in 2007:
https://www.roboternetz.de/community/th ... post246683
State of the art:
I found many 2-wheel balancing robots on youtube, but only this did follow a line (slowly) with a camera:
https://www.youtube.com/watch?v=AZ8HnyVm6Bw
Plan:
I plan to use VL53L0X Time-of-Flight ranging sensor for balancing.
Found many python libraries, but I prefer C.
This github repo makes ST Microelectronics library available for Raspberry Pi.
Building worked as documented:
https://github.com/cassou/VL53L0X_rasp
I burned my VL53L0X, ordered a new which will arrive tomorrow.
I will use these simple motors with wheels as basis:
I did setup a small test course already (German language test course construction: https://stamm-wilbrandt.de/RobotChallenge/):
As camera I will use v1 or v2 camera without lens, or (v1) spy camera or Arducam 0.3MP monochrome global shutter camera.
Milestones:
- build new robot with motors, Pi0, camera, VL53L0X, 1S Lipo
- make it balance
- make it move slowly (slanted)
- add line following
- maximise forward speed while still following line
P.S:
Mid last year my raspcatbot project (Raspberry caterpillar robot) got interrupted by new HQ camera (microscope with 0.21µm/pixel distance, superlong exposures (60min), attaching HQ camera to cheap telescope) and many other projects. It definitely will be resumed (maximal speed of that robot is 5m/s, already seen 2.55m/s inhouse, line following with 25.99$ 0.3MP monochrome global shutter camera, frame information extraction will use just before robot (present) as well as far away (near future) frame information to control high speed moving robot autonomously):
viewtopic.php?f=37&t=267999&start=50#p1683666