Class PhotonPipelineResult

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

Represents a pipeline result from a PhotonCamera.
  • Field Details

  • Constructor Details

    • 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

  • 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

      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

      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

      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 estimated 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

      Specified by:
      getSerde in interface PhotonStructSerializable<PhotonPipelineResult>