PoseNode
This module contains PoseNode, a ROS node that estimates camera pose in the global (REP 105 earth) frame of reference.
The reference image is an orthoimage raster from the onboard GIS server. Deep learning based keypoint matching provides a global (absolute) but noisy pose estimate that is drift-free.
The pose is estimated by finding matching keypoints between the query and reference images and then solving the resulting PnP problem.
Classes:
PoseNode(*args, **kwargs) | Estimates camera pose in global (REP 105 earth) frame of reference by finding matching keypoints and solving the PnP problem. |
|---|
class gisnav.core.pose_node.PoseNode(*args, **kwargs)
Bases: Node
Estimates camera pose in global (REP 105 earth) frame of reference by finding matching keypoints and solving the PnP problem.
Class initializer
- Parameters:
- args – Positional arguments to parent
Nodeconstructor - kwargs – Keyword arguments to parent
Nodeconstructor
- args – Positional arguments to parent
Attributes:
CONFIDENCE_THRESHOLD | Confidence threshold for filtering out bad keypoint matches |
|---|---|
MAX_KEYPOINTS | Max number of SIFT keypoints to detect when matching on CPU |
MIN_MATCHES | Minimum number of keypoint matches before attempting pose estimation |
camera_info | Camera info including the intrinsics matrix, or None if unknown |
pose | Camera pose in REP 105 earth frame |
pose_image | Aligned and cropped query, reference, DEM rasters from StereoNode |
CONFIDENCE_THRESHOLD = 0.5
Confidence threshold for filtering out bad keypoint matches
MAX_KEYPOINTS = 1024
Max number of SIFT keypoints to detect when matching on CPU
See also TwistNode.MAX_KEYPOINTS.
Keep this low to increase matching speed especially on resource constrained systems.
MIN_MATCHES = 15
Minimum number of keypoint matches before attempting pose estimation
property camera_info : CameraInfo | None
Camera info including the intrinsics matrix, or None if unknown
property pose : PoseWithCovarianceStamped | None
Camera pose in REP 105 earth frame
This represents the global 3D position and orientation of the camera_optical frame in the REP 105 earth (ECEF) frame. This is obtained via deep matching and is a discontinuous estimate of pose. It is intended to be fused with and complement the continous or smooth twist estimate obtained via shallow matching or visual odometry (VO).
property pose_image : OrthoStereoImage | None
Aligned and cropped query, reference, DEM rasters from StereoNode
This image couple is used for “deep” matching.
GISNav v0.68.1-2-gf2c72641