Code for the FRC 1757 2022 Competition Bot
- Image the roboRIO Imaging instructions
- 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
- PDP
- FalconFX
- CANCoder
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 |
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 |
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 |
- IMPORTANT: Perform ALL operations in a python virtualenv
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
-
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
- Git Bash (Windows)
-
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
-
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) -
Download python for roboRIO (must have internet connection)
python -m robotpy_installer download-python
-
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) -
Install python on roboRIO (must be connected to roboRIO)
python -m robotpy_installer install-python
-
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) -
Deploy robotpy program
- To robot
(must be connected to roboRIO)
python robot.py deploy
- To simulator
python robot.py sim
- To robot
(must be connected to roboRIO)
- 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
- 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
- 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)
- Make sure it starts in sim and works as expected
- Should be obvious but make sure to do it
- 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.