wrap NonlinearEquality2 + python unit test

release/4.3a0
Varun Agrawal 2021-08-23 02:13:24 -04:00
parent d8fe2b2839
commit 366ad84773
2 changed files with 47 additions and 0 deletions

View File

@ -824,4 +824,17 @@ virtual class NonlinearEquality : gtsam::NoiseModelFactor {
void serialize() const; void serialize() const;
}; };
template <T = {gtsam::Point2, gtsam::StereoPoint2, gtsam::Point3, gtsam::Rot2,
gtsam::SO3, gtsam::SO4, gtsam::SOn, gtsam::Rot3, gtsam::Pose2,
gtsam::Pose3, gtsam::Cal3_S2, gtsam::CalibratedCamera,
gtsam::PinholeCamera<gtsam::Cal3_S2>,
gtsam::PinholeCamera<gtsam::Cal3Bundler>,
gtsam::PinholeCamera<gtsam::Cal3Fisheye>,
gtsam::PinholeCamera<gtsam::Cal3Unified>,
gtsam::imuBias::ConstantBias}>
virtual class NonlinearEquality2 : gtsam::NoiseModelFactor {
NonlinearEquality2(Key key1, Key key2, double mu = 1e4);
gtsam::Vector evaluateError(const T& x1, const T& x2);
};
} // namespace gtsam } // namespace gtsam

View File

@ -0,0 +1,34 @@
"""
GTSAM Copyright 2010-2019, Georgia Tech Research Corporation,
Atlanta, Georgia 30332-0415
All Rights Reserved
See LICENSE for the license information
Unit tests for various factors.
Author: Varun Agrawal
"""
import unittest
import numpy as np
import gtsam
from gtsam.utils.test_case import GtsamTestCase
class TestNonlinearEquality2Factor(GtsamTestCase):
"""
Test various instantiations of NonlinearEquality2.
"""
def test_point3(self):
"""Test for Point3 version."""
factor = gtsam.NonlinearEquality2Point3(0, 1)
error = factor.evaluateError(gtsam.Point3(0, 0, 0),
gtsam.Point3(0, 0, 0))
np.testing.assert_allclose(error, np.zeros(3))
if __name__ == "__main__":
unittest.main()