owned this note
owned this note
Published
Linked with GitHub
---
tags: byting-irish
---
# Byting Irish Programming 2023
## This doc: https://rebrand.ly/2023/byting-prog-notes
Other Years:
* [2024](https://rebrand.ly/byting-prog-notes)
## Team
* [Projects doc](https://rebrand.ly/byting-projects) - project descriptions and notes for team
* [github](https://github.com):
* team org: [frc7660](https://github.com/frc7660)
* team user: [robo7660](https://github.com/robo7660)
* Coach Moser: [smoser](https://github.com/smoser)
* Coach Lee: [erclee2000](https://github.com/erclee2000)
* Eli: [e-moser](https://github.com/e-moser)
* Source code: https://github.com/frc7660/Robot/tree/main
* Varsity yCalendar: https://rebrand.ly/byting-cal
* JV Calendar: https://rebrand.ly/byting-jvcal
## Issues
* claw cannot be open when past
* negative sign in drive get encoder distance .
*
## Saturday 2023-02-23
* Without Robot
* Add Arm command that allows joystick movement and "hold" position
* Add Claw code that does position based limits
* With Robot
* PID Tune Drive Distance and Turn Degrees
* PID Tune Arm motion
* Determine arm target set points (ground/pickup, mid/score, closed)
* Determine claw limits
* Auton Score then leave (based on DriveDistance and Turn)
* Auton Score then balance
* Auton on balance
* Ramsette / paths
## Thursday 2023-02-23
Items remaining:
* Drive Distance
* Turn Degrees
* Arm Limits
* Arm Stops:
* ground / pickup
* mid score
* closed
* hold Position
* Claw limits
* Auton Score then leave
* Auton Score then balance
* Auton on balance
* Ramsette / paths
* verify camera view
## Tuesday 2023-02-21
* Chain broke after going the wrong way with the arm
* light wire came loose
* bumpers are loose / dragging
* eli complains about drift from the omni wheels
* 20:1 gear ratio feels really slow
* community zone is really tight
* dreadbots have pid based balance
* per Nate (nicholas?): pid tuning - start at all zeros. move P til wobbly. Move I til better.
* per Nate: washtenaw discord server (sephdude is there)
*
## Saturday 2023-02-04
Mr. Lee will be leading today (thanks!)
* With both JV and Varsity (morning)
* overview of robot code architecture, examination of a few specific lines of code including some that are using method references/lambdas
* overview of how sysid/pathweaver work (unless we've already done this)
* With Varsity in the afternoon
* either do sysid data collection (if [bug](https://github.com/wpilibsuite/sysid/issues/460) is fixed).
* or skip sysid, get constants from another robot, and start adapting RamseteCommand() example bot to our robot
## Thursday 2023-02-02
* Students should continue working on assigned projects (see projects-doc).
* Difei made some good progress on Connor and Vincent's work towards some automated test. Please continue down that path.
* Camilla and Alexa made progress towards getting a PathPlanner route taken. I think the next step is to make a 'Command' that takes a Trajectory object and executes it. Then, we will run that command either from a button, autotonomous, or some other command.
* The code in the command will look similar to the 'getAutonomousCommand' function [here](https://github.com/smoser-frc/frc-sim-base/blob/dd8d79f17e3d6a4df33cfee81bfa3acb5fa9168a/src/main/java/frc/robot/RobotContainer.java#L88)
* Joseph and Nico have been working on PathPlanner and automation. The path-planner code overlaps with what Camilla and Alexa are doing. Feel free to have them show you what they've done.
* Eli can continue looking at april tag use via PhotonVision. There is a new release (2023.2.2 that would be good to upgrade to). Please work/play on this with the specific goal of using april tags to know our pose/position on the field. Eli, you can also help Joseph and Nico or Camilla and Alexa with getting their Command together.
* This podcast might be useful https://www.youtube.com/watch?v=EHJ0oPRZTN8 (it has "That Matt Guy").
* Walter should continue working on Diag tab Shuffleboard widgets. I had the opportunity to make a little bit of progress on how that is done. See the code changes in [this branch](https://github.com/smoser-frc/frc-sim-base/tree/feature/shuffleboard-widgets). You can check out that branch and run it, you'll see the widgets populated. You can see just the diff [here](https://paste.openstack.org/show/818530/)
## 2023-01-30
* Scott led an effort to Add a subsystem (claw) and command (open/close) in an effort to both get that moving in the right direction and to educate students on the overall code flow.
## 2023-01-26
* JV: Play with [path planner](https://github.com/mjansen4857/pathplanner) software. Try to export into a java project, possibly example project StateSpaceDifferentialDriveSimulation that we played with on Tuesday.
* Varsity - Same as above
* Add a Test routine.
* vscode extension for spotless https://marketplace.visualstudio.com/items?itemName=richardwillis.vscode-spotless-gradle
## 2023-01-24
* Accomplished:
* Walked through StateSpaceDifferentialDriveSimulation that gives simulation. Students able to drive robot around on Field2d. Some able too find autonomous routine in that example. Autonomous routine [there](https://github.com/wpilibsuite/allwpilib/blob/917906530a274293347352edef6b11e52788c0b5/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacedifferentialdrivesimulation/RobotContainer.java#L88) is a very good example of usage of path driving.
* Bothered Johanen to rewire battery for us.
* Checked that rio was upduated to latests version (FRC_roboRIO_2023_v3.1) posted in [sysid #460](https://github.com/wpilibsuite/sysid/issues/460)).
* Plan:
* 2:10 - setup
* Find / collect
* Chassis
* Battery
* Blocks (4 wood blocks to raise)
* Laptop
* 2 xbox Joysticks
* Setup
* plug in programming wifi
* plug in HDMI to programming laptop
* 2:20 Discussion on simulation
* StateSpaceDifferentialDriveSimulation
* Shuffleboard
* code walkthrough
* [path planner](https://github.com/mjansen4857/pathplanner)
* Hardware Test introduction
* Goals:
* Verify each component is working
* left/right wheels forward/back. slow/fast.
* Read encoder data back to verify.
* 3:00 Tasks / Programming
* flash limelight image [here](https://github.com/PhotonVision/photon-pi-gen/actions/runs/3996651911) , fill out [form here](https://docs.google.com/spreadsheets/d/1mUHbHd__sBYXDp6xlnMe-6Kj-9DRVjMy4nQ1BysX2xQ/edit?usp=sharing) with result.
* label limelights (2+ or 2). 2 has grey dot. 2+ has red. Ideally with mac address.
* make sure rio is updated. (per [sysid #460](https://github.com/wpilibsuite/sysid/issues/460)). Can check the roborio web ui [doc](https://docs.wpilib.org/en/stable/docs/software/roborio-info/roborio-web-dashboard.html)
* Play with [path planner](https://github.com/mjansen4857/pathplanner)
* Add shuffleboard component for drive (robot widget)
* Drive the left wheels, Drive the right wheels...
* 4:15 - cleanup
* Mention to Johanen or tell electrical need larger cable / battery mount issue.
* if there is a photonlib limelight > 2023.2.1, go for it.
## 2023-01-21
Accomplished:
* USB Camera added to 2023 code.
* Limelight flashed to 2023.1 installed on robot.
Tried:
* flash limelight with newest photonvision with [PhotonVision v2023.2.1](https://github.com/PhotonVision/photonvision/releases/tag/v2023.2.1). Did not seem to come up to any network activity.
*
Notes
* Speaker on April Tags 9:30-10:30
* [Mr. Lee's pathweaver notes](https://github.com/erclee2000/trajectory-following) - read these
* [Path Planning](https://docs.wpilib.org/en/stable/docs/software/pathplanning/index.html) / pathweaver / [sysid](https://docs.wpilib.org/en/stable/docs/software/pathplanning/system-identification/introduction.html)
* Any tasks left from Thursday.
## 2023-01-19
Varsity will likely be in "Design Commitment Day" talks thursday, so much of this might get pushed, but here is the list of things we'd like to work on.
* add webcam to rivet code - goal is to get the USB webcam to appear on the dash. You google or look at last years code to see.
* Update systems to WPILib [2023.2.1](https://github.com/wpilibsuite/allwpilib/releases/tag/v2023.2.1)
* Read about [sysid](https://docs.wpilib.org/en/stable/docs/software/pathplanning/system-identification/configuring-project.html#configuring-a-project) and try to see if the RamsetCommand example bot will deploy to rivet and also dump the encoder and gyro values to shuffleboard to see if they are reasonable.
* JV:
* Don programming assignments
* romi -
* [2023.1.1](https://github.com/wpilibsuite/WPILibPi/releases) release says:
> Known Issues: The firmware download on the Romi has been reported not to work with this image. For now please use the 2022.1.1 image for Romi (the 2022 image will work fine with 2023 WPILib Romi robot programs).
* However, the 2023 Photonlib requires 2023 wpilib.
* next step is to attach pi ethernet and apt-get install libopencv-core4.5
* need to figure out how to permenantly put the romi in writable mode as photonvision needs that.
* flash second limelight with limelight.io image [2023.0.1](https://limelightvision.io/pages/downloads)
* poke at limelight
## 2023-01-17
* [main branch](https://github.com/FRC7660/Robot/tree/main) is live. 2022 has been moved to a branch.
* flashed 3 radios A, B, D
* updated rivet firwmares for
* robo rio
* spark max
* Updated can-ids in code to 1,2,3,4 for drive.
* drove rivet chassis (:+1:)
* [eli] work on simulator some
## 2023-01-16
* installed new romi image (2023.1.1) on romi and phton-vision install via photon-vision [romi docs](https://docs.wpilib.org/en/stable/docs/romi-robot/imaging-romi.html).
* trouble shoot some on discord, failed to ultimately get photon-vision working on the romi.
* it seems that romi has to be in RW for the photon-vision library to run
* requested CAD to print a mounting bracket for pi cam on romi:[here](https://www.thingiverse.com/thing:4865276)
## Notes for discussion with Mr. Lee
* How did saturday go?
* List of programming items below is to just get the list down. We are growing short on time, and I just want as much ready as we can have.
* Programming items
* Arm subsystem with sensors (check for rev software)
* https://github.com/REVrobotics/SPARK-MAX-Examples/tree/master/Java
* https://github.com/REVrobotics/SPARK-MAX-Examples/blob/master/Java/Limit%20Switch/src/main/java/frc/robot/Robot.java
* Claw subsystem with sensors
* automomous driving single routine
* automomous routines
* april tag based positioning
* Drive with shift
* teleop driving and scoring assist
* Notes:
* Sysid [chief delphi post](https://www.chiefdelphi.com/t/sysid-not-working-with-neos/425792), [github issue 460](https://github.com/wpilibsuite/sysid/issues/460), [wpilib 2023.3](https://github.com/wpilibsuite/allwpilib/releases/tag/v2023.3.1) mentions sysid fixes (released sunday feb 5)
* [photon vision] release [v2023.3.0](https://github.com/PhotonVision/photonvision/releases/tag/v2023.3.0) From Thurs 2/2.
* Comments about duplicate code path and Sim (i think you commented in email). I think that the sim is worth maintaining in 'main' branch. I hope that at some point we have a proper Drive class with good inheritance to avoid copying much code. The sim path should not really need to be changed, and the "real" path should only need to be changed for constants. As it is right now, the "real" path is missing a kinematics/odometry. We should be able to just put that into 'Drive()' and the subclasses implement necessary things.
* > Also, after thinking about it more, I think the ramsete command has promise even without sysid constants. I did not have the sparkmax encoder code in there when we tested, which might explain a lot of what happened. So I have an idea for what maybe some students should pursue this week. [Eric]
* Yeah, I agree. I really hope we'll get reasonable sysid constants. Did you try sysid at all?
* What is your availability?
* Thanks so much for helping out on Saturday.
## System Installation
* WPILib: [Install doc](https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html)
* The WPILIB installation includes a vscode installation all set up to use wpi. Its is easiest and "just works" to install the vscode from wpilib and use it rather than trying to point another vscode installation at wpilib.
* balenaEtcher [Install](https://www.balena.io/etcher/)
* install rpiboot tools (USB Drivers) from https://limelightvision.io/pages/downloads
* github desktop client: https://desktop.github.com/
* Phoenix Tuner X (Download on Microsoft Store)
* FRC Game Tools: [Install](https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/frc-game-tools.html)
* Rev Hardware Client (Spark Max): [Install](https://docs.revrobotics.com/sparkmax/rev-hardware-client/getting-started-with-the-rev-hardware-client)
* Radio flash tool [here](https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-3/radio-programming.html)
* [NavxUI](https://pdocs.kauailabs.com/navx-mxp/software/navx-mxp-ui/)
* [solidworks](https://www.solidworks.com/SEK) (CAD)
## Romi installation
* follow imaging romi guide: [here](https://docs.wpilib.org/en/stable/docs/romi-robot/imaging-romi.html)
* boot romi
* change wireless password to irish7660
* plug in ethernet cable
* reboot romi
* Connect to put romi web UI [10.0.0.2](http://10.0.0.2/) or [wpilibpi.local](http://wpilibpi.local) or whatever address the ethernet got. a
* put pi in writable mode
* ssh to pi@<address> (password raspberry)
* follow photon vision doc on romi installation [here](https://docs.photonvision.org/en/latest/docs/getting-started/installation/sw_install/romi.html)
* Need to set the pi camera settings [here](https://docs.photonvision.org/en/latest/docs/hardware/picamconfig.html)
## Notes
* Gyro / Navx Alignment: https://pdocs.kauailabs.com/navx-mxp/installation/orientation-2/ . [Cheif Delphi Thread](https://www.chiefdelphi.com/t/how-to-invert-navx-readings/431234/8)