27 #include "gtest/gtest.h" 30 namespace mapping_2d {
31 namespace scan_matching {
34 class CeresScanMatcherTest :
public ::testing::Test {
36 CeresScanMatcherTest()
38 MapLimits(1.,
Eigen::Vector2d(10., 10.), CellLimits(20, 20))) {
47 occupied_space_weight = 1., 48 translation_weight = 0.1, 49 rotation_weight = 1.5, 50 ceres_solver_options = { 51 use_nonmonotonic_steps = true, 52 max_num_iterations = 50, 56 const proto::CeresScanMatcherOptions options =
65 ceres::Solver::Summary summary;
68 EXPECT_NEAR(0., summary.final_cost, 1e-2) << summary.FullReport();
69 EXPECT_THAT(pose, transform::IsNearly(expected_pose, 1e-2))
79 TEST_F(CeresScanMatcherTest, testPerfectEstimate) {
83 TEST_F(CeresScanMatcherTest, testOptimizeAlongX) {
87 TEST_F(CeresScanMatcherTest, testOptimizeAlongY) {
91 TEST_F(CeresScanMatcherTest, testOptimizeAlongXY) {
ProbabilityGrid probability_grid_
constexpr float kMaxProbability
std::unique_ptr< LuaParameterDictionary > MakeDictionary(const string &code)
sensor::PointCloud point_cloud_
proto::CeresScanMatcherOptions CreateCeresScanMatcherOptions(common::LuaParameterDictionary *const parameter_dictionary)
std::vector< Eigen::Vector3f > PointCloud
std::unique_ptr< CeresScanMatcher > ceres_scan_matcher_