Package-level declarations

Types

Link copied to clipboard
interface Camera

Common interface for all vision cameras (PhotonVision, Limelight, etc.).

Link copied to clipboard
class LimeModule(val name: String) : Camera

The LimeModule class represents a Limelight camera with NetworkTables integration.

Link copied to clipboard

Builder for creating a LimeModule.

Link copied to clipboard
class PhotonModule(cameraName: String, val cameraPos: Transform3d, fieldLayout: AprilTagFieldLayout) : Camera

The PhotonModule class represents a single PhotonVision camera setup with its associated PhotonPoseEstimator and position information.

Link copied to clipboard

Builder for creating a PhotonModule.

Link copied to clipboard
data class VisionMeasurement(val pose: Pose2d, val timestamp: Time, val targetsUsed: Int, val stdDevs: Matrix<N3, N1>, val averageTagDistance: Distance = Units.Meters.of(0.0), val ambiguity: Double = 0.0)

Represents a vision measurement from a camera.

Link copied to clipboard
class VisionSystem : SubsystemBase

The VisionSystem subsystem manages multiple vision cameras for robot pose estimation and target tracking.

Link copied to clipboard

Builder for creating a VisionSystem with DSL syntax.

Functions

Link copied to clipboard
fun SwerveDrive.alignToTarget(camera: Camera, translationSpeed: () -> Double = { 0.0 }, strafeSpeed: () -> Double = { 0.0 }): AlignToTarget

Creates an AlignToTarget command for this swerve drive.

Link copied to clipboard

Extension to easily integrate a vision system with a swerve drive.

Link copied to clipboard

Creates a ResetPoseFromVision command for this swerve drive.

Link copied to clipboard
fun SwerveDrive.trackTarget(camera: Camera, translationSpeed: () -> Double, strafeSpeed: () -> Double): TrackTarget

Creates a TrackTarget command for this swerve drive.

Link copied to clipboard

DSL for creating a VisionSystem with multiple cameras.