// This file is part of SVO - Semi-direct Visual Odometry. // // Copyright (C) 2014 Christian Forster // (Robotics and Perception Group, University of Zurich, Switzerland). // // SVO is free software: you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the Free Software // Foundation, either version 3 of the License, or any later version. // // SVO is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . #ifdef SVO_USE_ROS #include #endif #include namespace svo { Config::Config() : #ifdef SVO_USE_ROS trace_name(vk::getParam("svo/trace_name", "svo")), trace_dir(vk::getParam("svo/trace_dir", "/tmp")), n_pyr_levels(vk::getParam("svo/n_pyr_levels", 3)), use_imu(vk::getParam("svo/use_imu", false)), core_n_kfs(vk::getParam("svo/core_n_kfs", 3)), map_scale(vk::getParam("svo/map_scale", 1.0)), grid_size(vk::getParam("svo/grid_size", 30)), init_min_disparity(vk::getParam("svo/init_min_disparity", 50.0)), init_min_tracked(vk::getParam("svo/init_min_tracked", 50)), init_min_inliers(vk::getParam("svo/init_min_inliers", 40)), klt_max_level(vk::getParam("svo/klt_max_level", 4)), klt_min_level(vk::getParam("svo/klt_min_level", 2)), reproj_thresh(vk::getParam("svo/reproj_thresh", 2.0)), poseoptim_thresh(vk::getParam("svo/poseoptim_thresh", 2.0)), poseoptim_num_iter(vk::getParam("svo/poseoptim_num_iter", 10)), structureoptim_max_pts(vk::getParam("svo/structureoptim_max_pts", 20)), structureoptim_num_iter(vk::getParam("svo/structureoptim_num_iter", 5)), loba_thresh(vk::getParam("svo/loba_thresh", 2.0)), loba_robust_huber_width(vk::getParam("svo/loba_robust_huber_width", 1.0)), loba_num_iter(vk::getParam("svo/loba_num_iter", 0)), kfselect_mindist(vk::getParam("svo/kfselect_mindist", 0.12)), triang_min_corner_score(vk::getParam("svo/triang_min_corner_score", 20.0)), triang_half_patch_size(vk::getParam("svo/triang_half_patch_size", 4)), subpix_n_iter(vk::getParam("svo/subpix_n_iter", 10)), max_n_kfs(vk::getParam("svo/max_n_kfs", 10)), img_imu_delay(vk::getParam("svo/img_imu_delay", 0.0)), max_fts(vk::getParam("svo/max_fts", 120)), quality_min_fts(vk::getParam("svo/quality_min_fts", 50)), quality_max_drop_fts(vk::getParam("svo/quality_max_drop_fts", 40)), ACC_noise(vk::getParam("svo/ACC_noise", 1e-4)), GYO_noise(vk::getParam("svo/GYO_noise", 1e-4)), iuc(vk::getParam("svo/IUC", 1e-1)), abc(vk::getParam("svo/ABC", 1e-1)), gbc(vk::getParam("svo/GBC", 1e-1)), ebp(vk::getParam("svo/EBP", 1e-2)), nrp(vk::getParam("svo/NRP", 1e-5)) #else trace_name("svo"), trace_dir("/tmp"), n_pyr_levels(3), use_imu(false), core_n_kfs(3), map_scale(1.0), grid_size(25), init_min_disparity(50.0), init_min_tracked(50), init_min_inliers(40), klt_max_level(4), klt_min_level(2), reproj_thresh(2.0), poseoptim_thresh(2.0), poseoptim_num_iter(10), structureoptim_max_pts(20), structureoptim_num_iter(5), loba_thresh(2.0), loba_robust_huber_width(1.0), loba_num_iter(0), kfselect_mindist(0.12), triang_min_corner_score(20.0), triang_half_patch_size(4), subpix_n_iter(10), max_n_kfs(0), img_imu_delay(0.0), max_fts(120), quality_min_fts(50), quality_max_drop_fts(40) #endif {} Config& Config::getInstance() { static Config instance; // Instantiated on first use and guaranteed to be destroyed return instance; } } // namespace svo