Deskbot: Part 1 — Parts list

Yuan Gao (Meseta)
Meseta builds Robots
4 min readAug 11, 2020

It’s been a few years since I’ve built a robot outside work. So it’s time to refresh those robot skills.

I will be using one of these cheap robot arm kits from Aliexpress as the main robot, and then adding as much smart control to it as I can, with an up-to-date ROS stack. Along the way, I’ll see what modifications are needed to improve the robot.

The robot parts

Source: Aliexpress

The metal parts and screws of this arm cost only £20, making it a bargain, however the rub is that to work, the robot requires an additional 6 MG996R servos, and associated driver boards.

MG996R are a fairly standard RC model servo with metal gears. The metal gears is important as the arm will need to deliver high torques (relative to what servos are usually used for in RC models) and so the metal gears ensure the internal gears won’t be so easily stripped.

MG996R cost range from £26 for a set of 6 to £42 each for the high torque models on Amazon. I suspect the torque needed by the robot will differ based on joint. I will begin by purchasing a small pack of servos just to get things running, and will get higher torque ones as needed.

Big Boy servo. Source: Amazon

To drive the servos, I will be using a servo drive board from Witmotion. The reason I use these servo drive boards is this project is intended to be 100% driven from a computer, meaning I don’t need any general purpose microcontrollers (other than the ones already part of boards such as these) to do any signal processing, and will instead calculate and send the control signals from the computer. Therefore I want to pick the simplest possible IO boards to use.

I’ve already written about some of the pitfalls of using this particular board, but have found an adequate workaround for it: https://medium.com/meseta-robots/witmotion-servo-control-reverse-engineering-d5acf7ce528f

I may add other parts as necessary to the robot as it evolves, but these are enough for now for basic open-loop control.

The computer parts

To control the robot, I will be using a combination of my own desktop, and a smaller dedicated computer that handles all the low-level device interface.

These mini machines run Intel Atom processors with 2GB or 4GB of RAM, and were formerly part of my Beowulf cluster. They should be ideal for running the USB interface because I can leave this machine attached to the robot as a dedicated robot controller, but send signals to and from my desktop or a more powerful machine to run the other bits of the stack.

The software

The main robot stack I’ll be using is ROS2, ROS (Robot Operating System) is a framework for robotics, and provides a lot of common bits of framework ranging from communications between subsystems, to configuration managemeng, and more. By providing a single unified framework to build robotics sacks, it lets groups share their code and systems. I will be importing open source code from the ROS ecosystem into this project, and I intend to release any code I build as open source into the ROS ecosystem too.

Specifically, I will be doing most of my work in Python, using ROS2’s python support, componets will be dockerized for modularity, and a small amount of javascript will likely be used for any UI needed.

The above sections have described the base hardware and software that I will use to start the project, but I hope that this will be extended as I explore different directions to take this robot.

In the next part, I’ll start constructing the mechanical parts of the arm and explore the pros and cons of the design.

--

--

Yuan Gao (Meseta)
Meseta builds Robots

🤖 Build robots, code in python. Former Electrical Engineer 👨‍💻 Programmer, Chief Technology Officer 🏆 Forbes 30 Under 30 in Enterprise Technology