Building an autonomous mobile robot - But why?
Over the last decade I have been developing software of all kinds. I have coded both for work and for my own learning and entertainment. The majority of the coding I did over that period was code that lived only in the virtual world. Things from from numerical simulations to building software infrastructure.
While I have always greatly enjoyed writing code and learning new skills I have found myself being less and less interested in writing more code that only lives in a virtual world. It feels like there is no purpose for this code, like something is missing.
The main thing I feel is missing is interaction with the physical world. The ability to see the effects of the code when it is executed, to see things move and react to the world. While in university I studied Aerospace engineering and Mechanical engineering. Two disciplines heavily involved with real world physics. The fact that a design lives in the physical world adds all kinds of additional constraints and behaviours. Some of which the result of interesting physical behaviour and others the result of the continuous and analogue nature of the physical world. All of this makes the engineering problems more interesting and challenging.
One of the ways I have been incorporating making physical things is by working with timber. I've build several bits of furniture and generally greatly enjoy working with wood. However working with wood misses the technological side that I do also enjoy.
A domain that combines both the physical and virtual worlds with large amounts of technology that recently caught my eye is the world of robotics. As robotics is a combination of many different fields there is a lot to discover and learn about. Even for the design of a simple robot you will have to deal with fields like structural mechanics, electronics, software, perception, machine intelligence etc.. As a bonus thanks to the availability of relatively cheap electronics and structural components it is possible to build an interesting robot yourself.
My current goal is to build an autonomous mobile robot that is capable of navigating outdoor spaces while carrying some kind of cargo from one location to another. Before I get to designing and building a robot from the ground up there are a lot of things to learn. In order to speed up the learning process I picked up a SCUTTLE robot kit and started learning about ROS. More on that will follow in a future post.