Bibliotecas de 3ros
Teams that are using non-PWM motor controllers or advanced sensors will most likely need to install external vendor dependencies.
What Are Vendor Dependencies?
A vendor dependency is a way for vendors such as CTRE, REV, and others to add their software library to robot projects. This library can interface with motor controllers and other devices. This way, teams can interact with their devices via CAN and have access to more complex and in-depth features than traditional PWM control.
Managing Vendor Dependencies
Vendor dependencies are installed on a per-project basis (so each robot project can have its own set of vendor dependencies). Vendor dependencies can be installed «online» or «offline». The «online» functionality is done by downloading the dependencies over the internet, while offline is typically provided by a vendor-specific installer.
Advertencia
If installing a vendor dependency via the «online» mode, make sure to reconnect the computer to the internet and rebuild about every 30 days otherwise the cache will clear, completely deleting the downloaded library install.
Nota
Vendors recommend using their offline installers when available, because the offline installer is typically bundled with additional programs that are extremely useful when working with their devices.
How Does It Work?
How Does It Work? - Java/C++
For Java and C++, a JSON file describing the vendor library is installed on your system to ~/wpilib/YYYY/vendordeps
(where YYYY is the year and ~ is C:\Users\Public
on Windows). This can either be done by an offline installer or the file can be fetched from an online location using the menu item in Visual Studio Code. This file is then used from VS Code to add to the library to each individual project. Vendor library information is managed on a per-project basis to make sure that a project is always pointing to a consistent version of a given vendor library. The libraries themselves are placed in the Maven cache at C:\Users\Public\wpilib\YYYY\maven
. Vendors can place a local copy here with an offline installer (recommended) or require users to be connected to the internet for an initial build to fetch the library from a remote Maven location.
This JSON file allows specification of complex libraries with multiple components (Java, C++, JNI, etc.) and also helps handle some complexities related to simulation. Vendors that choose to provide a remote URL in the JSON also enable users to check for updates from within VS Code.
How Does It Work? - LabVIEW
For LabVIEW teams, there might be a few new Third Party items on various palettes (specifically, one in Actuators, one in Actuators -> Motor Control labeled CAN Motor, and one in Sensors). These correspond to folders in C:\Program Files\National Instruments\LabVIEW 2023\vi.lib\Rock Robotics\WPI\Third Party
In order to install third party libraries for LabVIEW, download the VIs from the vendor (typically via some sort of installer). Then drag and drop the third party VIs into the respective folder mentioned above just like any other VI.
How Does It Work? - Python
Third party libraries are packaged into Python wheels and uploaded to PyPI (if pure python) and/or WPILib’s artifactory. Users can enable them as dependencies either by adding the component name to robotpy_extras
(recommended) or by adding an explicit dependency for the PyPI package in requires
. The dependencies are downloaded when robotpy sync
is executed, and installed on the roboRIO when robotpy deploy
is executed.
Installing Libraries
VS Code
Para añadir una librería vendor que se ha instalado por un instalador fuera de línea, presione Ctrl+Shift+P y escriba WPILib o haga clic en el icono de WPILib en la esquina superior derecha para abrir la Paleta de Comandos de WPILib y empiece a escribir Manage Vendor Libraries, después selecciónelo en el menú. Seleccione la opción de Install new libraries (offline).
Seleccione las bibliotecas deseadas para agregarlas al proyecto marcando la casilla situada junto a cada una y, a continuación, haga clic en OK. El archivo JSON se copiará en la carpeta vendordeps
del proyecto, agregando la biblioteca como una dependencia al proyecto.
In order to install a vendor library in online mode, press Ctrl+Shift+P and type WPILib or click on the WPILib icon in the top right to open the WPILib Command Palette and begin typing Manage Vendor Libraries and select it in the menu, and then click on Install new libraries (online) instead and copy + paste the vendor JSON URL.
Checking for Updates (Offline)
Since dependencies are version managed on a per-project basis, even when installed offline, you will need to Manage Vendor Libraries and select Check for updates (offline) for each project you wish to update.
Checking for Updates (Online)
Parte del archivo JSON que los proveedores pueden completar opcionalmente es una ubicación de actualización en línea. Si una biblioteca tiene una ubicación especificada, ejecutar Check for updates (online) comprobará si hay una versión más nueva de la biblioteca disponible desde la ubicación remota.
Removing a Library Dependency
Para eliminar una dependencia de biblioteca de un proyecto, seleccione Manage Current Libraries del menú Manage Vendor Libraries, marque la casilla de las biblotecas que desee eliminar y haga clic en OK. Estas bibliotecas serán eliminadas como dependencias del proyecto.
Command-Line
También se puede agregar una dependencia de biblioteca de proveedor desde la URL del proveedor a través de la línea de comandos a través de una tarea gradle. Abra una instancia de la línea de comandos en la raíz del proyecto e ingrese gradlew vendordep--url=<url>
donde``<url>`` es la URL JSON del proveedor. Esto agregará el archivo JSON de dependencia de la biblioteca del proveedor a la carpeta vendordeps
del proyecto. Las bibliotecas de proveedores se pueden actualizar de la misma manera.
The vendordep
gradle task can also fetch vendordep JSONs from the user wpilib
folder. To do so, pass FRCLOCAL/Filename.json
as the file URL. For example, gradlew vendordep --url=FRCLOCAL/WPILibNewCommands.json
will fetch the JSON for the command-based framework.
All RobotPy project dependencies are specified in pyproject.toml
. You can add additional vendor-specific dependencies either by:
Adding the component name to
robotpy_extras
Adding the PyPI package name to
requires
Ver también
Bibliotecas
WPILib Libraries
Command Library
The WPILib command library has been split into a vendor library. It is installed by the WPILib installer for offline installation.
PyPI package:
robotpy[commands2]
orrobotpy-commands-v2
In
pyproject.toml
:robotpy_extras = ["commands2"]
Romi Library
A Romi Library has been created to contain several helper classes that are used in the RomiReference
example.
PyPI package:
robotpy[romi]
orrobotpy-romi
In
pyproject.toml
:robotpy_extras = ["romi"]
XRP Library
An XRP Library has been created to contain several helper classes that are used in the XRPReference
example.
PyPI package:
robotpy[xrp]
orrobotpy-xrp
In
pyproject.toml
:robotpy_extras = ["xrp"]
Vendor Libraries
Click these links to visit the vendor site to see whether they offer online installers, offline installers, or both. URLs below are to plug in to the VS Code -> Install New Libraries (online) feature.
CTRE Phoenix Framework - Contains CANcoder, CANifier, CANdle, Pigeon IMU, Pigeon 2.0, Talon FX, Talon SRX, and Victor SPX Libraries and Phoenix Tuner program for configuring CTRE CAN devices
Phoenix (v6): https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2024-latest.json
Phoenix (v5): https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix5-frc2024-latest.json
Nota
All users should use the Phoenix (v6) library. If you also need Phoenix v5 support, additionally install the v5 vendor library.
Vendor’s package:
PyPI package:
robotpy[phoenix6]
orphoenix6
In
pyproject.toml
:robotpy_extras = ["phoenix6"]
Community packages:
PyPI package:
robotpy[phoenix5]
orrobotpy-ctre
In
pyproject.toml
:robotpy_extras = ["phoenix5"]
Redux Robotics ReduxLib - Library for all Redux devices including the Canandcoder and Canandcolor
https://frcsdk.reduxrobotics.com/ReduxLib_2024.json
Not yet available
Playing With Fusion Driver <https://www.playingwithfusion.com/docview.php?docid=1205> __ - Biblioteca para todos los dispositivos PWF, incluido el motor / controlador Venom
https://www.playingwithfusion.com/frc/playingwithfusion2024.json
Community-supported packages:
PyPI package:
robotpy[playingwithfusion]
orrobotpy-playingwithfusion
In
pyproject.toml
:robotpy_extras = ["playingwithfusion"]
Kauai Labs - Bibliotecas para NavX-MXP, NavX-Micro, y Sensor Fusion
https://dev.studica.com/releases/2024/NavX.json
Community-supported packages:
PyPI package:
robotpy[navx]
orrobotpy-navx
In
pyproject.toml
:robotpy_extras = ["navx"]
REV Robotics REVLib - Library for all REV devices including SPARK Flex, SPARK MAX, and Color Sensor V3
https://software-metadata.revrobotics.com/REVLib-2024.json
Community-supported packages:
PyPI package:
robotpy[rev]
orrobotpy-rev
In
pyproject.toml
:robotpy_extras = ["rev"]
Bibliotecas comunitarias
PhotonVision - Biblioteca para el software PhotonVision CV
https://maven.photonvision.org/repository/internal/org/photonvision/photonlib-json/1.0/photonlib-json-1.0.json
PyPI package:
photonlibpy
In
pyproject.toml
:requires = ["photonlibpy"]
PathPlanner - Library for PathPlanner
https://3015rangerrobotics.github.io/pathplannerlib/PathplannerLib.json
PyPI package:
pathplannerlib
In
pyproject.toml
:requires = ["pathplannerlib"]
ChoreoLib - Library for reading and following trajectories generated by Choreo
https://sleipnirgroup.github.io/ChoreoLib/dep/ChoreoLib.json
Not available
YAGSL - Library for Swerve Drives of any configuration
https://broncbotz3481.github.io/YAGSL-Lib/yagsl/yagsl.json
Not available