GalacTech 4926 - Build Blog 2024

Team 4926 is opening the books for our 3rd season in the Open Alliance! We’ll post here as frequently as we can including the following:

  1. Game Analysis - Statistical Analysis via Monte Carlo type simulation
  2. Prototyping successes and failures - Failures are our specialty :slight_smile:
  3. Engineering analysis
  4. Dad Jokes - ok these are mostly mine
  5. Links to CAD - Fusion 360 link
  6. Links to Software - Github Main/Latest
  7. Pleas for help? - COMING SOON - And often!

GalacTech loves the idea of sharing in FIRST, so we are stepping into the Open! Bring on CRESCENDO and 2024! Let’s Go!

9 Likes

Day 1 and 2:

Kickoff was a blast despite our projector dying for a few minutes right in the middle! :roll_eyes: We had a nice crowd of our FRC Students, some of our FTC students, Mentors, Parents, Family members and community folks. What a great time!


After lunch our Kickoff Kit arrived and we did the ‘inventory’ thing. Then we watched Karthik’s Effective Design Strategy video from 2023 Champs!

Finally, we did a quick and dirty drill driven ‘floor intake’ test - thanks @Ryan_Dognaux for prototyping clamps. AndyMark Green compliant wheels move the NOTE very well, with only SLIGHT compression. We tested on a table and carpet and got similar results. But if you put too much compression on the NOTE it tends to ‘stand up.’ You’ll see what I mean.

NOTE ‘intaking’ on a table
NOTE ‘intaking’ around a corner
NOTE ‘intaking’ around a corner up a ramp
NOTE - ‘intaking’ on carpet with too much compression - ‘standing up’

2D CAD sketching of intakes, SPEAKER launchers and AMP droppers are in the works too, but nothing to add here right now.

I hope everyone is having a great time!!! Good Luck!

3 Likes

Day 3 & 4:

Hello everyone! Hope everyone has been having a fantastic build season so far! We have came up with a few prototypes for each component of our robot. For the past 2 days, we have come up with a shooter prototype and a conveyor prototype. An important part of this game is having the right amount of compression on the note in order to effectively intake, convey, and shoot. With our testing, we have found that the sweet spot is around a 1/4 inch of compression when conveying the note while the shooter uses 3.5 inches of compression on the note. We have also made a list of priorities on what we would like our robot to have and do. Here are the things we had put:

Must Have:

Drive- Tank drive, 15 ft per second in 1.5 seconds

Single Intake preferred under bumper but it can be over the bumper

Intake and Shooter are separate systems

Floor Intake because cannot do multi note auton without

Shooter - AMP is priority, but ideally both.

Can Go Under The Stage (2ft 3in)

Intake launcher aligned opposite directions

Shoot From Subwoofer

Climb

Prevent Notes Getting Stuck Underneath such as a side skirt or step bumper

Could Have:

  1. Adjustable Launch Angle
  2. Shoot From Farther
  3. Shooter (to some target) that can intake from source
  4. Trap
  5. Use April Tags in Auton to maintain Alignment and Distance
  6. Driver Camera
  7. Support Another Robot

Shouldn’t Have:

  • Turret

Points/Questions:

  • Inframe Intake

Pros:

  • Cannot be broken easily
  • Cannot go into another robot’s frame
  • Easier for dwarf bot

Cons:

  • Visibility issues can be solved to a certain degree(lights markers etc.)

  • Possible structural issues

  • Takes up lots of space

  • Over bumper Intake

Pros:

  • Higher Driver Visibility
  • Could possibly but hard use it as a shooter as well

Cons

  • Takes up lots of space in frame
  • Can be broken more easily

In the end, we are on close decision of having a tank robot that has an in-frame intake. In the near future, we will soon post about the intake design and climber design so stay tuned! We have also recorded a few videos of testing the different prototypes. (check them out below!)
Conveyor: https://photos.app.goo.gl/31eBFCXt19XxQq756
Shooter: https://photos.app.goo.gl/RffwahS8BwdQzNeS7

We will soon upload CAD models of the shooter and conveyor and continue testing these systems. Hope everyone is having a great build season! Good luck for Crescendo!

3 Likes

Small update. Team 4926 will once again bring an 8WD Tank Kit Chassis to the fray! CAD Link at the top has been updated to show the frame cutout that allows consistent under bumper Note intaking! (Note Taking?)

4926 will meet on MLK day and provide a larger update including results from our Game Analysis using the Monte Carlo approach, Robot Architype selection, and intake/launcher prototype videos and results! Stay tuned!

3 Likes

Hello everyone! Week 2 of the Build season has started! Hope everyone is having a fantastic build season and learning a lot along the way! The prototypes have been continuing and we have built two different shooters as well as a handoff intake to conveyor system.

For the shooter, we built a horizontal shooter which has one wheel on each side. The wheels where 4 inch compliance wheels and had 0.5 inches of compression on the ring. The other design had a top and bottom roller spinning opposite to each other. We used AndyMark 4 inch compliance wheels with a 0.5 inch gap between each wheel. The compression we found best was an 1 inch of compression. We will provide CAD links soon, so we will keep you updated on that!
Photo of the Top-Bottom Shooter
Video of Top-Bottom Shooter
Video of Horizontal Shooter

