You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+17-6Lines changed: 17 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,15 +51,21 @@ Our Algae Intake Pivot and Elevator automatically sets the subsystem’s zero wh
51
51
52
52
### Vision
53
53
54
-
Using 2 Limelight 3G’s, we calculate pose estimates based on the AprilTags that each camera can see. These cameras are mounted to ensure that when we’re up against the reef (when our pose is most important), at least 1 camera can see the tag in front of us. Each Limelight’s pose estimates are then fed into the robot, passed through a rejection filter (if tags are too small or far away), and then added to a Pose Estimator that combines our current pose with the estimates.
54
+
Using three Limelight 3G’s, we calculate pose estimates based on the AprilTags that each camera can see. Two of the front cameras are mounted to ensure that when we’re up against the reef (when our pose is most important), at least 1 camera can see the tag in front of us. After San Diego Regional, we added a third Limelight on the back of our robot to be able to see processor tags. This ensures us to also be able to do the net and processor self-aligning.
55
+
Each Limelight’s pose estimates are then fed into the robot, passed through a rejection filter (if tags are too small or far away), and then added to a Pose Estimator that combines our current pose with the estimates.
56
+
55
57
-**Why it’s cool:** This process allows our robot to always have an accurate pose, optimized for times when minuscule changes can heavily impact cycle time. This baseline allows us to do all other vision-related features.
56
58
57
59
### Vision Aided Alignment
58
60
59
61
The multi-stage system, depending on the distance
60
62
-**Smart:** Automatically chooses which face of the reef to go
61
63
-**Double limelights**
62
-
-**How it works:** Using the current pose of the robot (see Vision), we calculate the closest reef face on the fly. The auto alignment then determines different desired positions based on which face of the reef the driver picks, always relative to their left & right. Then, we calculate our distance from the desired pose. If the distance is too large, the robot will just turn to the correct angle; otherwise, the robot will fully self-drive to the desired position. The same process is used for Cage & Processor alignment, except there are no “left vs right” buttons; they’re just based on which is closest.
64
+
-**How it works:** Using the current pose of the robot (see Vision), we calculate our desired reef face on the fly based on our distance from the reef and current rotation. The self alignment then determines different desired positions based on which branch of the reef the driver picks, always relative to their left & right. Then, we calculate our distance from the desired pose. If the distance is too large, the robot will just turn to the correct angle; otherwise, the robot will fully self-drive to the desired position.
65
+
66
+
### Net/Processor Vision Aided Alignment
67
+
-**How it works:** Similar to the reef, we calculate the closest position of the net and processor alignment, except there are no “left vs right” buttons; they’re just based on which is closest.
68
+
However, the net and processor have a special type of alignment. We can self-align to a vertical/horizontal axis where you can score, and the driver can still move along the line. For example, for the net, we lock the drivetrain y velocity (relative to the robot) but the driver can still travel along the x-axis.
63
69
64
70
### State Machine Control
65
71
@@ -83,30 +89,35 @@ The state machine prevents us from going to states before the robot is ready.
83
89
84
90
-**Sensor Feedback:** Real-time detection of the coral's position and status using sensors.
85
91
-**State Management:** Using Boolean variables to track the status of the coral allows the robot program to adjust based on the current state.
86
-
-**Dynamic Speed Adjustment:** The speed of coral transportation is dynamically adjusted based on sensor feedback to ensure that the coral maintains a stable position during the process. It goes faster when the coral is in the hopper, and when the sensor in the coral placer senses the coral, it slows down.
92
+
-**Dynamic Speed Adjustment:** Prior to SDR, we used to have our speed of coral transportation dynamically adjusted based on sensor feedback to ensure that the coral maintains a stable position during the process. It goes faster when the coral is in the hopper, and when the sensor in the coral placer senses the coral, it slows down.
93
+
With the addition of the coral hardstop after PHR, we no longer have to slow down the indexing speed and now just set both indexing and intaking to full speed.
87
94
-**Consistency:** Maintaining consistent indexing logic regardless of task details, ensuring high success rates and efficiency in every mission.
88
95
89
96
### Coral Placing Safety Time
90
97
91
-
A mechanism that sets a safety delay after placing coral to ensure the robot does not immediately perform other operations (such as lowering the elevator), thereby preventing a shallow climb on the reef.
98
+
-**What it is**A mechanism that sets a safety delay after placing coral to ensure the robot does not immediately perform other operations (such as lowering the elevator), thereby preventing a shallow climb on the reef.
92
99
-**How it works:**
93
100
-**Quick Tap:** If the operator performs a quick tap on the trigger button, the robot will wait until the coral has completely exited the scoring mechanism (CoralOuttake) before lowering the elevator. This process is achieved through the Coral Placing Safety Time, ensuring that the robot does not proceed to the next operation until the coral is fully placed.
94
101
-**Long Press:** If the operator holds the trigger button for longer than the preset delay time, the robot will ignore the safety delay. This means the robot will immediately proceed to the next operation when the operator releases the trigger button.
95
102
96
103
### Motion Magic
97
104
98
105
Our Elevator & Algae Pivot use a motion profiling system from CTRE called Motion Magic, allowing us to tune not only our subsystems’ PID controller, but also their acceleration & cruise velocity.
99
-
-**Why it’s cool:** This method of tuning allows our Elevator to reach its desired position (from Min to Max) in 1.2 seconds or less, and our Algae Pivot in 1.8 seconds.
106
+
-**Why it’s cool:** This method of tuning, along with our constant force springs, allows our Elevator to reach its desired position (from Min to Max) in approximately 0.79 seconds.
107
+
The addition of constant force springs after San Diego Regional allowed us to achieve a 34.6% faster cycle time on our Elevator via dynamic acceleration curves.
100
108
101
109
### Autos
102
110
103
-
We have 3-L4-coral-auto on both sides of the field.
111
+
Our autos include a 3 coralauto on both sides, 4 one coral and 2.5 algae net auto, and “Tickle” autos that bump other bots (forcing the ranking point).
104
112
-**How it works:**
105
113
-**Driving:**
106
114
- Basic driving: Path planner used to navigate by preset trajectories.
107
115
- Pose Target driving: dynamically adjusts robot pose to auto-align (same as the one in tele-op).
108
116
-**Commands:** State-machine-based command sequence scheduling ensures smooth and reliable execution.
109
117
118
+
**Autos Sheet**
119
+

120
+
110
121
## Field Calibration
111
122
-#### Step 1: have advantage scope 3D field open whole time
0 commit comments