In 2021 I set out to build a Raspberry Pi rover based robot – essentially a 4WD autonomous car. Originally conceived as a robot lawn mower, the design quickly changed. Commercial automated lawn mowers work by the use of control wires to mark boundaries of where it can go. That led me to think, could I use a camera and image analysis to detect the lawn edge? But then how will it know where it has been? I have a reasonable sized lawn, having it mow the same area over and over again will be pointless.
With a Bluetooth beacon in each corner of the lawn, it should be possible to triangulate it’s position, record the visited path and then head to untouched areas. Or more basically, if placed somewhere in the garden, could an autonomous robot track down a Bluetooth beacon and recognise it with a QR code?
With Bluetooth triangulation, a camera, AI and distance sensors, it opened up a world of interesting challenges and projects. You can run anything you like on a Raspberry Pi, so a powerful wheeled robot chassis opens up a world of possibilities. With languages such as Python and Scratch, it left a platform my son could program too. The project has grown into a learning exercise in robotics, automation and AI. And perhaps it will actually cut the grass one day too.
Below are a series of blog posts detailing the development and challenges found in my first robot vehicle build.
All code, test scripts and 3d printable objects are included in my Github repository.
- #1 – Basic Build : Getting the hardware together and getting something that moves
- #2 – Blue Dot Driving : Making the rover drive-able using a simple phone app
- #3 – Web Interface Driving : Driving the rover from a web interface
- #4 – Raspberry Pi Pico as a slave device : Offloading PWM functions to a Pico
- #5 – Adding a pan/tilt mount : Allowing the robot to look around