Automating the hanging process for the Rapid React 2022 game

I wanted to automate the hanging process for the Rapid React endgame phase since our drivers were having some consistency issues sometimes. I made a command group that has all the sequential steps that need to take place in order to reach the traversal bar, but I am not sure how to implement a command group during the endgame phase of the game since I’ve only really used command groups for the autonomous phase (which WPILib offers a nice section where you can return the autonomous command in the robotcontainer.java) but not sure if they have anything for “autonomous”/command group commands during the teleop/endgame phases of the game.

1 Like

I do not believe you can set a command to trigger at end game however you can set them to activate on a trigger

2 Likes

The most common thing to do is to use a button on a controller to start things.

You can get the current match time but it is not exact and you wouldn’t want to just trigger at a time without confirming the robot is in place.

I believe some teams use the time to prevent accidental early button presses. I suggest using combo button press or something else instead.

2 Likes

A controller button press is probably the best way to do it. Some teams use a separate controller for climbing so that it doesn’t get triggered early.

1 Like

Our climber sensed the proper touching of the bar. Once the climb was initiated, the drivers could only observe and stop it only if something went wrong

My team made a mostly-autonomous climb for our bot. Our driver found it fastest to use the auto for the first bar transfer and then switch to manual control to get to traversal, but the auto-climb works also.

Our code is publicly available here, but this is the specific code we have for the climber.

We basically have a few setpoints, and then the driver presses a button to go to the next setpoint. That way we can time with the swing if our bot is swinging, and make sure the bot makes it with any inconsistencies.

We didn’t actually build it into anything external, we just have a bunch of command groups that run on a button press. Then we just have some code that moves the arms to the given setpoints.

        new ArmsToSetpoints(25, climbingSubsystem), 
        new WaitUntilCommand(proceed),

Definitely suggest having it start with a button. The benefit is that in the case you don’t want to climb, you don’t automatically start doing so. If you get to the bar just a touch late, you don’t get messed by timing.