Nuevo para 2025
Un gran numero de mejoras se han hecho para el ® Software del sistema del control de 2025 para FRC. Este articulo describirá y proveerá un breve resumen de los nuevos cambios y funcionalidades, también un changelog más completo para los cambios de Java/C++ WPILib changes. Este documento solo incluye los cambios más relevantes para los usuarios, la lista completa de cambios puede ser vista en los repositorios de GitHub WPILib
Se recomienda revisar también la lista de known issues.
Importar proyectos de años anteriores
Due to internal GradleRIO changes, it is necessary to update projects from previous years. After Installing WPILib for 2025, any 2024 projects must be imported to be compatible.
Cambios importantes (Java/C++)
Estos cambios contienen algunos de los principales cambios en la biblioteca que es importante que el usuario reconozca. Esto no incluye todos los cambios de ruptura, ver las otras secciones de este documento para más cambios.
El Manager de Dependencias de VS Code ayudara a equipos descubrir e instalar vendordeps.
Añadido Elastic Dashboard una dashboard enfocada para los drivers.
Agregado Loggeo basado en anotación (Epilogue) para Java
Agregado WPIcal herramienta para calibrar Apriltags de FRC para corregir la configuración de la cancha
La Librería de unidades de Java ha sido refactorizado para tener clases de medidas especificas de unidades, en vez una clase genérica
Measure
. La nueva clase de medida tiene nombres más claros(Distance
en vez deMeasure<Distance>
, oLinearAcceleration
en lugar deMeasure<Velocity<Velocity<Distance>>>
), e implementadas operaciones matemáticas para que regresen los resultamos más especificos posibles en vez de uno aleatorioMeasure<?>
.Agregado API de alertas persistentes. Las alertas son mostradas y tienen soporte de dashboards, tales como Shuffleboard y Elastic
Add LED pattern API for easily animating addressable LEDs
Se debe utilizar Java 17 ya que la compatibilidad de origen y destino de Java se ha ampliado a Java 17. Java 17 se utiliza desde 2023.
- Sistemas operativos y arquitecturas compatibles:
Windows 10 y 11, solo de 64 bits. No son compatibles 32 bits y Arm.
Ubuntu 22.04 & 24.04, 64 bit. Otras distribuciones de Linux con glibc >= 2.34 pueden funcionar, pero no tienen soporte
macOS 13.3 o superior, tanto Intel como Arm.
Advertencia
Los siguientes sistemas operativos ya no tendrán soporte: macOS 12 o anteriores, Ubuntu 18.04 & 20.04, Windows 7, Windows 8.1, y cualquier 32-bit Windows.
Nota
Soporte de Windows 10 de Microsoft terminara en Octubre del 2025. Tenemos la intención de continuar el soporte de Windows 10 por la temporada de 2026, pero es posible que tengamos que dejar de brindar soporte en 2027. Los equipos deberían empezar a actualizar a Windows 11.
WPILib
Librería General
Agregado API de alertas persistentes. Las alertas se muestran en dashboards como Shuffleboard o Elastic.
Agregado API de patrón de LED para animar fácilmente las LEDs
Importante: Eliminada la interfaz deprecada de
Gyro
y``Accelerometer``Importante: Eliminada la función deprecada
Notifier.SetHandler
Removido el uso de
RobotInit
en ejemplos. Use el constructor en vez. RobotInit puede que sea deprecada en el futuro.Deprecada
AxisCamera
C++: Agregado
FRC_ReportWarning
Implementado
Sendable
para clases HIDInclude sendable type information in topic metadata
GenericHID.setRumble
: Arreglado Java integer overflowRenombrado ejemplo SysId a SysIdRoutine
Agregado método
Timer.isRunning
Agregado soporte para Java unit para RobotController
Agregada una interfaz funcional para MecanumDriveMotorVoltages y la interfaz vieja fue deprecada
Agregado controlador de motor
Koors40
2025.2.1: Agregada imagen de la cancha 2025 y mapa de las April Tags
2025.3.1: Add april tag map for AndyMark field. See Team Update 12 for more information.
Comandos
Importante: Eliminada la función deprecada
CommandBase
Eliminada la API deprecada
TrapzoidProfileCommand
Importante: Eliminado el método C++ deprecado
TransferOwnership
Deprecado
PIDCommand
,PIDSubsystem
,ProfiledPIDCommand
,ProfiledPIDSubsystem
,TrapezoidProfileSubsystem
Deprecado
TrapezoidProfileCommand
. Utilize TrapezoidProfile directamenteControlador de cache
BooleanEvents
/Triggers
y constructorTriggers
, arreglando problemas siBooleanEvents
/Triggers
son creadas en loopsAgregado método trigger deadband a
CommandGenericHID
Hecho requisitos privados
Agregado
setRumble
yisConnected
aCommandGenericHID
Agregado
StartRun
a la fabrica de comandosRenombrado
deadlineWith
adeadlineFor
Arreglado el truncamiento de mensajes de error de doble composición
Agregado modificador
withDeadline
NetworkTables
Server round robin message processing
Cliente: Solo se conecta a direcciones IPv4
Deprecado setNetworkTablesFlushEnabled
Seteado identidad del cliente de NetworkTables 3
Registro de datos
Agregado Loggeo basado en anotación (Epilogue) para Java
Registro de consola puede ser habilitado con
DatalogManager.logConsoleOutput
DataLog: Agregado ultimo valor y detección de cambio
DataLogManager: Arreglada conducta cuando se tiene espacio bajo
Epilogue: Autogenera mejores nombres de datos por default, no solo nombres crudos de elementos
2025.3.2: Epilogue: Make nonloggable type warnings configurable
Interfaces de hardware
Importante: Reescrito
DutyCycleEncoder
yAnalogEncoder
para simplificar y quitar detección de vuelco que estaba rotaAgregado
getVoltage
aPWMMotorController
Agregado soporte para sensores Sharp IR
Arreglado casos de validación de CAN ID y reportaje para dispositivos CTRE y REV
Reporte de estado de las LEDS de la Radio
Corregida la longitud máxima de la consola de la DS
C++: Refactorizado AnalogTrigger para usar shared_ptr
Agregado
RobotController.GetCommsDisableCount()
Expose sticky hardware and firmware faults in PDH and PH
Fix potential race in CANAPI
Arreglado REV PH lista de solenoides desabilidata
Eliminado CANDeviceInterface
Refactorizada y limpieza de clases ADIS IMU
Propagado
PWMMotorController
stopMotor()
ydisable()
a seguidoresCompressor
: Agregada más datos enviablesArreglado
PowerDistribution.GetAllCurrents()
Arreglado
AsynchronousInterrupt
2025.3.1: AddressableLED: add support for other color orders
Math
Importante: Eliminado constructor TrapezoidProfile deprecado
Importante: Eliminado MatBuilder factory deprecado
Deprecado
RamseteController
. UseLTVUnicycleController
en vezEliminado: Elimado constructor deprecado
MatBuilder
. UseMatBuilder.fill
en vezDiscretizado
SimpleMotorFeedForward
,ArmFeedForward
yElevatorFeedForward
SwerveDrivePoseEstimator
: Arreglado modulo estacionario emitiendo error calculando ánguloAgregada sobrecarga
DCMotor.getCurrent()
aceptando torqueAgregado método
cosineScale
aSwerveModuleState
para optimizar instanciasHecho que limitantes de trayectorias usen
Rectangle2d
yEllipse2d
Agregado soporte para Protobuf y Struct para muchas más clases
Agregado
getAccumulatedError()
aPIDController
Eliminado
WheelPositions
interfaz/conceptoAgregado
kinematics.copyInto()
Agregada clases geométrica para
Rectangle2d
yEllipse2d
Agregado métodos de reinicio a
Odometry
yPoseEstimator
Agregado ArmFeedforward calculate() sobrecarga que toma la corriente y la siguiente velocidad en vez de la aceleración
Arreglada la inicialización de poseEstimate del estimador de pose de C++
Fix PIDController error tolerance getters
Agregado variador de tiempo RKDP
Agregados constructores de geometría 2D a 3D
2025.2.1: Implementada Translation3d.RotateAround
2025.3.1: Add Pose2d and Pose3d RotateAround
2025.3.1: Fix infinite loop in ArmFeedforward::Calculate(xₖ, vₖ, vₖ₊₁)
2025.3.1: Add setters for Feedforward gains
2025.3.2: Make LinearSystemSim setState() update output
2025.3.2: Fix another infinite loop in ArmFeedforward
2025.3.2: Add Translation2d/Translation3d slew rate limiter
2025.3.2: Fix feedforward returning NaN when kᵥ = 0
2025.3.2: Add Debouncer type and time setters
2025.3.2: Fix singularities in Ellipse2d::Nearest()
2025.3.2: Fix UnscentedKalmanFilter and improve math docs
Simulación
Importante: Eliminado input de gearing de
FlywheelSim
yDCMotorSim
y calculate de las entradas LinearSystem y DCMotorAgregado
SendableChooserSim
Arreglado timing de simulación de Java en Windows
Arreglado que los bordes de interrupción sean volteados en sim
No envía datos del joystick en autónomo
Inicializar DIO a verdadero en simulación
Clamp battery voltage to 0
Arreglado: Actualizado widget FMS cuando la DS real este conectada
Fix DS GUI System Joysticks window auto-hiding
Romi/XRP
XRP: Agregado
GetRotation2d
aGyro
XRP: Agregado soporte para Encoder periódico
XRP: Agregada
GetLED
aOnBoardIO
XRP y Romi: Cambiado métodos aplicables de C++ para utilizar unidades de la librería
Unidades de Java
The units library has been refactored to have unit-specific measurement classes instead of a single generic
Measure
class. The new measurement classes have clearer names (Distance
instead ofMeasure<Distance>
, orLinearAcceleration
instead ofMeasure<Velocity<Velocity<Distance>>>
), and implement math operations to return the most specific result types possible instead of a wildcardMeasure<?>
.Añadidas unidades de resistencia
Utilice div en lugar de divide
Add absolute value and copy sign functionality
2025.3.1: Add Measure.per overloads for all known unit types
CameraServer
Actualice a OpenCV 4.10.0
Wake up even if no frames received
Fix wakeup on sink destruction
HttpCamera: Send width/height/fps stream settings
HttpCamera: Modo de auto detección del stream si no esta puesto
Sink: add ability to get most recent frame instead of waiting
2025.2.1: Use frame time in Linux UsbCameraImpl
Util
Importante: Eliminado
RuntimeLoader
Deprecado
RuntimeDetector
Add a simple web server for serving files. Example:
WebServer.start(5800, Filesystem.getDeployDirectory());
Branding
WPILib tiene un nuevo logo
Shuffleboard
Expuesta propiedad de orientación para NumberSlider
Agregado widget the alertas persistentes
Corregida FieldData de/serialization
2025.2.1: Agregada imagen de la cancha de 2025
2025.3.1: After many reports of a variety of issues, many of the resource optimations have been reverted. Performance should be similar to 2024 Shuffleboard.
SmartDashboard
Importante
SmartDashboard no es compatible con Macs Apple Silicon (Arm64).
Advertencia
SmartDashboard esta deprecada y será eliminada para 2027 debido a su uso de Network Tables v3. Usuarios pueden encontrar opciones modernas de dashboard aqui
No han habido cambios mas que actualizaciones de compilador fueron creados para la SmartDashboard
Glass / OutlineViewer / Simulation GUI
Save input after clicking away
Check for struct descriptor size 0
Alineado borde de Field2d e relleno de imagen para imágenes personalizadas
Agregado widget de alertas
Arreglado ancho mínimo del widget
2025.2.1: Agregada imagen de la cancha de 2025
2025.2.1: Hecho seleccionar una cancha de Field2d JSON mas obvio
2025.3.2: Update default field to 2025 for Field2D
GradleRIO
Utilice Gradle 8.11
Utilize scripts de shell para lanzar herramientas en Linux / macOS, desde que macOS ya no incluye python
Agregado método para borrar archivos en la roboRIO que han sido borrados en el directorio deploy Coloque deleteOldFiles a verdadero en el bloque frcStaticFileDeploy
Gradle ahora consolida errores del compilador de Java en la parte inferior de la terminal para ayudar a su descubrimiento https://docs.gradle.org/8.11/release-notes.html#error-warning
2025.3.1: Warn if multiple versions of the same vendordep is found
2025.3.2: Disable code reboot while killing robot process, which was causing high CPU usage every other code reboot for some teams
Instalador de WPILib todo en uno
Actualización a VS Code 1.96.2
Actualizaciones de las extensiones de VS Code: cpptools 1.23.2, javaext 1.38
Utilize scripts de shell para lanzar herramientas en Linux / macOS, desde que macOS ya no incluye python
Solo instale scripts si estos son utilizados por una plataforma especifica
Haga atajos usando el icono de la app
Agregado archivo AppArmor para apps de electron para Ubuntu 24.04, las cuales deben ser instaladas manualmente
Visual Studio Code Extension
Agregada Extensión de control de dependencias para encontrar fácilmente y actualizar librerías de terceros
Agregado comando de limpieza de gradle
Utilize scripts de shell para lanzar herramientas en Linux / macOS, desde que macOS ya no incluye python
Agregada opción para importar proyectos XRP
Importador: Actualizado para cambios de Units Java
Extraída Utilidad WPIlib en mac
Definida java.configuration.runtimes en settings.json para asegurarse que JDK de WPILib sea usada
Mejorada IntelliSense al esconder útiles que son improbables de ser utilizados en programas de robot
RobotBuilder
Removido robotInit en favor de constructor de Robot
SysId
Arreglado el crasheo cuando todos los datos se filtran durante el análisis.
Removido ajustes preestablecidos obsoletos de WPILib y CTRE, renombrado a preestablecidos CTRE
Retardo de medición de retroalimentación de fijación a cero o superior
2025.3.2: Refactor feedback analysis
PathWeaver
Advertencia
PathWeaver es deprecado y sera removido para 2027. Usuarios quiza encuentren Choreo o PathPlanner más útil. Los dos tienen una buena interfaz de usuario y soporte para swerve.
Se arreglo la búsqueda del directorio de implementación cuando el directorio de salida estaba en blanco
2025.2.1: Agregada imagen de la cancha de 2025
AdvantageScope
Actualización a AdvantageScope 2025
Elastic
¡Elastic esta incluido en el instalador! Elastic es una dashboard simple y moderna Lea más aquí.
WPIcal
WPIcal es una nueva herramienta de WPILib para calibrar Apiltags para corregir el errror de la posición de la cancha Lea más aquí.
2025.2.1: Agregado combinador de JSON que permite a los usuarios combinar mutiles layouts de AprilTag