Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Manual Climber #1

Open
numerator opened this issue Feb 5, 2022 · 2 comments
Open

Feature: Manual Climber #1

numerator opened this issue Feb 5, 2022 · 2 comments
Assignees
Milestone

Comments

@numerator
Copy link
Contributor

numerator commented Feb 5, 2022

Description

Manual Mode

Operator left Y axis should control winch (hook arm telescoping). Stick up extends hook arm (telescopes out). Stick down retracts hook arm. Speed is proportional to stick position.

Operator B button toggles the position of the piston (between Forward/Out and Reverse/In).

Acceptance Test:

Preconditions:

Robot with climber mechanism
Driver station connected to robot over network
2 XBox Controllers ("Driver" and "Operator") connected to Driver Station
Robot is in "manual" mode (the default unless auto mode is explicitly activated)

Tests:

Action: Operator pushes and holds left stick up
Result: Winch arm extends while stick held up, stops when released.

Action: Operator holds left stick down
Result: Winch arm retracts while stick held down, stops when released.

Action: Operator pushes B button
Result: Winch arm switches position (forward/reverse angle)

Notes

  • this ticket only describes manual climber control
@numerator numerator changed the title Implement Climber Feature: Implement Climber Feb 5, 2022
@numerator numerator added this to the Robot V1 milestone Feb 5, 2022
@mcolinj
Copy link

mcolinj commented Feb 6, 2022

This kind of cancellable, deadlined operation is mostly suited for the robot Command framework, but we have never used it. Some of that kind of functionality will need to be replicated for this to work cleanly in our existing framework. However, we have (used with substantial success), python generator-based solutions to build all manner of autonomous tasks that could also be monitoring for cancellation signals. The generator-based solutions works well because all of the necessary state ends up being preserved in the generator function. So, it ends up being much simpler than having to create custom state machines; it only requires a function that does the task, but breaks it up into steps that can be done in the robot loop using the python yield statement.

For a tutorial on how to use generators for an autonomous task, look here:

https://github.com/FRC1076/ContinuingEducation/tree/master/generators-for-auton

@numerator numerator changed the title Feature: Implement Climber Feature: Manual Climber Feb 9, 2022
@1076software
Copy link
Contributor

Is this issue still open? I thought we had tested this on the testbed. A new issue could be made for testing on the actual robot with actually climbing.

1076software added a commit that referenced this issue Feb 27, 2022
IngmarNT pushed a commit that referenced this issue Dec 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants