I searched for my name on the internet today just to see what was there and how easy it is to find. Pleasingly, I have cemented my position as the most popular Eric Boehlke on the internet with the help of this website. 😄 At least, those are the results I get when I search for myself but I suppose that search results may vary from person to person.
My first program for spot was written in pure python, but as the software stack gets more complicated I want to move to ROS for development. ROS 2 Foxy came out recently and is an LTS version so it seems like a good choice. However, with the current version of JetPack on the Jetson Nano being based on Ubuntu 18.04, ROS has to be built from source. Fortuately, Nvidia maintains docker images optimized for the Jetson platform for all of the recent versions of ROS in a github repository here.
I was looking at the bundle of servo wires above the robot and knew something had to be done. I ordered some 1/4” braided cable sleeving to cover the servo wires from the legs to the servo controller board. The downside is that I had disassemble all four of the legs to put the sleeving over the servo cables and feed them back through the legs. I also fed the hip servo cables through the frame. It took about an hour but that work was totally worth it! The back cables sleeves look way better than the multicolored servo cables. However, there is still some cable management left to do. Once I get a better servo controller board and properly mount it, I will cut all of the cables to length and tuck them under the top cover piece that I still need to print.
I have made some progress on my robot dog. I 3D printed and assembled all of the structural parts. I wrote some code to move all of the motors for each type of joint at the same time. That means he can stand and lay down!
During May, I finished what we had started at the hackathon and programmed Camelot to follow AprilTags. I am using the ROS apriltags package which reports back the position of the AprilTag in a coordinate frame relative to the camera. Then I am running two proportional controllers. One to regulate the distance to the tag and another to keep the tag centered in the camera frame. The result is a little jerky since the robot stops immediately if it doesn’t see the tag in the camera which happens from time to time. Overall, it is a good first step and I plan to come back to this project after I add some more sensors.