Bibliotecas de 3ros

Los equipos que no estén utilizando los controladores de motor PWM o sensores avanzados probablemente necesitaran instalar dependencias externas de proveedores.

What Are Vendor Dependencies?

Una dependencia de proveedor es una manera de agregar software de librería a proyectos de robots. Esta librería puede interactuar con sus dispositivos mediante el CAN y tener acceso a más complejas y detalladas características que un controlador PWM tradicional.

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.

Installing Libraries

VS Code

La barra de actividad en VS Code mostrando el icono de WPILib que abre el administrador de dependencias.

Todas las operaciones de proveedores pueden ser controladas por el administrador de dependencias. Haga clic en el icono de WPILib en la barra de actividad como se muestra arriba para acceder a la interfaz.

La interfaz del administrador de dependencias con las dependencias de proveedores arriba y una lista de las dependencias de proveedores disponibles abajo de esta.

Seleccione las librerías deseadas para añadirlas al proyecto haciendo clic en el botón Install. El archivo JSON será copiado a la carpeta vendordeps  en el proyecto, agregando las librerías como dependencias al proyecto.

Cuando una actualización este disponible para una dependencia de proveedor usted vera que el botón To Latest se hará disponible. Para actualizar usted puede presionar ese botón o Update All para mover todas las dependencias de proveedor a su ultima versión.

El botón con el icono de basura desinstalara las dependencias de proveedor. El menú desplegable muestra en que versión esta instalada pero usted puede cambiar esa a otra versión a update o downgrade a la versión especifica.

Nota

El administrador de dependencias automáticamente construirá su programa cuando pierde el enfoque. Esto te permito usar las dependencias modificadas.

All RobotPy project dependencies are specified in pyproject.toml. You can specify optional WPILib components by adding the component name to components.

Componentes opcionales de WPILib:

components

requiere

Apriltag

apriltag

robotpy-apriltag

Commands

commands2

robotpy-commands-v2

cscore

cscore

robotpy-cscore

Romi

romi

robotpy-romi

XRP

xrp

robotpy-xrp

To add vendor libraries to your project, you must add the PyPI package name to requires.

Componente opcional de proveedor especifico (no todos están disponibles al inicio de la temporada):

Origen

requiere

ChoreoLib

Proveedor

sleipnirgroup-choreolib

CTRE Phoenix 6

Proveedor

phoenix6

CTRE Phoenix 5

Comunidad

robotpy-ctre

PathPlannerLib

Proveedor

robotpy-pathplannerlib

PhotonVision

Proveedor

photonlibpy

Playing With Fusion

Comunidad

robotpy-playingwithfusion

REVLib

Comunidad

robotpy-rev

Studica

Comunidad

robotpy-navx

URCL

Comunidad

robotpy-urcl

When using requires, you should specify a version by appending ==<version> to the package name, e.g. robotpy-commands-v2==2024.0.0. If you do not specify a version, the latest version will be installed.

To check what version of packages are currently installed, run the command pip list.

Note that pinning versions may cause issues with incompatibilities between different components. Unpinning all versions, installing, then re-pinning to the latest set is a good practice when updating.

Pinning versions is a good practice to do after most robot code is written and validated, before and during a competition. However, outside of this window, remaining on the latest version of the components is recommended, as it will ensure you have the latest bug fixes and features.

See https://pip.pypa.io/en/stable/topics/repeatable-installs/ for more information on how to specify versions.

VS Code

Using the Manage Vendor Libraries option of the WPILib Command Palette.

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).

Select the libraries to add.

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.

Checar para actualizaciones (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.

Checar para actualizaciones (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.

Remover una dependencia de librería

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.

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.

How Does It Work?

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 is often done by an offline installer, but may need to be done manually if a .zip of the .json files is provided. 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.

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.

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 them 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.