29 #include "gtest/gtest.h" 33 namespace scan_matching {
36 class RealTimeCorrelativeScanMatcher3DTest :
public ::testing::Test {
38 RealTimeCorrelativeScanMatcher3DTest()
41 Eigen::Quaterniond::Identity()) {
42 for (
const Eigen::Vector3f& point :
43 {Eigen::Vector3f(-3.f, 2.f, 0.f), Eigen::Vector3f(-4.f, 2.f, 0.f),
44 Eigen::Vector3f(-5.f, 2.f, 0.f), Eigen::Vector3f(-6.f, 2.f, 0.f),
45 Eigen::Vector3f(-6.f, 3.f, 1.f), Eigen::Vector3f(-6.f, 4.f, 2.f),
46 Eigen::Vector3f(-7.f, 3.f, 1.f)}) {
54 linear_search_window = 0.3, 55 angular_search_window = math.rad(1.), 56 translation_delta_cost_weight = 1e-1, 57 rotation_delta_cost_weight = 1., 60 new RealTimeCorrelativeScanMatcher3D(
62 parameter_dictionary.get())));
70 LOG(INFO) <<
"Score: " << score;
77 std::unique_ptr<RealTimeCorrelativeScanMatcher3D>
81 TEST_F(RealTimeCorrelativeScanMatcher3DTest, PerfectEstimate) {
86 TEST_F(RealTimeCorrelativeScanMatcher3DTest, AlongX) {
91 TEST_F(RealTimeCorrelativeScanMatcher3DTest, AlongZ) {
96 TEST_F(RealTimeCorrelativeScanMatcher3DTest, AlongXYZ) {
101 TEST_F(RealTimeCorrelativeScanMatcher3DTest, RotationAroundX) {
103 Eigen::Vector3d(-1., 0., 0.),
104 Eigen::AngleAxisd(0.8 / 180. * M_PI, Eigen::Vector3d(1., 0., 0.))));
107 TEST_F(RealTimeCorrelativeScanMatcher3DTest, RotationAroundY) {
109 Eigen::Vector3d(-1., 0., 0.),
110 Eigen::AngleAxisd(0.8 / 180. * M_PI, Eigen::Vector3d(0., 1., 0.))));
113 TEST_F(RealTimeCorrelativeScanMatcher3DTest, RotationAroundYZ) {
115 Eigen::Vector3d(-1., 0., 0.),
116 Eigen::AngleAxisd(0.8 / 180. * M_PI, Eigen::Vector3d(0., 1., 1.))));
std::unique_ptr< LuaParameterDictionary > MakeDictionary(const std::string &code)
sensor::PointCloud point_cloud_
transform::Rigid3d expected_pose_
std::vector< Eigen::Vector3f > PointCloud
proto::RealTimeCorrelativeScanMatcherOptions CreateRealTimeCorrelativeScanMatcherOptions(common::LuaParameterDictionary *const parameter_dictionary)
std::unique_ptr< RealTimeCorrelativeScanMatcher3D > real_time_correlative_scan_matcher_