For the intake, we made a design very similar to the Supernerds (3255) in which we had a top set of rollers and a bottom set of rollers space apart. You should check their documentation on that as well! The intake we had consisted of a bottom roller with 2 inch black compliance wheels and 3 inch green compliance wheels. This would then send to the conveyor system that we previously had uploaded.
Intake to Conveyor System
Picture of the Handoff System

Regarding the drive train, we have decided on a 8-wheel tank drive train with an in-frame intake. We chose and 8-wheel drive train based on the mass distribution across the chassis. We decided that by using an 8-wheel drive train we could manage to have more contact to the ground when accelerating and decelerating as the robot will rock back and forth when stopping and going. All the CAD model links will be sent very soon so stay in touch! Currently, that is what we have on the build aspect of things. Hope everyone is having an exciting build season! Good luck for Week 2 of Crescendo!

4 Likes

Also note that our CAD link at the top is updated with a partial version of our in-frame intake on the AM Kit chassis for those us ‘not yet swerve’ holdouts.

3 Likes

Short update - Main/Latest Code link updated in the post at the top of our Build Thread.

2 Likes

There has been big movement in the intake/Speaker/Amp robot CAD we’d like to share; the link at the top of this post is the Main Latest live version. The concept is still coming together, especially to make sure we don’t shred Notes more than necessary :slight_smile: we’ve totally consumed 1 at this point.

This is a combined Speaker and Amp system on 3/4" steel pivot shaft. The pivoting joint is built from 3 2"x2" parts and a combination of roller and sleeve bearings. The drive looks to be 2x775pros using a 3.25:1 dual input on a 48:1 Sport with an additional 34/18 chain reduction (295:1). We’ll see how we like that.

A chain climbing addition is in the works, but not far enough along to post. I hope our students add a SW update here soon, and we hope everyone is enjoying the season!



13 Likes

Hi. How did you guys make the mount between the arm and shooter mechanism? Thanks.

Gökalp

3 Likes

It’s really just 3 pieces of square tubing (2”x2”) sandwiched between 2 sheets of 1/8” aluminum. There are holes for bearings in the two outer pieces of 2x2. Open the CAD link in the first post at the top and you look through the details! Let me know if you have any other questions!

4 Likes

We are almost ready to begin fabrication of the whole robot, but the intake was ready to roll — as was Grace!! This is Grace’s first CNC part that WILL be used on a competition chassis for Team 4926! Let’s all celebrate that! She’s one of our students that made the effort, working with mentors, to learn the CAM process in Fusion and learn how to setup and operate our router. Way to go Grace!

First the part and then Grace with her completed version! Next stop fully functioning intake on the KOP Chassis!


4 Likes

Wing Shot Update - For us….its really hard.

We used our 2 NEO Top/Bottom wheel launcher prototype to attempt the ‘Wing Shot’ tonight. Not many successful attempts and the sensitivity with this less than desirable prototype is really high. Just a degree off of nominal and it’s a miss; hard to imagine this working with a center drop 8WD tank. But we need to build a sturdier version to know for sure. —— To be fair we have reduced the opening size quite a bit with ‘protective noodles’ to avoid slicing notes on the plywood.

Wing Shot

4 Likes

