pub enum FactorKind {
ReprojPointPinhole4 {
pw: [f64; 3],
uv: [f64; 2],
w: f64,
},
ReprojPointPinhole4Dist5 {
pw: [f64; 3],
uv: [f64; 2],
w: f64,
},
ReprojPointPinhole4Dist5Scheimpflug2 {
pw: [f64; 3],
uv: [f64; 2],
w: f64,
},
ReprojPointPinhole4Dist5TwoSE3 {
pw: [f64; 3],
uv: [f64; 2],
w: f64,
},
ReprojPointPinhole4Dist5HandEye {
pw: [f64; 3],
uv: [f64; 2],
w: f64,
base_to_gripper_se3: [f64; 7],
mode: HandEyeMode,
},
ReprojPointPinhole4Dist5HandEyeRobotDelta {
pw: [f64; 3],
uv: [f64; 2],
w: f64,
base_to_gripper_se3: [f64; 7],
mode: HandEyeMode,
},
LaserPlanePixel {
laser_pixel: [f64; 2],
w: f64,
},
LaserLineDist2D {
laser_pixel: [f64; 2],
w: f64,
},
Prior,
Se3TangentPrior {
sqrt_info: [f64; 6],
},
ReprojPointWithDistortion,
}Expand description
Backend-agnostic factor kinds.
Each factor kind implies its parameter layout and residual dimension.
Variants§
ReprojPointPinhole4
Reprojection residual for a pinhole camera with 4 intrinsics and an SE3 pose.
Fields
ReprojPointPinhole4Dist5
Reprojection residual with pinhole intrinsics, Brown-Conrady distortion, and SE3 pose.
Fields
ReprojPointPinhole4Dist5Scheimpflug2
Reprojection with pinhole, distortion, Scheimpflug sensor, and SE3 pose.
Fields
ReprojPointPinhole4Dist5TwoSE3
Reprojection with two composed SE3 transforms for rig extrinsics.
Parameters: [intrinsics, distortion, extr_camera_to_rig, pose_target_to_rig] Transform chain: P_camera = extr^-1 * pose * P_world
Fields
ReprojPointPinhole4Dist5HandEye
Reprojection for hand-eye calibration with robot pose as measurement.
Parameters: [intrinsics, distortion, extr, handeye, target]
Robot pose (base_se3_gripper, gripper in base frame) is stored in the factor as known data.
Fields
mode: HandEyeModeHand-eye mode defining transform chain.
ReprojPointPinhole4Dist5HandEyeRobotDelta
Reprojection for hand-eye calibration with per-view robot pose correction.
Parameters: [intrinsics, distortion, extr, handeye, target, robot_delta]
Robot pose (base_se3_gripper) is stored in the factor as known data.
robot_delta is a 6D se(3) tangent correction applied via exp(delta) * T_B_E.
Fields
mode: HandEyeModeHand-eye mode defining transform chain.
LaserPlanePixel
Laser line pixel constrained to lie on laser plane.
Parameters: [intrinsics, distortion, sensor, pose_cam_to_target, plane_normal, plane_distance] Residual: point-to-plane distance for ray-target intersection point. Note: Target is always planar (Z=0), so 3D point is computed as ray intersection.
LaserLineDist2D
Laser line pixel constrained by line-distance in normalized plane.
Parameters: [intrinsics, distortion, sensor, pose_cam_to_target, plane_normal, plane_distance] Residual: perpendicular distance from normalized pixel to projected laser-target intersection line, scaled by sqrt(fx*fy). Note: Alternative to LaserPlanePixel using normalized plane geometry.
Prior
Placeholder for future prior factors.
Se3TangentPrior
Zero-mean prior on a 6D se(3) tangent vector.
Parameters: [se3_delta] (6D Euclidean).
ReprojPointWithDistortion
Placeholder for future distortion-aware reprojection.
Implementations§
Source§impl FactorKind
impl FactorKind
Sourcepub fn residual_dim(&self) -> usize
pub fn residual_dim(&self) -> usize
Residual dimension implied by the factor.
Trait Implementations§
Source§impl Clone for FactorKind
impl Clone for FactorKind
Source§fn clone(&self) -> FactorKind
fn clone(&self) -> FactorKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FactorKind
impl Debug for FactorKind
Source§impl PartialEq for FactorKind
impl PartialEq for FactorKind
impl StructuralPartialEq for FactorKind
Auto Trait Implementations§
impl Freeze for FactorKind
impl RefUnwindSafe for FactorKind
impl Send for FactorKind
impl Sync for FactorKind
impl Unpin for FactorKind
impl UnsafeUnpin for FactorKind
impl UnwindSafe for FactorKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.