Francisco The Fire Hydrant is the product of a week long MIG welding class at The Crucible in Oakland. All of the non-electronic components are made of recycled materials, all of the cuts were made with a handheld plasma cutter, and the code that drives everything can be found here: https://github.com/ZekeMedley/fire-hydrant-robot
When I started designing Francisco, I knew that the clean visual aesthetic that I usually attempt in my projects would be less than effective. I wasn't experienced enough with metal work yet, and only had access to a rusty metal scrap bin for components. In order to leverage that, Francisco was designed to be imperfect looking, but to minimize the number of components so as to keep from looking messy.
I started by cutting and bending an old rusty fire hydrant into a form somewhat suggestive of a body and head and subsequently welded some feet together out of old wire brushes. The only other component I added was a gear to the bottom of the head, to suggest that the component was kinetic. At this point I was done with the chassis design.
With the chassis built, I started to design the electronic components and the software that would control them. I own a Raspberry Pi with a camera module, so I leveraged that to let Francisco track people. Because the camera doesn't give any depth information, Francisco is controlled by a simple feedback loop. The loop checks for people in the image, determines if they are in the left, right, or center, and then moves the servo in that direction. It uses TensorFlow's object detection model to preform the detection.
Moving forward, I'd like to work on a more novel way to find people in an image. The objection detection model runs quite slow on the Pi, which means that the feedback look can only update about once every second and leads to jerky movement by the head. I'd like to explore that, and moving the servo movement commands to another thread to smooth out the motion.