Building a Robot from Scratch: Project Outline

Projects should be fun, entertaining and educating. In the past year, my projects were in two areas: DevOps with Ansible, Nomad and Kubernetes. Web Application Development with HTML, CSS and JavaScript frameworks. For some time, another interesting area has been on my mind: Robots. It’s amazing what other enthusiast created, its inspiring to watch a self-made, wheeled robot with a laser sensor to drive around and explore its surroundings.

This article originally appeared at my blog.

Motivation for a Self-Made Robot

From this description, it is obvious that the project combines different aspects of robotics: Assembling a robot with a chassis, motors and sensors. Enable the robot to access variable sensor data. Provide the robot with the abilities to move and to fetch items. And finally, to program the robot to follow goals and decide the best approach to achieve them.

Therefore, the “build a robot” goal can be broken down into distinct subprojects. Each subproject ideally results in a robot prototype that fulfils its current feature goals. By combining the subprojects, I should have a robot with the all of the described features. For me, the journey is the goal. I fully expect that some subprojects might take a long time to finish, with several “try & fail” cycles until I have the necessary knowledge and skills. This journey will be interesting indeed.

Subprojects

1. Essentials: Software & Hardware

Similarly, I will investigate the hardware side: What are the components of a robot? What tools do you need to assemble a robot? Which options for movement exists? What kind of sensors are available, and which of these are useful? How much do the components and sensor cost? Are they interoperable, or do you need to explicitly buy hardware from one brand?

After this project phase, I should understand the landscape of robots programming and know the required hardware for designing the robot. Then I can start to assemble and build the robot feature by feature.

2. Moving Robot

Source: https://create.arduino.cc/projecthub/MyPartsChest/autonomous-arduino-mega-track-robot-10699d

Controlling the robot is a fascinating area in itself. The simplest approach is to send terminal commands to the robot which is interpreted for simple. More sophisticated is to use a remote device, for example and IR, to send continuous data to the robot.

With this phase, I will start something very new. I have no experience with assembling electronic parts at all. So, I also anticipate that this phase can last way longer than expected. And to see and resolve a lot of errors.

3: Simulation

4: Visual Sensors

Source: https://gazebosim.org/tutorials?tut=lockstep_physics_sensors&cat=sensors

Given these sensors, the robot should recognize obstacles during movement.

5. Self-Navigation

6: Pickup & Deliver

First, I need to go back to the simulator and design a robot arm in the widest sense of the word (shovel, pliers, crane or even fingers). Using the simulator, I will confirm that this arm can pick, hold and release items. Once the simulation works as intended, I will order the required hardware components and assemble the robot. Then its testing time: Instructing the robot to pick up items and deliver them to a target place. This stage completes the project.

Conclusion

This project is a huge endeavour for me, since I have no experience with electronics and assembling at all. I’m prepared to spend way more time in the project phases because of obstacles or sheer fascination about a specific aspect of the robot. The journey is the path — let’s start!

IT Project Manager & Developer