Meet Offseason

Dusty XVI

 
 
 

Charged Up

In the challenge Charged Up, robots work together in attempts to energize their alliance. Robots have the choice of scoring elements, cones or cubes, into different levels of nodes. During the autonomous period, elements scored in the lower nodes earn their alliance 3 points, elements scored in the middle nodes score 4 points, and elements scored in the upper nodes score 6 points. Robots can also earn 3 points through mobility by leaving the community area and 8 or 12 points by docking or engaging (balancing) on the charging station. During the tele-op period, elements scored in the lower nodes are 2 points, elements scored in the middle node are 3 points, and elements in the high node are 5 points. An extra 5 points are rewarded for any links of three elements scored in adjacent nodes. Once it's the endgame, the last 30 seconds of the match, robots can choose to keep scoring elements or try to dock and engage on the charging station. At the end of the match each robot docked on the charging station is 6 points and each robot docked and engaged is 10 points. 3 points are awarded to any robot parked in the community.

 
 
 
 


CHassis

2473 worked to implement a swerve drive for the first time this offseason. By creating a swerve prototype with 3D printed modules, we started experimenting in early 2023. When the prototype seemed operative the 3D printed frames were replaced with Misumi channels. As we progressed, the Maxswerve kit was purchased and put together to finally be tested and run.

 
 
 

Element Manipulation

The objective of our intake was to be able to intake both cubes and cones while minimizing weight and size to reduce the load on the elevator. Seeing the off-season as a chance to experiment with designs our team has not used before, our dedicated sub-team settled on a horizontal roller design. The mechanism consists of three rolling shafts, The large gap was intaking the cube, and the smaller one was for intaking the cone. The intake used a belt drivetrain, powered by a single motor. The positioning of the rollers was carefully designed to reduce their footprint while ensuring that they would still be able to pick up the elements. The intake had to be mounted on a turret mechanism since the cone needed to be reoriented when depositing. The turret was then mounted on the wrist mechanism, which allowed the intake to extend outside of the chassis.

 
 
 

Extension and Scoring

The angled elevator mechanism consists of a three stage linear slide system that extends and retracts, enabling the our mechanism to intake game elements from the ground and deposit them on the various nodes. It is mounted on the chassis and is supported by perpendicular channels to ensure that it is stable during games. At the top, it contains a carriage which connects the wrist and intake to the elevator. The extension and retraction of the mechanism requires a rigging system involving outer and inner strings on both sides of the extrusions. The strings are coiled around pulleys which attach to a shaft rotated by a single motor. On the other side, the string is tied off on the carriage. Additionally, there is one constant force spring on each side to counteract the gravitational force and reduce the load on the motor as the carriage moves up along the elevator. The wrist on the carriage allows the intake to pick up elements from one side of the robot and deposit on the other side of the robot, enabling faster cycle times to score game elements. This system involves a channel attached to the intake that is mounted on a hex shaft running through the carriage, rotated by a motor. Overall, we prioritized building this ambitious mechanism as it would allow us to be a versatile team and give us the experience to build such mechanisms in the future.

 
 
 

Software

For this offseason, the software drive team focused on transitioning from tank drive to swerve drive and implemented a new tele-op and autonomous code for the chassis. Initially, we went through the calculations for the motor powers to understand how tele-op drive works with swerve. We tested a combination of our code and code from the WPILib library on individual 3D-printed modules until we assembled a prototype chassis. Once the 3D-printed chassis was able to run basic tele-op movement, we bought the Maxswerve modules and tested them with our real chassis. We tuned PID for smooth movement and used the gyro to establish a field-relative movement to make it easier for the drivers. Currently, we are working on improving odometry and establishing a trajectory-based autonomous.

For this year's offseason robot, SW-mech was tasked with programming 3 mechanisms: the everybot intake, the elevator, and the wrist. For the elevator, we used PID to move the carriage up and down smoothly. The more challenging part was moving the wrist because we had to counteract the torque from gravity. Based on motor encoders, we determined when to apply a power to oppose gravity. For the everybot intake, we used the motor current readings to effectively intake and release game objects. Overall, our software enabled our robot to pick up cones and cubes and score them in the low and mid nodes consistently.

 
 
 

Computer Vision

For the off-season robot, CV worked on aligning the robot to different targets on the field, like the cone, cubes, and april tags. We implemented our existing Limelight and Photonvision system for april tag alignment and developed a new RaspberryPI system for object alignment. This involved writing traditional computer vision code in Python and setting up network protocols to send alignment data from Python to Java.