FruitBot, a powerful, autonomous, indoor delivery robot.
Also see the story, part list and interface.
Named FruitBot, because I used my Apple MacBook to develop software for a Raspberry Pi board using lots of parts from Adafruit. See what it's like to drive the robot using the FruitBot interface. See my shopping list, review the software code, and read more in the full FruitBot story.
May 2020, I found the Autonomous Follow Me Cooler project which looked very promising.
July 2020, I was encouraged to tackle the robot project after some early success with smaller robot designs, like this one where a robot follows a yellow ball.
Dec 2020, I found this delivery robot design that used an office map on a web page to tell the robot where to go. Combine that with the A* or Astar maze solving algorithm, and this was a good start for navigation.
Jan 2021, I started by putting together some of the parts I knew I'd need, like distance sensors, a compass, and video camera.
March 2021, The robot had to be as narrow as possible to fit through some tight spaces in the house.
April 2021, This EGO Power charging base was emptied out. This would securely hold the battery and provide power to all the circuitry inside.
April 2021, Had to drill a hole through the bottom platform for the main axle. It was tough on my little drill.
2021-06-12 Took it for a ride. Now with Sabertooth driver. This is where I learned I need two rear caster wheels.
2021-08-02 While testing, we had a bit of a tumble down the stairs. No one was hurt, but repairs would take a while.
Dr. Magnus Egerstedt discusses the calculations needed for the PySimiam navigation system. (Original Link)
A 2.2KΩ resistor connects the trigger pin to the echo pin for each HC-SR04 ultrasonic distance sensor.
Inside the battery box is a gaggle of wires. Closest to us is the shunt for the power meter hiding under some Kapton tape. The ItsyBitsy M4 microcontroller sits in a cardboard cradle to protect it from accidental contact.
Here is the ItsyBitsy M4 out of the cradle. The informative NeoPixel was hard to see, so I lined the cradle with reflective wrapping paper. There is a clear plastic layer to prevent any metal in the shiny paper from causing a short.
Map navigation demo. The robot knows how to get from point A to point B by planning a route on the map.
MetroMini circuit diagram. The ultrasonic sensors and NewPing software library work better with a 5V Arduino Uno board.
3/2021 - Testing the web interface map and translating that to robot movement.
FruitBot interface with small scale robot (14sec)
Getting BTS7960 power readings. The robot only weighs 11 pounds, so the wheels spin when it hits a wall rather than stall. The rubber wheels may perform differently on carpet.
Power Test - Driving both motors (6sec)
Power Test - Trying to stall BTS7960 (10sec)
5/19/2021 - The BTS7960 motor drivers turned out to be terrible. FruitBot now has a Sabertooth 2x12 RC motor driver and a 12V 9Ah battery, and the motors are now working.
Power Test - Sabertooth motor current draw (14sec)
6/12/2021 - I tested to see how much weight the Power Wheels RS-550 motors and Sabertooth could move. The power meter measured 8.7 amps from the 12V lead acid battery as it hauled me across the room. I'm using the Adafruit Bluefruit Connect app on my iPhone as the joystick to control an ItsyBitsy nRF52840.
Riding FruitBot (20sec)
9/26/2023 - FruitBot now lives in Michigan with my parents. The navigation system is not finished, so I've been practicing tuning PID controllers and working on geometry and trig issues using MiniBot, a much small robot that I can practice with. Wheel speed management and obstacle avoidance have been evolving well. Today, I ran a demo by setting MiniBot to go in a straight line and let the distance sensors handle the rest. To my surprise, it rarely ran into anything for over a minute, but movements were far from smooth. Still, it's progress!
MiniBot autonomous travel (1min)
Thank you to Adafruit for lots of great parts, and so many helpful tutorials.
Special thanks to my husband for putting up with me, and an anonymous electrical engineer for all his support with this project.