FRC 2024 Bot (For Demo)
- 4 Devlogs
- 23 Total hours
A 2024 crescendo robot refurbished to work in 2026 for swerve drive demonstration purposes. This is a team project, but I am logging hours for my contributions.
A 2024 crescendo robot refurbished to work in 2026 for swerve drive demonstration purposes. This is a team project, but I am logging hours for my contributions.
With this robot’s demo purpose out of the way and a bunch of working features developed in it, I think it’s a good closing point for this project, for now.
Changes / features added:
Challenges:
Signing off,
Ash-ioL
First, I want to apoligize for how many hours I’m logging with this single devlog. I just wanted to get to a good stopping point so that I can share my full completed journey for each feature. (Unfortunately, this last problem took me nearly 4 hours to fix). I can hopefully make up for this by making this devlog long, detailed, and thorough.
I didn’t record time for this but I also helped prepare a backup roborio, did testing in sim and in the real robot, zeroed encoders, measured weight, and did other stuff with the real robot. I also made a controller guide which wasnt recorded.
What this basically does is it takes a Function<double, double> and it converts the x value to time based on a ratio, and it take the output as the y value, and generates a custom autonomous trajectory that traces the function.
The reason I decided to do this is for a learning experience in autonomous paths, pathplanner, and the pipelien and all that.
Some struggles I had are that I started off with the completely wrong approach, treating it like a lazy command that goes to eahc spot as the time comes. But then I made it so that it instantly generates the path and it just runs the path, which is just a lot smoother and better.
Our demo space is a square area so I added a safety feature that keeps teh robot inside the space even if someone tries to drive it out. I also added overrides that someone on our demo team can use if it becomes finicky.
Since we added vision, I had to code a setup command (which was honestly the hardest part of doing this). I made it so that you pick two setpoints to make the robot face straight (which is more accurate than mannually aiming straight), then to go ot a spot on the boundary which the odometry resets to. I also added telemtry so the driver can see where the robot thinks its at and work with that.
The biggest issues I faced with this is because of some rules with how you use the SwerveInputStream type by yagsl. I removed the deadband thinking you didn’t need it since I had my own manual one, but it was required to make the robot face a certain heading. This problem took me a stupid amount of time to solve. I had to do human binary search through all my commits to see what couldve changed and what went wrong and allat.
Anyways thanks for reading my devlog, as long and boring as it is.
Signing off,
Ash-ioL
Quick summary:
Plans:
Signing off,
Ash-ioL
At the point where I spent 90 minutes on this, we hit a nice milestone where we saw a beautiful build successful. However after this point I spend a couple more hours on this which I wasn’t able to record unfortunately. To make sure the changes aligns with the time spent, I will not be considering the changes from the lost hours in this devlog.
The first attempt involved reviving the 2024 code as is, but we found that this was getting us nowhere as we faced gradle issues, vendordep issues, and we wre just having a hard time to get it to work.
I decided to start a new project all together and redo the yagsl ocnfigurations, and use the old code as a reference.
Signing off,
Ash-ioL