Giter Club home page Giter Club logo

2023_main_robot's People

Contributors

foehammer127 avatar mvog2501 avatar nathan2129 avatar rmheuer avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

2023_main_robot's Issues

Broken parallel commands with requirements fix.

Multiple drive commands that only do one part (translation or rotation) should require the drive subsystem to properly override the teleop controls. This breaks parallel commands using a translation aspect and a rotation aspect.

Expected behavior
Parallel commands allow commands that will not override each other's movement.

Additional context
This but does not exist on main yet, but will when auto leveling is merged.

ShuffleLog point selector

ShuffleLog should have an eyedropper tool to select a point on the field view and convert it to a point that can be used in commands like drive to point.

Aim at apriltag

This would allow the robot to aim at an apriltag of choice through either a button or an autonomous feature.

Build a robot

Is this feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Multiple input methods with selector

If there are more than one ways to control the robot (i.e. Xbox controller, Joystick, 2 Joysticks), then there should be a selector that allows an input method to be chosen without editing the code.

My initial idea would be to have an input interface and implementations for each type. A SendableChooser or the ShuffleLog alternative would be the method of choosing.

Subsystem switches

This would allow for entire subsystems to be turned off in the code using a value in NetworkTables. Unlike last year, the code should not need to be deployed for these to take effect.

If a subsystem is turned off when the code is deployed, perhaps the motor objects should not be created, preventing CAN error message spam if the subsystem is physically removed.

ShuffleLog: Set default layout programmatically

Is this feature request related to a problem? Please describe.
When new tools are added to ShuffleLog, it is annoying to update the default layout.ini file.

Describe the solution you'd like
ShuffleLog should automatically dock all windows so that the layout.ini file is not needed.

Simulated gyro incorrect

The simulated gyroscope often reports a different measurement to that of the real robot. This seems to be because the gyro is used to reset itself.

Joystick Control

Ability to control the swerve drivetrain with one or two joysticks (or both options)

Pathfinder stay on course if lost

Quite often, the pathfinder will drive the robot into an area that it thinks is impossible to pass through. This often isn't true so instead, it should keep driving on the last valid path that it produced.

Robot

Is this feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Messenger can hang on message write

Describe the bug
Messenger can hang on message write.

To Reproduce

  1. Start MessengerServer, then start MessengerTest
  2. Wait for MessengerTest to connect
  3. Stop the MessengerServer process with ctrl+z
  4. MessengerTest will eventually hang on writing

Expected behavior
Messenger client detects that the server is down and closes the socket.

Additional context
It makes the robot break (see MMR)

Swerve Features

There are a few things that we could do with the swerve drive that could take it to the next level. Here are a few things that I would like to see added:

  1. X wheel position to prevent defense (Automatically)
  2. O wheel position to allow for rotation but not movement (Automatically)
  3. Dead wheel mode -> Tell it that a wheel is not working, and the kinematics will adjust to make up for the power differential. This would probably also need to be added to shufflelog.

ShuffleLog: Default layout is not properly saved

Describe the bug
The default window layout for ShuffleLog is not properly saved if the layout file does not exist. This causes all the windows to be randomly scattered around the screen.

To Reproduce
Delete layout.ini and open ShuffleLog

Expected behavior
There should be a default layout for all the windows so that it initially has a reasonable layout.

Proper indication lights control

The lights on the robot serve a purpose beyond looking pretty. They should be able to indicate the state of the robot, being good or bad.

A system needs to be created for some light commands to override others, and be cleared after a period.

Hot-swap swerve modules

This should add the ability to swap the locations of modules without editing any code, allowing for module hot-swaping.

Arm positions

Define the positions for scoring and picking up game pieces

Fix arm sim

The arm simulator is not physically accurate

Swerve neutral modes

This would allow the behavior of the swerve drive when no command is issued to be changed. Examples of this would be: if the robot isn't driving, the wheels should all face the center of the robot to prevent it from being pushed around on the field.

Test Post a Webhook Request On Repo Events

Is this feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Aim at retroreflective posts

This would allow the robot to, at the press of a button or the request of an auto sequence, aim at one of the target sticks, and choose between the top and the bottom sticks

Calibrate modules with button

This would add the ability to click a button (I would think just an NTBoolean) and have it reset all of the offsets to make 0 be the current position.

ShuffleLog: Field view layer properties cannot scroll

Describe the bug
The panel to the right of the field view cannot be scrolled if the content is too long.

To Reproduce
Open all dividers to increase vertical height of the content, then resize the window so that not all content fits.

Expected behavior
It should be possible to scroll the panel vertically.

Aim at limelight target

This would allow the robot to aim at a limelight target of choice through either a button or an autonomous feature.

Add limelight support

This would add basic support for the limelight in standard mode (not PhotonVision) to detect the vision targets that FIRST says will still be on the field in a lesser compacity.

No simulation periodic and init

There is currently no support for simulation.

A thing to note when implementing this:
Both simulation and the mode periodic should be called if it is a simulation, not just the simulation periodic.

@mvog2501 Will be taking care of this within the next day.

Block Auto: Sequences can be corrupted if block definitions change

Describe the bug
If the definition of a block used in a saved sequence is changed, it can cause the sequence to become corrupted, and possible crash the robot code.

To Reproduce

  1. Define a block with a parameter of some sort
  2. Create and save a sequence using that block
  3. Remove the parameter from the block's definition
  4. Try to load the sequence; it will not be loaded properly

Expected behavior
The sequence either does not load, but does not crash, or loads without the corrupted block.

A possible solution would be to give each parameter a unique name so it can be identified if parameters are reordered, added, or removed, and to store it in JSON format to prevent deserialization errors. This would have the added advantage of making auto sequence files human-readable.

Reset pose block

There should be a block in block auto that can reset the pose of the robot to a defined position. This would let us set the position of the robot for the start of autonomous.

Robot randomly just drives off the field when scoring

Describe the bug
The robot drove off the field when pressing the top left button to score on the virtual button panel. The robot was rotated roughly 180 degrees off from the correct scoring location and upon click, the robot drove off the upper right hand side of the simulator. Other buttons had been pressed in the session and everything was working.

To Reproduce
I dunno.

Additional context
Pathfinder, Shufflelog, and Messenger were all running

Swerve constants tunable

Make all constants that should be changed (not kD on the drive motors) so that they are tunable over networktables.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.