Latest Posts
BB-8 Around the Web (BB-8)
A running list of the places my BB-8 has shown up online, so I can keep track of them in one spot.
Jetson TX2 (Camelot)
Camelot started out as a hack-a-thon project running off of a Raspberry Pi 3B. I had an SD card with Raspbian, ROS Melodic, and OpenCV so it was easy to prototype. We connected a 5 inch touch screen and a wireless keyboard. After the hack-a-thon I even programmed it to follow and AprilTag. However using a Raspberry Pi is not going to be a good solution for further down the road. Especially since I want to connect my ZED stereo camera to Camelot. It requires a lot of computational power to run Visual SLAM so I knew I needed a better board. I debating between getting an Intel NUC or an Nvidia Jetson TX2. The NUC would be cool because it is x86 based and in my experience it is much easier to get software working on such platforms. For example I had to compile OpenCV and ROS for over 12 hours on my raspberry pi to get the image we used during the hack-a-thon. However, the Jetson is more powerful for the price. There are also a bunch of existing robotics projects built around the Jetson TX2. I decided this was the way to go so I ordered one.
Setting up ROS (Spot Micro)
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.
Cable Management (Spot Micro)
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.
Stretching the Legs (Spot Micro)
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!
Following AprilTags (Camelot)
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.
2013 - R.I.C.O.BOT (LEGO NXT)
2012 - R.I.C.BOT 360 (LEGO NXT)
2011 - R.I.C.BOT (LEGO NXT)
2010 - R.U.F.F. (LEGO NXT)
2009 - WALL•ES (LEGO NXT)
2008 - SEEK•IR (LEGO NXT)
2007 - Gears (LEGO NXT)