Join me in my ongoing journey to produce a functional cleaning robot, starting from scratch, using the cheapest of components.
My first attempt at building a useful and functional robot is a cleaning robot. It might seem like a boring start but I conducted a survey and many people selected bathroom cleaning as a task they would prefer to automate. Once I had a mental picture of a robot cleaning my bathroom, I simply couldn’t let it go anymore. Consider that the most boring and endlessly futile tasks are the ones that we should be striving to automate first.
I like to start things in a modular and practical way, so I designed the most obvious and simple robot I could imagine that could perform the functions of bathroom cleaning. I defined a set of features to break the work down into streams:
High level feature groupings include:
- Main robot body structure
- Locomotion of main robot body
- Vision and feature identification
- Planning of cleaning action
- Evaluation of improvement or goal reached, cleaned status
- Cleaning capabilities
- Object avoidance
Under each of these I have a set of milestones that builds in an incremental way. For example, when the robot takes some kind of action, we can build it up in steps from 0 autonomy and total reliance on a human being to complete autonomy.
Within these milestones, I run basic experiments which build the robot but also ramp up my knowledge of robotics and AI. Along the way, I am gaining skills in Arduino, Beaglebone, computer vision, prototyping, sensors and actuators, and ROS. I will blog about the learning experience in my personal blog. Having a real goal is really accelerating my learning. But having such a large and varied goal means that I only learn a little in each area before having to move to the next. More to come about the experiments in future posts!