'Athena' is a robot dog that uses a custom-trained gait adjustment model that runs on an edge AI Intel NCS2 and can be piloted from basically anywhere someone can get an internet connection
Hardware: RaspberryPi 4B, 12-channel Pololu Maestro, RadioLink R/C receiver and Remote, Intel NCS2, Picamera Module 3, 3.3V fan, and two buck converters
Software: Python, Assembly, and the RaspberryPi OS
Libraries: OpenVINO, OpenCV, NumPy, Socket.io, Express.js (for backend), RPi.GPIO, pigpio, pyserial, Axios, CORS, threading, queue, subprocess, time, logging, os, signal, socket, termios, tty, sys
This robot can be controlled from the internet; want to try it out? Click here to get in contact with me and then here to give it a shot!
In January 2024, I got my first 3D printer, a FlashForge Adventurer 5m, and I was immediately hit with a flood of ideas for what I could do with it, but one stuck out above all the others
Being a sucker for robotics and itching for a coding challenge, I set off to print and code my very own robot dog, something I knew would keep me entertained and busy
Little did I know I was about to embark on the hardest and most rewarding *thing* I had ever done
In January 2024, I got my first 3D printer, a FlashForge Adventurer 5m, and I was immediately hit with a flood of ideas for what I could do with it, but one stuck out above all the others
Being a sucker for robotics and itching for a coding challenge, I set off to print and code my very own robot dog, something I knew would keep me entertained and busy
Little did I know I was about to embark on the hardest and most rewarding *thing* I had ever done
To hit the ground running and immediately start working with code, I decided to use an open-source project called 'ARES' by the YouTuber Aaed Musa, which uses traditional R/C radio control and a Teensy 4.1 microcontroller to control servos that allow it to walk
This was a great starting point, as it allowed me to focus on the software side of things whilst not hurting the bank too bad, although it was not without modification
My end goal was essentially my own Spot Mini, so I at the very least needed to add a camera, a way to host a linux environment for all the software I'd need, and a way to run AI models onboard, leading me to make a few modifications to the original design so there would be enough room
Click here to check out Aaed Musa and his hard work
To date, the hardest thing to do on this project was actually getting it to stand up, as simple as that sounds
Besides the fact that I made an electrical error that led to the servos not having enough voltage to stand up properly, I am a believer in the idea that it's not just about doing a 'thing', it's about doing it the right way
So I decided that before I would allow myself the victory of getting it to stand for the first time on its own, that I would have to completely integrate all peripherals with the software, a process that took the better part of a year to do
To date, the hardest thing to do on this project was actually getting it to stand up, as simple as that sounds
Besides the fact that I made an electrical error that led to the servos not having enough voltage to stand up properly, I am a believer in the idea that it's not just about doing a 'thing', it's about doing it the right way
So I decided that before I would allow myself the victory of getting it to stand for the first time on its own, that I would have to completely integrate all peripherals with the software, a process that took the better part of a year to do
I accomplished my goal, I had gotten all the peripherals integrated with the software and could use them to my hearts content, but truthfully, I didn't really have a solid plan as to what I was going to do with the NCS2 chip
Yes, I knew I was going to have to do reinforcement learning at some point, but I didn't know how exactly that would end up happening, so I decided to just try to get it to walk on my own first: big mistake
I spent about a week trying to get it to walk via hand-tuning, a futile effort that led to very poor results, bar Athena's first steps; I quickly gave up on this endeavor, reluctantly ordered the parts needed to build a PC good enough to run Isaac Lab, and pivoted to another part of the project I knew I needed to do
While I was misguided in my attempt to hand-tune a gait, I did learn one important thing: trying to calibrate legs with dicey-at-best R/C control is a nightmare that should be avoided, so I almost immediately sought to integrate a web control system that would allow me to control Athena with more precision
At first, I had simply used a socket that I could pipe commands to from within Athena itself when I was SSH'd into the flight computer, but I realized that I was actually onto something, so I decided to go all in and make a full-fledged web control system that would allow me to control Athena wherever I had an internet connection
Athena sends video to my website's backend using a TCP socket, and then my backend server sends that video to the frontend using socket.io, allowing anyone -with permission- to control Athena from basically anywhere
While I was misguided in my attempt to hand-tune a gait, I did learn one important thing: trying to calibrate legs with dicey-at-best R/C control is a nightmare that should be avoided, so I almost immediately sought to integrate a web control system that would allow me to control Athena with more precision
At first, I had simply used a socket that I could pipe commands to from within Athena itself when I was SSH'd into the flight computer, but I realized that I was actually onto something, so I decided to go all in and make a full-fledged web control system that would allow me to control Athena wherever I had an internet connection
Athena sends video to my website's backend using a TCP socket, and then my backend server sends that video to the frontend using socket.io, allowing anyone -with permission- to control Athena from basically anywhere
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
I have been called an absolute lunatic for coding a robot dog as my first robotics project ever, and to be honest, I completely agree with this
This has been BY FAR the hardest thing I have ever done, as I have toiled endlessly with dependency issues, classical programming problems both backend and frontend, learning amateur electrical and computer engineering, and so many other things that I never thought I would have to learn
Honest to goodness, I thought this was going to take me 6-to-8 months... Counting the Edge A.I. Module, it's been 19 (Hofstadter's Law strikes again)
But what is life without a challenge? Something to make you happy, and angry, and thankful, and nuts, and proud, and so many other wonderfully-vexing beautiful emotions? I turned an open-source project I would have otherwise kept as an R/C curiosity, an edge-AI chip, and alphanumeric characters, into THOUGHT AND MOVEMENT! That you can control from basically ANYWHERE ON EARTH!
Coding this was my mountain to summit, it was my exhaustion, my joy, and my burden
And my goodness, you'd better believe I'm looking to climb another
printf("-Matthew Thomas Beck");