2023:Programming: Difference between revisions
From 1511Wookiee
Jump to navigationJump to search
Programming (talk | contribs) (Updated Programming Wiki 1/28/23) Tag: visualeditor |
Programming (talk | contribs) (Updated Programming Wiki) Tag: visualeditor |
||
(3 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
1511's Github | 1511's Github | ||
https://github.com/topics/1511 | [https://github.com/topics/1511 https://github.com/frc1511] | ||
Programming Documentation | Programming Documentation | ||
Line 29: | Line 29: | ||
<u>Dashboard:</u> Peter | <u>Dashboard:</u> Peter | ||
=== | === 1/19 === | ||
* Pseudo code for lift, grabber, and gamepiece mechanism controller functions | * Pseudo code for lift, grabber, and gamepiece mechanism controller functions | ||
* Implemented empty controller functions in code | * Implemented empty controller functions in code | ||
=== | === 1/21 === | ||
* More pseudo code for lift, grabber, and gamepiece mechanisms | * More pseudo code for lift, grabber, and gamepiece mechanisms | ||
* Implemented functions for lift, grabber, and gamepiece mechanisms | * Implemented functions for lift, grabber, and gamepiece mechanisms | ||
* Started mapping out controls with the drive team | * Started mapping out controls with the drive team | ||
=== 1/24 | === 1/24 === | ||
* Drew out map of driver, aux, and manual aux controller button layouts | * Drew out map of driver, aux, and manual aux controller button layouts | ||
* Implemented aux and manual aux controls code | * Implemented aux and manual aux controls code | ||
=== 1/26 | === 1/26 === | ||
* Implemented pivot and extension motor configuration functions for lift and grabber mechanisms | * Implemented pivot and extension motor configuration functions for lift and grabber mechanisms | ||
Line 53: | Line 51: | ||
* After game piece acquisition, set the lift to travel preset | * After game piece acquisition, set the lift to travel preset | ||
=== 1/28 | === 1/28 === | ||
* Added feedback for drive, lift, grabber, and game piece mechanisms | * Added feedback for drive, lift, grabber, and game piece mechanisms | ||
* Added encoders for the lift mechanism | * Added encoders for the lift mechanism | ||
* Worked on Autonomous configuration page in Dashboard | |||
=== 1/29 === | |||
* Started implementing wrist mechanism | |||
* Blocked out Autonomous paths in ThunderAuto | |||
* Worked on making feedback more consistent between mechanisms | |||
=== 1/31 === | |||
* More work on wrist mechanism | |||
=== 2/1 === | |||
* Added drive align to grid command | |||
* Played with controlling PS5 controller adaptive triggers, led colors, and rumble | |||
=== 2/2 === | |||
* Added basic support to Dashboard to control PS5 controller features (rumble, led colors, adaptive triggers) over Network Tables | |||
=== 2/3 === | |||
* Added pivot-only control option for lift | |||
* Fixed GamePiece logic problems | |||
* Clamped lift position | |||
=== 2/4 === | |||
* Tested code on Test Board! | |||
* Added TalonSRX motor controller API wrappers for testing | |||
* Fixed wrist logic in combination with lift to prevent it from hitting the ground | |||
=== 2/7 === | |||
* Added GamePiece functions for Autonomous control | |||
=== 2/8 === | |||
* Decided to start working on sending PS5 controller input from Dashboard instead of Driver Station to prevent possible issues with two programs talking to them at the same time | |||
* Decided to send PS5 controller input using TCP sockets instead of Network Tables to increase speed and reduce failure points | |||
=== 2/9 === | |||
* Continued working on TCP networking for sending PS5 controller input / output | |||
=== 2/11 === | |||
* Got TCP networking working for sending PS5 controller input to robot from Dashboard and output to Dashboard from robot | |||
* Tested Bluetooth control - don't worry Jeff, its just for testing and demos | |||
=== 2/12 === | |||
* Updated PS5 controller networking to use only one port for both controllers instead of one for the driver and one for aux | |||
* Started re-implementing RollingRaspberry communication to use TCP sockets instead of Network Tables | |||
=== 2/13 === | |||
* Finished re-implementing RollingRaspberry networking | |||
* Worked on resolving pose ambiguities and pose validation from vision results | |||
=== 2/14 === | |||
* Deliberated over physics problems | |||
* Ramped extension speed of lift | |||
=== 2/15 === | |||
* Fixed PS5 controller Joystick problems | |||
* Re-wrote ADIS16470 IMU driver to access all three gyro angles, velocities, and accelerations | |||
* Created WhooshWhoosh class | |||
=== 2/16 === | |||
* Got the robot driving! | |||
=== 2/17 === | |||
* Fixed a few drive issues | |||
* Implemented WhooshWhoosh class for auto-balancing on the Charge Station | |||
=== 2/18 === | |||
* Added UltraBrickMode class for 'Parking Brake' robot mechanism | |||
* Tested Pneumatics on robot, got compressor working | |||
* Added serial communication code to Dashboard for communicating with Arduino on operator controls | |||
** Sending the alliance color and remaining match time to control the LEDs | |||
** Also added 'Service' base class and re-structured parts of the Dashboard | |||
=== 2/19 === | |||
* Added Controller Reference page to dashboard | |||
* Added Grabber page to dashboard | |||
** Presents the current GamePiece or the type of GamePiece that the robot is preparing to acquire | |||
=== 2/20 === | |||
* Updated Dashboard robot position page to 2023 field | |||
* Started working on Lift Dashboard page | |||
=== 2/21 === | |||
* Finished Lift Dashboard page | |||
* Finished electrical, started testing Grabber and Lift code on real robot! | |||
=== 2/22 === | |||
* More testing with the robot | |||
* Removed intake sensor, implemented detection by checking motor current | |||
=== 2/23 === | |||
* More work on making the lift behave properly | |||
* Started created scoring presets on field | |||
* Switched lift extension and pivoting to ProfiledPIDController | |||
=== 2/24 === | |||
* Finished initial lift presets | |||
* Prevented lift collisions by keeping lift retracted when pivoting | |||
* Initial auto testing | |||
=== 2/25 === | |||
* Finished making auto modes to score preloaded cone and cube | |||
* Added LEDs to the robot, wrote simple code to control them | |||
=== 2/26 === | |||
* Rally!! | |||
* Fixed control issues as they arose during testing on field | |||
* Moved UltraBrickMode toggle to driver controller instead of switch panel | |||
=== 2/27 === | |||
* Automated lift movement after GamePiece acquisition and scoring | |||
** Automatically moves down after scoring | |||
** Automatically pivots up after acquisition | |||
== Programming Archives == | == Programming Archives == |
Latest revision as of 13:34, 28 February 2023
Resources:
Robot code Github
https://github.com/frc1511/thunderbot2023
1511's Github
Programming Documentation
Old Robot Code
http://www.svn.penfieldrobotics.com/
Plans for Student Assignments
Lift: Calla / Mustafa / Yaqoub
Grabber: Calla / Charlie
Controls: Will!!!
Auto: Peter
Vision: Peter
Dashboard: Peter
1/19
- Pseudo code for lift, grabber, and gamepiece mechanism controller functions
- Implemented empty controller functions in code
1/21
- More pseudo code for lift, grabber, and gamepiece mechanisms
- Implemented functions for lift, grabber, and gamepiece mechanisms
- Started mapping out controls with the drive team
1/24
- Drew out map of driver, aux, and manual aux controller button layouts
- Implemented aux and manual aux controls code
1/26
- Implemented pivot and extension motor configuration functions for lift and grabber mechanisms
- Added travel preset to lift
- After game piece acquisition, set the lift to travel preset
1/28
- Added feedback for drive, lift, grabber, and game piece mechanisms
- Added encoders for the lift mechanism
- Worked on Autonomous configuration page in Dashboard
1/29
- Started implementing wrist mechanism
- Blocked out Autonomous paths in ThunderAuto
- Worked on making feedback more consistent between mechanisms
1/31
- More work on wrist mechanism
2/1
- Added drive align to grid command
- Played with controlling PS5 controller adaptive triggers, led colors, and rumble
2/2
- Added basic support to Dashboard to control PS5 controller features (rumble, led colors, adaptive triggers) over Network Tables
2/3
- Added pivot-only control option for lift
- Fixed GamePiece logic problems
- Clamped lift position
2/4
- Tested code on Test Board!
- Added TalonSRX motor controller API wrappers for testing
- Fixed wrist logic in combination with lift to prevent it from hitting the ground
2/7
- Added GamePiece functions for Autonomous control
2/8
- Decided to start working on sending PS5 controller input from Dashboard instead of Driver Station to prevent possible issues with two programs talking to them at the same time
- Decided to send PS5 controller input using TCP sockets instead of Network Tables to increase speed and reduce failure points
2/9
- Continued working on TCP networking for sending PS5 controller input / output
2/11
- Got TCP networking working for sending PS5 controller input to robot from Dashboard and output to Dashboard from robot
- Tested Bluetooth control - don't worry Jeff, its just for testing and demos
2/12
- Updated PS5 controller networking to use only one port for both controllers instead of one for the driver and one for aux
- Started re-implementing RollingRaspberry communication to use TCP sockets instead of Network Tables
2/13
- Finished re-implementing RollingRaspberry networking
- Worked on resolving pose ambiguities and pose validation from vision results
2/14
- Deliberated over physics problems
- Ramped extension speed of lift
2/15
- Fixed PS5 controller Joystick problems
- Re-wrote ADIS16470 IMU driver to access all three gyro angles, velocities, and accelerations
- Created WhooshWhoosh class
2/16
- Got the robot driving!
2/17
- Fixed a few drive issues
- Implemented WhooshWhoosh class for auto-balancing on the Charge Station
2/18
- Added UltraBrickMode class for 'Parking Brake' robot mechanism
- Tested Pneumatics on robot, got compressor working
- Added serial communication code to Dashboard for communicating with Arduino on operator controls
- Sending the alliance color and remaining match time to control the LEDs
- Also added 'Service' base class and re-structured parts of the Dashboard
2/19
- Added Controller Reference page to dashboard
- Added Grabber page to dashboard
- Presents the current GamePiece or the type of GamePiece that the robot is preparing to acquire
2/20
- Updated Dashboard robot position page to 2023 field
- Started working on Lift Dashboard page
2/21
- Finished Lift Dashboard page
- Finished electrical, started testing Grabber and Lift code on real robot!
2/22
- More testing with the robot
- Removed intake sensor, implemented detection by checking motor current
2/23
- More work on making the lift behave properly
- Started created scoring presets on field
- Switched lift extension and pivoting to ProfiledPIDController
2/24
- Finished initial lift presets
- Prevented lift collisions by keeping lift retracted when pivoting
- Initial auto testing
2/25
- Finished making auto modes to score preloaded cone and cube
- Added LEDs to the robot, wrote simple code to control them
2/26
- Rally!!
- Fixed control issues as they arose during testing on field
- Moved UltraBrickMode toggle to driver controller instead of switch panel
2/27
- Automated lift movement after GamePiece acquisition and scoring
- Automatically moves down after scoring
- Automatically pivots up after acquisition