You are browsing as a guest. Sign up (or log in) to start making projects!

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.

Ship #1 Changes requested

This project is my contributions to my frc team’s code. For people who are not familiar with frc, it’s a robotics program and the coding here is a lot about systems integration and less about low level functionalities. Since this is a shared project, I cannot make this as a expected stardance project. And since frc projects aren’t really simple to package adn run, I have included a demo video of the simulation instead, where i demonstrate the robot staying inside the bounds, admin control disabling features, and a custom path generation utility.

My biggest challenges were just navigating through the way yagsl (swerve library) works and sometimes i had to work around it even.

I’m proud mainly of the things I was able to learn and familiarize myself with like custom path generation and stuff.

  • 4 devlogs
  • 23h
Try project → See source code →
Open comments for this post

8h 52m 34s logged

Shipping!

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:

  • Collision disabling
  • Robot voltage and other useful loggin
  • Added a boundaries system to kepe the robot in a rectangle boundary
  • Added a precise 2 point angle command to make the robot alignment easy to reset the boundary
  • Boundary override
  • Kid mode to disable admin buttons

Challenges:

  • Pigeon problems with the real robot. I checked everything on my side with yagsl and stuff, and I cna read values from the imu. Its just that yagsl isnt able to get it somehow so ive created like some tests to see if i can manually put in the value. But it would’ve been nice if it worked in a straightforward way.
  • Honestly to be super real, shipping this is gonna be a bit hard. since this isnt like a simple project you can try in your browser, and this isnt entirely my creation, I’m gonna try my best to only share what ive implemented. I’ll try to make a good demo video without boring yall out or confusing yall.

Signing off,
Ash-ioL

0
0
30
Open comments for this post

10h 15m 23s logged

ALMOST READY FOR DEMO

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.

Completed:

  • Added a lot of configs such as robot mass, width, module locations, gear ratios, etc.
  • I overrode the yagsl deadband and applied my own
  • Adjusted and fiddled with tiny things here and there
  • Added code that can switch your alliance during auto in code.
  • Zeroed the encoders (took a while) and funny story, we tried putting in the value from phoenix tuner x thinking it was radians but it was degrees, so we used a radians to degrees conversion, but that just messed everythign up, when after like hours we found out that it was in rotations (0 to 1) and not radians.
  • Fixed some controller axis inversion that happened in a specific alliance
  • Tried to get the project to build by figuring out what the right dpendencies are
  • Put in debugging code to try and fix the problem with reading pigeon values
  • Followfunctioncommand and bounds system

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.

FollowFunctionCommand (not tested yet however)

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.

Boundary System

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.

TODO

  • The highest priority is to get the real robot working and the pigeon values read. I won’t be recording hours for that though since its a hassle. Without the pigeon (imu), half my other features are useless.
  • Set up the driverstation in our main laptop
  • Finish and test the grapher
  • finally remove the custom joystick overhead since well be using windows
  • Add kid mode so peopel who want to try driving don’t accidentally mess with our setup buttons
  • Maybe some other stuff I forgot to include.

Anyways thanks for reading my devlog, as long and boring as it is.

Signing off,
Ash-ioL

0
0
9
Open comments for this post

2h 17m 17s logged

I am sleepy so short devlog

Quick summary:

  • Added AdvantageKit
  • Made sure the swerve 2d simulation works
  • Changed default settings in custom joystick
  • Measured some things in the robot and filled in configs
  • Added current and speed limit
  • Fixed the deadband
  • Fixed som broken config values
  • (not sure if this counts) but I also spent some time figuring out whats wrong with the can loop in the hardware (not counted in the 2h)

Plans:

  • Test everything on the real robot
  • Maybe add a fancy auto
  • Maybe add a normal controller for people to try out, and an override controller
  • Idk more ideas forming

Signing off,
Ash-ioL

0
0
9
Open comments for this post

1h 29m 53s logged

Devlog 1: First “Build Successful”

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.

First attempt:

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.

Solution:

I decided to start a new project all together and redo the yagsl ocnfigurations, and use the old code as a reference.

Completed:

  • Build Successful
  • Yagsl Configured
  • Vendordeps issues gone

Future goals

  • Get simulation working
  • collect robot properties
  • maybe prepare a nice auto
  • limit speed and make kid friendly

Signing off,
Ash-ioL

0
0
5

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…