|
19 | 19 | #include <gtsam/base/testLie.h> |
20 | 20 | #include <gtsam/base/lieProxies.h> |
21 | 21 | #include <gtsam/base/TestableAssertions.h> |
| 22 | +#include <gtsam/slam/expressions.h> |
22 | 23 |
|
23 | 24 |
|
24 | 25 | #include <CppUnitLite/TestHarness.h> |
@@ -1301,6 +1302,39 @@ TEST(Pose3, interpolateRtJacobians) { |
1301 | 1302 | } |
1302 | 1303 | } |
1303 | 1304 |
|
| 1305 | +TEST(Pose3, expressionWrappers) { |
| 1306 | + Pose3 X(Rot3::Ypr(0.1,0.2,0.3), Point3(10, 5, -2)); |
| 1307 | + Pose3 Y(Rot3::Ypr(1.1,-2.2,-0.3), Point3(-5, 1, 1)); |
| 1308 | + double t = 0.3; |
| 1309 | + Values vals; |
| 1310 | + vals.insert(0,X); |
| 1311 | + vals.insert(1,Y); |
| 1312 | + vals.insert(2,t); |
| 1313 | + |
| 1314 | + { // interpolate (templated wrapper applies to all classes) |
| 1315 | + Matrix expectedJacobianX, expectedJacobianY, expectedJacobianT; |
| 1316 | + std::vector<Matrix> Hlist = {{},{},{}}; |
| 1317 | + Pose3 expected = interpolate(X, Y, t, expectedJacobianX, expectedJacobianY, expectedJacobianT); |
| 1318 | + Pose3 actual = interpolate(Pose3_(Key(0)), Pose3_(Key(1)), Double_(Key(2))).value(vals, Hlist); |
| 1319 | + |
| 1320 | + EXPECT(assert_equal(expected,actual,1e-6)); |
| 1321 | + EXPECT(assert_equal(expectedJacobianX,Hlist[0],1e-6)); |
| 1322 | + EXPECT(assert_equal(expectedJacobianY,Hlist[1],1e-6)); |
| 1323 | + EXPECT(assert_equal(expectedJacobianT,Hlist[2],1e-6)); |
| 1324 | + } |
| 1325 | + { // interpolateRt (Pose3 specialisation) |
| 1326 | + Matrix expectedJacobianX, expectedJacobianY, expectedJacobianT; |
| 1327 | + std::vector<Matrix> Hlist = {{},{},{}}; |
| 1328 | + Pose3 expected = X.interpolateRt(Y, t, expectedJacobianX, expectedJacobianY, expectedJacobianT); |
| 1329 | + Pose3 actual = interpolateRt(Pose3_(Key(0)), Pose3_(Key(1)), Double_(Key(2))).value(vals, Hlist); |
| 1330 | + |
| 1331 | + EXPECT(assert_equal(expected,actual,1e-6)); |
| 1332 | + EXPECT(assert_equal(expectedJacobianX,Hlist[0],1e-6)); |
| 1333 | + EXPECT(assert_equal(expectedJacobianY,Hlist[1],1e-6)); |
| 1334 | + EXPECT(assert_equal(expectedJacobianT,Hlist[2],1e-6)); |
| 1335 | + } |
| 1336 | +} |
| 1337 | + |
1304 | 1338 | /* ************************************************************************* */ |
1305 | 1339 | TEST(Pose3, Create) { |
1306 | 1340 | Matrix63 actualH1, actualH2; |
|
0 commit comments