Our students worked very hard on making parts for our intake and testing our launching system from the wing. Lots of learnings but the top are:

  1. We like a top and bottom launcher with wheels on HALF the note (it kinda launches like a frisbee with no tumbling or wobbling)
  2. We DO NOT LIKE compliance wheels - we had several fail with the compliant rubber separating from the hard plastic hub at >5,000 rpm. (note to self-use hard wheels like colsons or ?

Our CAD is very close to complete but w/o a climber … yet. Right at 100lbs once we remove all those ‘extra wheels’ from the launcher! Missing lots of students today for the Debate State Tournament and Solo and Ensemble music competitions! We need more horses! :slight_smile:

6 Likes

Here are some videos of how our Note moves through the “half wheeled” launcher we prefer now. Half-Wheeled Launcher It is kinda amazing that the Note comes out as cleanly and flies so perfectly with that setup giving how squashed and asymmetric it goes the the launcher… Here is an example of how it flies from the “Wing Shot.

In flight Screen Grab…The Note maintains this attitude on its entire flight! Check out the Wing Shot video above.

4 Likes

A cool little nugget, the Fusion 360 online viewer tool has a neat explosion option I hadn’t used before. You can try it with our CAD link from the top post!

1 Like

On the programming side, we have been working on incorporating the limelight into the project.

First we had to wire and create a mount for the limelight. We used a sticky Velcro mount with tape to keep it mounted. Then we had to set up the software for it. The problem was that our limelight would not properly set its IP address. We tried many different things with the limelight. In the end we realized it had nothing to do with the limelight but instead something was configured incorrectly with the radio. After reconfiguring the radio the limelight’s IP would properly change.

Then, we had to set up a subsystem to properly get and use the limelight’s data. We created a method that would calculate the robot’s distance away from the AprilTag using the ty from the limelight and the knowledge of how high the limelight and AprilTag are. We are hoping to use this distance formula to calculate the angle of the shooter needed. We have a theoretical model made, but it needs testing.

Finally, we created a PID alignment method and spent a while tuning it. Then, we needed to create an autonomous limelight command so that it would align in our autonomous and then move on to the rest of the autonomous.

5 Likes

In order to run more consistent and accurate autonomous routines, we have looked into implementing either Team 3015’s PathPlanner or WPILIB’s PathWeaver, both path-generation tools with their own advantages.

PATH PLANNER

Our team decided to use PathPlanner at first due to its appealing user interface and began experimenting with the software near the end of the off-season. After configuring the AutonBuilder with the Ramsete Controller, we got our flatbot to reach its desired target with a margin of error of 3 inches. However, we ran into trouble when attempting to create a path that allowed our robot to drive in reverse. Initially, our flatbot would drive forward rather than backward. As a workaround, we resorted to detecting whether the reversed boolean in the path was true and manually inverting the motors. While that allowed us to travel in reverse, our robot would now aggressively turn. We believed this was due to the difference between how PathPlanner calculates its angles and how the gyro reports its angles. PathPlanner uses an angle of 0 to -180 degrees on the robot’s left side and 0 to 180 degrees on the right, while the gyro reports an angle from 0 to 360. So when our robot heading was set to 180, it would turn, and PathPlanner would want it to be negative, but it would still be positive. We attempted to change how the gyro reported its angles to match PathPlanner, but we continued to run into issues. By week 3, our team decided that getting our robot to travel in reverse through a path planner would have to become an off-season task and we resorted to switching to PathWeaver. While the GUI was less attractive, our team realized that it had more support as a WPILIB tool and was better suited for differential drives.

PATHWEAVER

System Identification

The first thing we did was system identification of the robot. We created an identification routine that included two types of tests: quasistatic and dynamic, each run once forward and backward. For each test, we logged the data for the applied voltage, velocity, and position to the roboRIO and attempted to load the files in the System Identification Tool.

However, we got an error saying we did not have enough data to run the acceleration calculation. Thanks to the help of a WPILIB docs maintainer, we were able to figure out that instead of running each of the four tests separately, which would produce four log files, we needed to run all four tests together (without disabling the robot), which gave us only one log file. After doing this, we recorded the ks, kv, ka, and kp values from the feedforward analysis.

Trajectory Following

First, we followed WPILIB’s tutorial for following a trajectory, creating a Ramsete Command using our robot specific sysid values.

We managed to create a simple path consisting of two trajectories that would make the robot drive 2 meters forward and back, but we noticed a lot of stuttering every time we increased the robot’s speed. Interestingly, the robot would also drive backward at the end of every trajectory as if correcting for overshooting, even though it was undershooting by about 12 inches every time.
Robot Stutter

We realized that the issue was our ka value. The ka value should be very small for light drivetrains, but we had a ka value close to 2. By changing this value to 0, we eliminated the stutter and decreased our margin of error to roughly 4 inches. This error did not change with increasing maximum speeds or accelerations.

We were also able to combine our trajectories with autonomous limelight alignment, where the robot could correct itself to its original angle after rotating to face an AprilTag and complete its intended path with accuracy.
Limelight Align with PathWeaver

Finally, putting everything together, our team created an accurate 3-note autonomous path with a maximum velocity of 4 m/s and a maximum acceleration of 3 m/s^2. Our flatbot can complete the path in roughly 8 seconds, giving us 7 seconds for alignment and shooting.

5 Likes

Alpha Engine Build Update - Auton and intaking

We had a very successful evening testing our newly installed floor pickup on the AndyMark 8WD Kit Chassis. A single NEO driving what looks to be a standard setup for CRESCENDO, a counter rotating shaft setup inside the frame. We had to cut an extra 0.5in clearance in the front of frame to get the Note to fit under consistently. Works pretty good on the Alpha ‘Flat Bot!’

Oh and our PathWeaver path for a ‘3 Note’ Auton described in the previous post by our students worked A-OK! On to the Conveyor/Launcher fabrication!

“3 Note Auto?”

5 Likes

Floor Pickup Targeting Lights - Team 180 S.P.A.M. Inspired

We have been thinking that it would be nice to have some indication for the drive that they are arriving at a Note correctly especially since we plan to pickup off the floor from the Source. S.P.A.M. had a great example on their 2022 robot (Example Match). With direct inspiration from them - thank you George! - we made a 3D printed piece to avoid cutting and soldering directly on the camera.

By soldering to a spring and a washer and by making this handy 3D printed piece we directly replace the battery! We’ll use a 12->3.3V DC-to-DC converter to wire it up! (also thanks to George from 180!) Here is a prototype. I was surprised how well the Prusa handle a M18x1 thread!! (CAD LINK)




8 Likes

This is very neat, thanks for sharing. Definitely a nicer solution that trying to cut the flashlight and solder like we have done in the past.

3 Likes