Controls

AboutThe GRT controls subgroup is responsible for the crucial electrical wiring and software programming of our robot. The electrical design process involves collaborating with the mechanism and drivetrain teams to incorporate necessary sensors, and controlling hardware for motors and pneumatic devices. The wiring requires technical skills including crimping, soldering, and troubleshooting. The code for our robot receives data from on-board sensors and the driver station to control all of the robot mechanisms. Since the 2019 season we have written our code in Java, which is officially supported by FIRST. Our repositories are available at: https://github.com/grt192. During the 2021 season, we have been working on the FRC Galactic Search Challenge, improving our position tracking, programming our "swerve" drivetrain (see section on drivetrain), and code for our team's outreach projects.

"Swerve" Drivetrain SoftwareIn 2017, our team developed a "swerve" drivetrain using four omnidirectional gearboxes to control robot motion. This drive system required a much more complex control system due to additional degrees of freedom created by four rotating and translating gearboxes. We installed VEX Robotics VersaPlanetary encoders on each gearbox module to control the angle of the wheel, and limit switches for real-time zeroing. The driver is given the option for Ackerman steering, which is simlar to but more sophisticated than previous GRT drive control systems, and strafing, in which the robot moves in any direction without changing orientation. These two modes allow the driver to quickly move across the field around defense robots and then make accurate movements to score points. Since 2017, GRT controls members have refined and improved our "swerve" code based on competition performance.

Autonomous Control SoftwareEach FRC competition match is split into two sections: autonomous and teleop. During the autonomous period, which typically lasts fifteen seconds at the start of the match, the robots run on prewritten code without operator intervention. GRT either uses hard-coded or recorded (macro) values to run the sequence that completes the autonomous task.

Collaboration

Robot Vision ControlIn 2016, GRT developed a working robot vision system using OpenCV to detect the goals (marked by reflective tape on the field). During autonomous control, this vision system helps us consistently score high goal shots. During teleop control, it improves driver control of the shooting mechanism, by aiming and firing at the press of a single button. Recently, we have been working on using computer vision to help with robot position tracking, calculating the robot's position at any time by combining the robot vision data with data from sensors on the gearbox encoders.

Electrical SystemsThe most important part of our robot's electrical system is the AndyMark roboRIO, an onboard computer that controls all of the code. A power distribution panel (PDP) sends electricity to all of our components including motor controllers (Talon SRX), a radio, solenoids to control pneumatic actuators, and more.

Wiring the robot Layout of wires in controls

Controls TrainingIn the fall of 2020, half of our team learned basic electronics and coding with Arduino kits, and made creative projects. During the second semester, the rookies on controls began in-depth training to learn about our robot control system. During the spring of 2021, they worked on self-directed software projects exploring computer vision, and different libraries. When we return to our shop, members will be taught assembling, building, and trouble-shooting the electrical system.

Controls training -->