Skip to content

1757WestwoodRobotics/2022-RapidReact

Repository files navigation

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

  • PDP
  • FalconFX
  • CANCoder

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

  • IMPORTANT: Perform ALL operations in a python virtualenv

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
  • Run Pylint in terminal and check for a help output. It should be autoinstalled with python.
pylint
  • Run Black in terminal empty and look for "No path provided". If nothing happens, run the second command
black

python -m pip install -U black
  1. Make Pylint happy
  • Run Pylint on your files
pylint $(git ls-files "*.py")
  • With the error "Method could be a function" on an isFinished in a command, add this command above it. If necessary, swap out "no-self-use" with whatever error it gives you at the end.
# pylint: disable-next=no-self-use
  1. Formatting with Black and Prettier
  • Run black on your files (autoformats). Also note that it can be configured to run on save of a file.
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
  • Should be obvious but make sure to do it
  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.

About

Competition Bot for FRC 2022 Season

Resources

License

Stars

Watchers

Forks

Packages

No packages published