QUAIL is completed! Well, it took WAY longer than expected. Life got very busy for me over the last few months, and I struggled to find the time and motivation to get this thing over the line. The last requirement for the project was to ‘close the loop’, and figure out a nice way to feedback the state of the sensor bar. Thankfully, it was all pretty simple once I got going again.
Failure to encode Tragically, we have hit a speed-bump with the project, the phototransistor on one of the encoders is dead. Obviously this calls for a moment of silence.
The rest of the circuit appears to be working fine, however. While I did want to implement the code to utilise the encoders, it was never actually needed in order to get the robot to follow a line. I could probably replace the part and get it working again, but I do not feel it is worth the effort given the scope of the project.
The Motor Driver Node Getting an output from the PI If we’re going to drive the motors, we’re going to need some method of interfacing with the GPIO output pins on the Pi. After doing some reading and researching, I think that pigpio (Probably pronounced pi-gpio, and not pig-pio like my mind keeps reading it as) perfectly fits the bill for what we are looking for.
There is a small potential caveat about using pigpio, which is that under normal operation, it requires sudo access.
The chassis This is an Arexx RP6 robot platform. I have spent a lot of time messing with this thing over the years, and I have learned a lot from it. The website for it can be found here: RP6 Robot system (I highly recommend doing some browsing around their website, it’s a reminder of a time when websites had character). A run down of the specs lists an 8-bit ATMEGA32, a pair of optical encoders, motors, light sensors, touch sensors, the whole shebang.
Great, yet another “How to install $x$ on $y$” blog post. Exactly what the internet was missing. Just be grateful I’m not serving ads on this website.
I wanted to do my best to ensure this build log was as close to self-contained as reasonable, which means that sometimes we’re going to get low hanging fruit. I found two different sources already covering this, one Youtube Video by Ubuntu-robotics, and a Blog post on Medium.