Class PhotonPipelineResult

java.lang.Object
org.photonvision.targeting.PhotonPipelineResult
All Implemented Interfaces:
ProtobufSerializable, WPISerializable, PhotonStructSerializable<PhotonPipelineResult>

public class PhotonPipelineResult extends Object implements ProtobufSerializable, PhotonStructSerializable<PhotonPipelineResult>
Represents a pipeline result from a PhotonCamera.
  • Field Details

  • Constructor Details

    • PhotonPipelineResult

      public PhotonPipelineResult()
      Constructs an empty pipeline result.
    • PhotonPipelineResult

      public PhotonPipelineResult(long sequenceID, long captureTimestampMicros, long publishTimestampMicros, long timeSinceLastPong, List<PhotonTrackedTarget> targets)
      Constructs a pipeline result.
      Parameters:
      sequenceID - The number of frames processed by this camera since boot
      captureTimestampMicros - The time, in uS in the coprocessor's timebase, that the coprocessor captured the image this result contains the targeting info of
      publishTimestampMicros - The time, in uS in the coprocessor's timebase, that the coprocessor published targeting info
      targets - The list of targets identified by the pipeline.
    • PhotonPipelineResult

      public PhotonPipelineResult(long sequenceID, long captureTimestamp, long publishTimestamp, long timeSinceLastPong, List<PhotonTrackedTarget> targets, Optional<MultiTargetPNPResult> result)
      Constructs a pipeline result.
      Parameters:
      sequenceID - The number of frames processed by this camera since boot
      captureTimestamp - The time, in uS in the coprocessor's timebase, that the coprocessor captured the image this result contains the targeting info of
      publishTimestamp - The time, in uS in the coprocessor's timebase, that the coprocessor published targeting info
      targets - The list of targets identified by the pipeline.
      result - Result from multi-target PNP.
    • PhotonPipelineResult

      public PhotonPipelineResult(PhotonPipelineMetadata metadata, List<PhotonTrackedTarget> targets, Optional<MultiTargetPNPResult> result)
  • Method Details

    • getPacketSize

      public int getPacketSize()
      Returns the size of the packet needed to store this pipeline result.
      Returns:
      The size of the packet needed to store this pipeline result.
    • getBestTarget

      public PhotonTrackedTarget getBestTarget()
      Returns the best target in this pipeline result. If there are no targets, this method will return null. The best target is determined by the target sort mode in the PhotonVision UI.
      Returns:
      The best target of the pipeline result.
    • hasTargets

      public boolean hasTargets()
      Returns whether the pipeline has targets.
      Returns:
      Whether the pipeline has targets.
    • getTargets

      public List<PhotonTrackedTarget> getTargets()
      Returns a copy of the vector of targets.

      Returned in the order set by target sort mode.

      Returns:
      A copy of the vector of targets.
    • getMultiTagResult

      public Optional<MultiTargetPNPResult> getMultiTagResult()
      Return the latest multi-target result. Be sure to check getMultiTagResult().estimatedPose.isPresent before using the pose estimate!
    • getTimestampSeconds

      public double getTimestampSeconds()
      Returns the estimated time the frame was taken, in the Time Sync Server's time base (nt::Now). This is calculated using the estiamted offset between Time Sync Server time and local time. The robot shall run a server, so the offset shall be 0.
      Returns:
      The timestamp in seconds
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • getSerde

      public PacketSerde<PhotonPipelineResult> getSerde()
      Specified by:
      getSerde in interface PhotonStructSerializable<PhotonPipelineResult>