1757WestwoodRobotics / 2022-RapidReact

Competition Bot for FRC 2022 Season
MIT License
5 stars 1 forks source link

2022-RapidReact

Code for the FRC 1757 2022 Competition Bot

Installation

Visual Studio 2019 redistributable

vc_redist.x64

Python

3.9.6 amd64

VS Code

VS Code

FRC Game Tools

FRC Game Tools

FRC Radio Configuration Utility

FRC Configuration Utility

CTRE Phoenix

Phoenix Tuner

Setup

roboRIO

  1. Image the roboRIO Imaging instructions
  2. Configure the roboRio Item Value
    Team number 1757
    Firmware 6.0.0f1
    Image FRC_roboRIO_2021_v3.0
    Static IP 10.17.57.2
    Subnet Mask 255.255.255.0

Run Phoenix Tuner

Update device firmware

Configure CAN devices

Device Class Range ID
robo_rio core 0 - 9 master (no ID)
pdp core 0 - 9 0
pneumatic_hub core 0 - 9 1
front_left_drive motors 10 - 29 10
front_left_steer motors 10 - 29 11
front_right_drive motors 10 - 29 12
front_right_steer motors 10 - 29 13
back_left_drive motors 10 - 29 14
back_left_steer motors 10 - 29 15
back_right_drive motors 10 - 29 16
back_right_steer motors 10 - 29 17
shooting_hood motors 10 - 29 21
shooting_turret motors 10 - 29 22
shooting_shooting motors 10 - 29 23
left_climb_motor motors 10 - 29 24
right_climb_motor motors 10 - 29 25
front_left_encoder sensors 40 - 59 40
front_right_encoder sensors 40 - 59 41
back_left_encoder sensors 40 - 59 42
back_right_encoder sensors 40 - 59 43

Configure Pneumatic devices

Device ID
left_climber_brake 0
right_climber_brake 1
right_climber_pivot_forward 2
left_climber_pivot_forward 3
intake_deploy 4
left_climber_pivot_backward 12
right_climber_pivot_backward 13

Configure network devices

Device IP Address Subnet Mask
OpenMesh radio 10.17.57.1 ???.???.???.???
roboRIO 10.17.57.2 255.255.255.000
Driver Station (laptop) 10.17.57.5 255.000.000.000

Install robotpy

Create virtualenv (if not previously done)

Recommend placing the virtualenv in the mentorbot repo folder under .venv (to keep everything together) however the virtualenv is local to your system and should not be uploaded (ignored in .gitignore)

cd <path-to-mentorbot-repo>
py -3 -m venv ./.venv

Workflow

  1. Activate virtualenv (Virtualenv activation may differ depending on your operating system and terminal)
    • Git Bash (Windows)
      source <path-to-mentorbot-repo>/.venv/Scripts/activate
    • normal bash (linux, macOS)
      source <path-to-mentorbot-repo>/.venv/bin/activate
  2. Update pip and wheel. Old versions of pip can prevent binary wheels from being installed. Installing wheel makes other installs faster (must have internet connection)
    python -m pip install --upgrade pip wheel
  3. Install / update robotpy (must have internet connection)
    python -m pip install -r requirements.txt

    (examples: robotpy, robotpy[ctre,navx], robotpy[all]) (see: robotpy on pypi)

  4. Download python for roboRIO (must have internet connection)
    python -m robotpy_installer download-python
  5. Download robotpy modules for roboRIO (must have internet connection)
    python -m robotpy_installer download robotpy

    (examples: robotpy, robotpy[ctre,navx], robotpy[all]) (see: robotpy on pypi)

  6. Install python on roboRIO (must be connected to roboRIO)
    python -m robotpy_installer install-python
  7. Upload robotpy modules to roboRIO (must be connected to roboRIO)
    python -m robotpy_installer install robotpy

    (examples: robotpy, robotpy[ctre,navx], robotpy[all]) (see: robotpy on pypi)

  8. Deploy robotpy program

    • To robot (must be connected to roboRIO)
      python robot.py deploy
    • To simulator
      python robot.py sim

Steps to take when commiting

  1. Make sure Pylint, Black and Prettier are installed
pylint
black

python -m pip install -U black
  1. Make Pylint happy
pylint $(git ls-files "*.py")
# pylint: disable-next=no-self-use
  1. Formatting with Black and Prettier
black .

-You also may need to format json files using Prettier. When opening a json file in VSCode, it should prompt you to download Prettier in a small window in the bottom right. If not, go to the extensions tab on the left and search "Prettier". The top result is it (about 19 million downloads)

  1. Make sure it starts in sim and works as expected
  1. CODE FORMATTING PRACTICES
    • for python we are using black
    • for json we are using prettier
    • all JSON files must be alphabetized, you can use the following extension for prettier
    • If you're using VSCode, use json-sorter to sort the json without dealing with npm above json-sorter. Open command pallete in the file with ctrl+shift+p and type "alpha". "Sort JSON keys by alpha order" should show up, and hit enter to run it. Afterward, save to autoformat with prettier.