We decided it would be fun to have a series of blog posts about each of our Ambotsadors, and so I hope this is only the first of a series.
Our Bot Zone is a library of loanable robotics building material, which we are regularly adding to, with both old standards and new innovations. We often put these parts together to see how they work, and our mentors sometimes cannot resist the urge to build a robot. The design of these Bot Zone bots is typically driven by a desire to demonstrate some system, but occasionally there is a confluence of aesthetics and timeliness that produces a demo bot that we fall in love with, and take to expos to have at our booth; in short, a SLSRA Ambotsador.
JB-8's design was driven by these elements:
We signed up for a booth at the inaugural Delmar Maker Fair, which was going to be on the grass field across Delmar from MADE STL, and we did not have a robot that kids could drive in the grass. We needed an offroad robot.
We are big fans of the TETRIX PRIZM brain for demo bots. Power it on and it's ready to run. We saw some peculiar behavior on another bot with Neverest motors and the PRIZM, and Paul Uttley at Pitsco asked us to test with TorqueNADO motors instead, so we needed a robot with a PRIZM and TorqueNADOs.
We are enthused about the new NVIDIA Jetson Nano. Computer vision has been more and more integral to student robotics in the last few years, from the retro-reflective targets of FRC, to the new Pixy-based camera in VEX VRC, to the Tensorflow Lite usage in FTC. The Jetson Nano can run more demanding machine learning models, and students get excited about the connection with self-driving cars.
As always, we were constrained by a specific box that we wanted the demo bot to fit into for storage and transportation.
We try to keep our demo bots simple; don't expend a ton of time, and don't use too much valuable Bot Zone material.
We actually didn't think about a connection with the Star Wars theme of the 2019/20 FIRST season until the robot was almost finished, but maybe the Force had a hand in the design.
Here's a rundown on the ingredients:
S3 from AndyMark
S3 is lightweight and relatively inexpensive. Two sides are hole-compatible with TETRIX, while the other two sides are slotted and therefore compatible with any hole pattern. The pieces go together with a good variety of gussets. S3 kits also include hex-headed bolts with the same English size and thread as TETRIX nuts and bolts. We find the hex heads give additional strength to bolted junctions.
TETRIX Offroad Wheels and GoBilda Omni Wheels
The chassis has center and rear offroad TETRIX wheels, but we used omni wheels on the front, to facilitate easier turning. We found that the omni wheels from GoBilda have a diameter pretty close to that of the offroad wheels. GoBilda's axles are 6mm, the same as TETRIX motor shafts and TETRIX PRIME axles, so we used 6mm bushings from TETRIX PRIME in the holes of the S3 to hold the wheels. It seems we always have at least a little TETRIX PRIME on all our demo bots. We used TETRIX motor hubs to attach sprockets to the 6mm shafts.
TETRIX PRIZM and Tele-Op Control Module
As mentioned above, the PRIZM is perfect for demo bots. Inside the clear case is a custom Arduino board, with integrated 12v motor controller and servo controller. The 12v motor controller includes ports for encoder wires, and the Arduino library from Pitsco includes speed commands to get a PID-controlled predictable RPM output, perfect for offroad driving. The tele-op control module connects to a wireless PS4 controller via Bluetooth, and to the PRIZM via the "motor expansion" port, which looks an awful lot like the LEGO NXT compatible ports of the old HiTechnic motor controllers. Indeed, this design is because the TETRIX motor expansion module is compatible with the LEGO EV3. There is no software support for using the old HiTechnic controllers, but on a future robot, we hope to attempt it. We have a box of these old controllers, so it's worth a try. The protocol on that bus is I2C.
The TorqueNADO lives in the shadow of the AndyMark Neverest motor, but there is some analysis indicating that the TorqueNADO is the most powerful motor legal for use in FTC, based on the speed-torque curve. We attached the motor to the S3 channel in an unusual way: using the hole pattern on the face of the gearbox, we screwed the gearbox directly to the channel. This method is experimental and not necessarily recommended, so don't try this at home. But we chose this attachment method to permit chain to pass around the motor. We were trying to optimize the clearance under the robot, for offroading, while minding the height of the chassis, for fitting in the storage box. By the way, REV M3 screws fit those holes in the gearbox perfectly
Plastic Sprockets from REV
We used some REV sprockets, held by REV pillow blocks, as chain tensioners. The number of teeth and size of these sprockets fit the bill, after trying many different size sprocket combinations, and permitted a relatively simple tensioner design.
We have found that kids at an expo love a robot with two things: first and foremost, a remote control they can operate; second, a surprising autonomous function that they can interact with, which makes them think about how the robot works. What should our robot's autonomous function be? We decided our robot would run a facial recognition program, and track faces. We didn't know if this was possible, but we hoped so. As mentioned above, the Jetson Nano is very exciting to us. The Nano is a relatively low-cost computer, designed to be similar to the Raspberry Pi, and requires only a 5W 5V power supply. The Nano runs a version of Ubuntu, and features an NVIDIA GPU that can be exploited by machine learning packages to do some amazing things, like facial recognition.
The J in JB-8 is for Jetson. Actually, JB stands for JetBot, as there is a nearly complete JetBot underneath the helmet of the robot's head. The JetBot is an open design made by NVIDIA, for a tiny self-driving robot powered by the Jetson Nano. We have built several JetBots, which we are studying for use in future summer camps, and so we decided to use a JetBot as this robot's head. The JetBot has a small 5v motor controller, which we used for two purposes: 1. to operate a TETRIX PRIME motor, which the head swivels on directly, and 2. to operate a pair of LEDs. The LEDs are connected in series with a 220 ohm resister to the motor controller, and they are connected in parallel with each other, in such a way that one LED lights with positive motor power, and the other LED lights with negative motor power. The JetBot is powered by a standard 5V mobile phone charger pack, and because the JetBot is completely self contained, the head can swivel continuously. Simple and effective.
Facial Recognition Algorithm
We lifted our facial recognition algorithm from this excellent article by Adam Geitgey. We modified the python code so that, rather than keeping track of facial signatures, it merely powered the motor in order to position the largest (closest) recognized face into the center of the video frame. We made the python code into a service that can restart whenever it crashes, and we were off.
BB-8 Bicycle Helmet
Days before the maker fair, our backburner thought process about the aesthetics of the robot moved to the foreground, and we went looking for a lid. A suggestion to use a kids bicycle helmet turned up the BB-8 helmet, and the light finally went off. Between the Star Wars Force for Change partnership for the next FIRST season, and the opening of the new Galaxy's Edge area at Disneyland, we realized the BB-8 look was perfect and timely. It helped that BB-8 has a single prominent eye, just like the JetBot. Thanks, Force!
At the Delmar Maker Fair, which was moved inside the MADE building due to heavy rain. We were glad, as our space-faring JB-8 likes it dry.
At Star Wars Night at The Magic House, JB-8 was The Droid!