Software!
What have I been doing since the last blog post? Well, I’ve been making some progress on the arm mechanism, but I think the most important thing I’ve done is getting the software working for the first time! This is my first time using a Raspberry Pi, Linux (especially without a GUI), and possibly most importantly, ROS2 (Robot Operating System 2), which is the framework my robot runs on.
Of course, in order to get the software working, I had to do the electrical work.
Because almost everything here is from FRC, wiring was actually pretty easy. The only difference to FRC wiring is that I needed to solder some wires to a voltage regulator to power the Raspberry Pi. The wiring isn’t pretty yet, but I’ll clean it up once I get the rest of the arm built, I promise!
Anyways, after I got the wiring done, I got my first robot code running. ROS2 is pretty different from any other software framework I’ve used. I’m used to monolithic frameworks, where your project is run as one unit. For example, in FRC, your robot is split up into different subsystems, but they are all under one Robot Container. In ROS2, however, your robot is split into entirely different nodes, so for example, my robot could be split into a drivetrain node, an arm node, an odometry node, and a communication node. These are all entirely separate programs. They can talk to each other, but they are entirely separate.
The only thing the code does right now is drive forwards and spin the turret at a constant speed. I can’t even drive the bot yet, but I am currently working on a communication protocol between the bot and my computer, so that should be working soon. I didn’t expect to have to learn TCP and how to make GUIs in C# for this, but that’s what I’m doing now.
That’s been my software progress so far. As for the mechanical side, I have been working more on the arm. My biggest issue has been drilling precise holes. But things are coming along. I’m finally about to attach the first piece of arm box tube! Once I get the arm built and finish the communication between my computer and bot, I will finally start programming the arm!