From db3a735ff63e454c58b9098ee2b371e1cc526ac8 Mon Sep 17 00:00:00 2001 From: Jeremie Deray <jeremie.deray@pal-robotics.com> Date: Thu, 24 May 2018 16:52:26 +0200 Subject: [PATCH] fix gtest_constraint_autodiff compile --- src/test/gtest_constraint_autodiff.cpp | 27 +++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/test/gtest_constraint_autodiff.cpp b/src/test/gtest_constraint_autodiff.cpp index 52b5d1c12..c5820537f 100644 --- a/src/test/gtest_constraint_autodiff.cpp +++ b/src/test/gtest_constraint_autodiff.cpp @@ -74,7 +74,14 @@ TEST(CaptureAutodiff, ResidualOdom2d) fr1_ptr->addConstrainedBy(constraint_ptr); // EVALUATE - std::vector<Scalar*> states_ptr({fr1_ptr->getPPtr()->getPtr(), fr1_ptr->getOPtr()->getPtr(), fr2_ptr->getPPtr()->getPtr(), fr2_ptr->getOPtr()->getPtr()}); + + Eigen::VectorXs fr1_pstate = fr1_ptr->getPPtr()->getState(); + Eigen::VectorXs fr1_ostate = fr1_ptr->getOPtr()->getState(); + Eigen::VectorXs fr2_pstate = fr2_ptr->getPPtr()->getState(); + Eigen::VectorXs fr2_ostate = fr2_ptr->getOPtr()->getState(); + + std::vector<Scalar*> states_ptr({fr1_pstate.data(), fr1_ostate.data(), fr2_pstate.data(), fr2_ostate.data()}); + double const* const* parameters = states_ptr.data(); Eigen::VectorXs residuals(constraint_ptr->getSize()); constraint_ptr->evaluate(parameters, residuals.data(), nullptr); @@ -111,7 +118,14 @@ TEST(CaptureAutodiff, JacobianOdom2d) fr1_ptr->addConstrainedBy(constraint_ptr); // COMPUTE JACOBIANS - std::vector<const Scalar*> states_ptr({fr1_ptr->getPPtr()->getPtr(), fr1_ptr->getOPtr()->getPtr(), fr2_ptr->getPPtr()->getPtr(), fr2_ptr->getOPtr()->getPtr()}); + + const Eigen::VectorXs fr1_pstate = fr1_ptr->getPPtr()->getState(); + const Eigen::VectorXs fr1_ostate = fr1_ptr->getOPtr()->getState(); + const Eigen::VectorXs fr2_pstate = fr2_ptr->getPPtr()->getState(); + const Eigen::VectorXs fr2_ostate = fr2_ptr->getOPtr()->getState(); + + std::vector<const Scalar*> states_ptr({fr1_pstate.data(), fr1_ostate.data(), fr2_pstate.data(), fr2_ostate.data()}); + std::vector<Eigen::MatrixXs> Jauto; Eigen::VectorXs residuals(constraint_ptr->getSize()); constraint_ptr->evaluate(states_ptr, residuals, Jauto); @@ -186,7 +200,14 @@ TEST(CaptureAutodiff, AutodiffVsAnalytic) fr1_ptr->addConstrainedBy(ctr_analytic_ptr); // COMPUTE JACOBIANS - std::vector<const Scalar*> states_ptr({fr1_ptr->getPPtr()->getPtr(), fr1_ptr->getOPtr()->getPtr(), fr2_ptr->getPPtr()->getPtr(), fr2_ptr->getOPtr()->getPtr()}); + + const Eigen::VectorXs fr1_pstate = fr1_ptr->getPPtr()->getState(); + const Eigen::VectorXs fr1_ostate = fr1_ptr->getOPtr()->getState(); + const Eigen::VectorXs fr2_pstate = fr2_ptr->getPPtr()->getState(); + const Eigen::VectorXs fr2_ostate = fr2_ptr->getOPtr()->getState(); + + std::vector<const Scalar*> states_ptr({fr1_pstate.data(), fr1_ostate.data(), fr2_pstate.data(), fr2_ostate.data()}); + std::vector<Eigen::MatrixXs> Jautodiff, Janalytic; Eigen::VectorXs residuals(ctr_autodiff_ptr->getSize()); clock_t t = clock(); -- GitLab