Hardware
Robots
Robot Arms
Robot Arms

Robots 🤖

They seem to be all the hype these days. For so long, I've only been working in the software domain - web apps, mobile app, backend systems, etc. Never did I have an itch to explore hardware.

The most "hardcore" hardware thing I ever did was built my own gaming desktop when I was 14.

So where did my itch to explore hardware finally come from?

My fear of feeling left behind in technology. No, of course not. Okay maybe it's partially true.

Regardless, the "coolness" factor from seeing videos of self-learning robots folding t-shirts or making coffee was enough to excite me to learn more.

So off I went! My next steps were to find projects that could take me in the direction of learning hardware and building a self-learning robot.

First learn some basic hardware, then build a robot.

A brief online search and a few Youtube rabbit holes later, I decided to get an electronic starter kit. Perfect for learning the capabilities of common electronic parts.

electronic kit

Despite it being a hardware kit, I found the best part of the kit was the projects booklet. It made learning so much more accessible and rewarding - the instructions were simple and clear and I could get a working demo within 10 - 15min. Starting from ...

making LEDs turn on in various ways...

to controlling other parts like ...

After finishing the entire booklet, I felt like I was ready to take on more challenging projects. I had a few ideas swirling in my mind: a homemade security camera, e-ink temperature display, wireless controlled car, etc. But I still wanted to build that self-learning robot.

A few online searches, a few Youtube rabbit holes later ... and I arrived at the SO-ARM101 kit. It was perfect. After waiting a little over a week, the box finally arrived.

robot box kit

Since this build required more hands-on assembly, I found some tools and 3D printers at a local makerspace to make it happen. Shout out to Kwartzlab for providing such a wonderful communal space for makers of all kinds. I'm truly grateful that a place like that exists.

After the assembly was done, it was time to teach the robot to do something a one year old could do. Like pickup a marker and place it inside a roll of tape. Not exactly impressive when watching a one year old do it, but a robot doing it? *Eyes and jaws wide open*.

But first, I had to record some examples, or episodes.

Then it was time to train it on a policy. I chose ACT as recommended by online strangers because of its effectiveness in getting a working demo with roughly 50 recorded episodes. However, through some trial and error, I later recorded several more 50 episodes as the consistency and quality of recorded data greatly affects the final outcome during inference.

So here's the best showcase of my robot doing the thing ...

Sure, it's not perfect but how amazing is that!? I was in shock for a solid 10 minutes the first time I watched it. I bet any one year old would also be equally impressed.

Now what? Well, there are many avenues I could take this project. I could train it to do more complex tasks like sorting objects, picking up multiple objects, assembling simple objects, etc. Or maybe add another arm so it can finally fold my t-shirts or do my dishes ... the possibilities are endless.

Returning to the initial shock, the moments of seeing the robot arm finally come "alive" felt magical. Why? Well, we have a robot learning how to navigate 3D space and manipulate 3D objects using primarily 2D imagery and motor feedback - primitive inputs. Yet, we are able take those primitive inputs, apply some simple and complex math, and teach a machine to learn and perform physical behaviours! Isn't that incredible?

For me, the central, main character here is the math.

Not the software or the hardware. The math. For me, it finally feels like math is shaping our physical reality in a much more visible and consequential way.

With all that said, working on this project has renewed my interests in learning math again. Perhaps understanding the math better can help demystify all that hype, and offer a glimpse into the remaining work that lies ahead in making robots truly capable. 🤖