diff --git a/schema/Prior.schema b/schema/Prior.schema index 8cf11e6341a115101bc245bd5f2b713313160a67..5556861da585a34130950e32939dcb797b192344 100644 --- a/schema/Prior.schema +++ b/schema/Prior.schema @@ -12,10 +12,7 @@ mode: type: string yaml_type: scalar mandatory: true - options: - - "fix" - - "factor" - - "initial_guess" + options: ["fix", "factor", "initial_guess"] doc: The prior mode can be 'factor' to add an absolute factor (requires 'noise_std'), 'fix' to set the values constant or 'initial_guess' to just set the values dynamic: type: bool diff --git a/schema/problem/Problem.schema b/schema/problem/Problem.schema index 587f7bdb1d4bd005930e6650ea37c01bcaaa3ba1..12519e7b93eb693dcc4d0eb8d5f4c91fb960d414 100644 --- a/schema/problem/Problem.schema +++ b/schema/problem/Problem.schema @@ -1,6 +1,7 @@ problem: tree_manager: type: derived + base: TreeManagerBase.schema yaml_type: scalar mandatory: true doc: Tree manager parameters @@ -18,18 +19,19 @@ problem: #prior: map: type: derived + base: Map.schema yaml_type: scalar mandatory: false doc: The map used in the wolf problem. -solver: - follow: Solver.schema sensors: yaml_type: sequence type: derived + base: SensorSequence.schema mandatory: true doc: A sequence of all the sensors. processors: yaml_type: sequence type: derived + base: ProcessorSequence.schema mandatory: true doc: A sequence of all the processors. diff --git a/schema/processor/ProcessorBase.schema b/schema/processor/ProcessorBase.schema index d5dcf369411efd0fea86f59b845cd7afe8758fc3..0d33f7357bd2333494ff59c763ff3530c9d8da77 100644 --- a/schema/processor/ProcessorBase.schema +++ b/schema/processor/ProcessorBase.schema @@ -4,18 +4,6 @@ name: yaml_type: scalar doc: The processor's name. It has to be unique. -type: - mandatory: true - type: string - yaml_type: scalar - doc: The processor's class name. - -plugin: - mandatory: true - type: string - yaml_type: scalar - doc: The name of the wolf plugin where the processor is implemented. - time_tolerance: mandatory: true type: double diff --git a/schema/processor/ProcessorSequence.schema b/schema/processor/ProcessorSequence.schema new file mode 100644 index 0000000000000000000000000000000000000000..a9e6b75128229de8af68304e1b0811877ead4e94 --- /dev/null +++ b/schema/processor/ProcessorSequence.schema @@ -0,0 +1,13 @@ +follow: ProcessorBase.schema + +type: + mandatory: true + type: string + yaml_type: scalar + doc: The processor's class name. + +plugin: + mandatory: true + type: string + yaml_type: scalar + doc: The name of the wolf plugin where the processor is implemented. \ No newline at end of file diff --git a/schema/sensor/SensorBase.schema b/schema/sensor/SensorBase.schema index 07ebae6f5a36b79f3e18abbcbc41e932a468ded6..f06ab44a7ab230fa3a8a2a249223a3ab15e28647 100644 --- a/schema/sensor/SensorBase.schema +++ b/schema/sensor/SensorBase.schema @@ -2,16 +2,4 @@ name: mandatory: true type: string yaml_type: scalar - doc: The sensor's name. It has to be unique. - -type: - mandatory: true - type: string - yaml_type: scalar - doc: The sensor's class name. - -plugin: - mandatory: true - type: string - yaml_type: scalar - doc: The name of the wolf plugin where the sensor is implemented. \ No newline at end of file + doc: The sensor's name. It has to be unique. \ No newline at end of file diff --git a/schema/sensor/SensorSequence.schema b/schema/sensor/SensorSequence.schema new file mode 100644 index 0000000000000000000000000000000000000000..832d665f270897233d7f4cfe0d529ea9c911740e --- /dev/null +++ b/schema/sensor/SensorSequence.schema @@ -0,0 +1,13 @@ +follow: SensorBase.schema + +type: + mandatory: true + type: string + yaml_type: scalar + doc: The sensor's class name. + +plugin: + mandatory: true + type: string + yaml_type: scalar + doc: The name of the wolf plugin where the sensor is implemented. \ No newline at end of file diff --git a/schema/solver/SolverCeres.schema b/schema/solver/SolverCeres.schema index 81663b67834840d0c91613699d498f054d2fdb65..c262f81cbab2b13bb462380e3cdc30abcb0cb48c 100644 --- a/schema/solver/SolverCeres.schema +++ b/schema/solver/SolverCeres.schema @@ -25,18 +25,18 @@ function_tolerance: mandatory: true type: double yaml_type: scalar - doc: Function tolerance. Convergence criterion. Typical value: 1e-8 + doc: "Function tolerance. Convergence criterion. Typical value: 1e-8" gradient_tolerance: mandatory: true type: double yaml_type: scalar - doc: gradient tolerance. Convergence criterion. Typical value: 1e-8 + doc: "Gradient tolerance. Convergence criterion. Typical value: 1e-8" num_threads: mandatory: true type: unsigned int options: [1, 2, 3, 4] yaml_type: scalar - doc: threads used by ceres. + doc: Amount of hreads used by ceres. use_nonmonotonic_steps: mandatory: false default: false diff --git a/schema/solver/SolverManager.schema b/schema/solver/SolverManager.schema index 5386ee1aef1e8cf049eddfd8a8c3288634368c3d..0bb50994f2ae97685e8969ddef5a1ca6c857a764 100644 --- a/schema/solver/SolverManager.schema +++ b/schema/solver/SolverManager.schema @@ -8,7 +8,7 @@ verbose: type: int yaml_type: scalar options: [0, 1, 2] - doc: Verbosity of the solver. 0: Nothing, 1: Brief report, 2: Full report. + doc: "Verbosity of the solver. 0: Nothing, 1: Brief report, 2: Full report." compute_cov: mandatory: true type: bool @@ -20,7 +20,7 @@ cov_enum: type: int options: [0, 1, 2, 3, 4, 5] yaml_type: scalar - doc: Which covariance matrix blocks have to be computed. 0: All blocks and all cross-covariances. 1: All marginals. 2: Marginals of landmarks and current robot pose plus cross covariances of current robot and all landmarks. 3: Last frame P and V. 4: Last frame P, O, V and T. 5: Last frame P and T. + doc: "Which covariance matrix blocks have to be computed. 0: All blocks and all cross-covariances. 1: All marginals. 2: Marginals of landmarks and current robot pose plus cross covariances of current robot and all landmarks. 3: Last frame P and V. 4: Last frame P, O, V and T. 5: Last frame P and T." cov_period: mandatory: true type: double diff --git a/schema/tree_manager/None.schema b/schema/tree_manager/None.schema new file mode 100644 index 0000000000000000000000000000000000000000..355f0ebec57d032df08c916caf2f4e9cece9631b --- /dev/null +++ b/schema/tree_manager/None.schema @@ -0,0 +1 @@ +follow: TreeManagerBase.schema \ No newline at end of file diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp index 63b8a78f50f33d1f8e5a6046fe24e0731e45c960..d6f838d4fcf18bf385208c9bbf1c840667da6380 100644 --- a/src/problem/problem.cpp +++ b/src/problem/problem.cpp @@ -149,8 +149,12 @@ ProblemPtr Problem::autoSetup(const std::string& _input_yaml_file, const std::ve WOLF_INFO("Loading tree manager parameters"); YAML::Node tree_manager_node = problem_node["tree_manager"]; std::string tree_manager_type = tree_manager_node["type"].as<std::string>(); - problem->setTreeManager(FactoryTreeManager::create(tree_manager_type, tree_manager_node)); - + if (tree_manager_type != "none" and + tree_manager_type != "None" and + tree_manager_type != "NONE") + { + problem->setTreeManager(FactoryTreeManager::create(tree_manager_type, tree_manager_node)); + } // TODO: Prior -- first keyframe // std::string prior_mode = _server.getParam<std::string>("problem/prior/mode"); // assert((prior_mode == "nothing" || prior_mode == "initial_guess" || prior_mode == "fix" || prior_mode == "factor") && "wrong _mode value, it should be: 'nothing', 'initial_guess', 'fix' or 'factor'"); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ad07f30443ed9cb9049bdd656d288a9ca1ff6eb7..c2c6857f74bf9f266b1fe143530c67ef0d1fb404 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -214,6 +214,9 @@ wolf_add_gtest(gtest_tree_manager gtest_tree_manager.cpp) # wolf_add_gtest(gtest_processor_tracker_landmark_dummy gtest_processor_tracker_landmark_dummy.cpp) # target_link_libraries(gtest_processor_tracker_landmark_dummy PUBLIC dummy) +# Schema test +wolf_add_gtest(gtest_schema gtest_schema.cpp) + # # SensorDiffDriveSelfcalib class test # wolf_add_gtest(gtest_sensor_diff_drive gtest_sensor_diff_drive.cpp) diff --git a/test/gtest_schema.cpp b/test/gtest_schema.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7622f578d126980325b73f9cf8863e87aebe793f --- /dev/null +++ b/test/gtest_schema.cpp @@ -0,0 +1,39 @@ +//--------LICENSE_START-------- +// +// Copyright (C) 2020,2021,2022 Institut de Robòtica i Informà tica Industrial, CSIC-UPC. +// Authors: Joan Solà Ortega (jsola@iri.upc.edu) +// All rights reserved. +// +// This file is part of WOLF +// WOLF is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option) any later version. +// +// This program 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 Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +//--------LICENSE_END-------- +#include "core/utils/utils_gtest.h" +#include "core/internal/config.h" +#include "yaml-schema-cpp/yaml_schema.hpp" + +using namespace yaml_schema_cpp; + +std::string wolf_root = _WOLF_ROOT_DIR; + +TEST(Schema, validate_all_schemas) +{ + ASSERT_TRUE(validateAllSchemas({wolf_root})); +} + +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/test/yaml/params1.yaml b/test/yaml/params1.yaml index 5e6431172cc2dc5acc9d5b1acfebe2f41ba0350e..142e0059b8d23480f796a2df21ed2945ad0d9235 100644 --- a/test/yaml/params1.yaml +++ b/test/yaml/params1.yaml @@ -1,41 +1,40 @@ -config: - problem: - frame_structure: "POV" - dimension: 3 - sensors: - - - type: "ODOM 2d" - name: "odom" - plugin: "core" - intrinsic: - k_disp_to_disp: 0.1 - k_rot_to_rot: 0.1 - extrinsic: - pose: [1,2,3] - - - type: "RANGE BEARING" - name: "rb" - plugin: "core" - processors: - - - type: "ODOM 2d" - name: "processor1" - sensor_name: "odom" - plugin: "core" - - - type: "RANGE BEARING" - name: "rb_processor" - sensor_name: "rb" - plugin: "core" - - - type: "ODOM 2d" - name: "my_proc_test" - sensor_name: "odom" - plugin: "core" - follow: "params3.1.yaml" - - - type: "ODOM 3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - follow: "processor_odom_3d.yaml" +problem: + frame_structure: "POV" + dimension: 3 +sensors: + - + type: "ODOM 2d" + name: "odom" + plugin: "core" + intrinsic: + k_disp_to_disp: 0.1 + k_rot_to_rot: 0.1 + extrinsic: + pose: [1,2,3] + - + type: "RANGE BEARING" + name: "rb" + plugin: "core" +processors: + - + type: "ODOM 2d" + name: "processor1" + sensor_name: "odom" + plugin: "core" + - + type: "RANGE BEARING" + name: "rb_processor" + sensor_name: "rb" + plugin: "core" + - + type: "ODOM 2d" + name: "my_proc_test" + sensor_name: "odom" + plugin: "core" + follow: "params3.1.yaml" + - + type: "ODOM 3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + follow: "processor_odom_3d.yaml" diff --git a/test/yaml/params2.yaml b/test/yaml/params2.yaml index 1aadb76249e83db650ee7a3c2d55aa0b0bcce2af..38cfe68d2c4a46e2877a7d7b150c4e359f86183e 100644 --- a/test/yaml/params2.yaml +++ b/test/yaml/params2.yaml @@ -1,38 +1,37 @@ -config: - problem: - frame_structure: "POV" - dimension: 2 - sensors: - - - type: "ODOM 2d" - name: "odom" - plugin: "core" - intrinsic: - k_disp_to_disp: 0.1 - k_rot_to_rot: 0.1 - extrinsic: - pose: [1,2,3] - - - type: "RANGE BEARING" - name: "rb" - plugin: "core" - processors: - - - type: "ODOM 2d" - name: "processor1" - sensor_name: "odom" - plugin: "core" - $mymap: - k1: v1 - k2: v2 - k3: [v3,v4,v5] - - - type: "RANGE BEARING" - name: "rb_processor" - sensor_name: "rb" - plugin: "core" - - - type: "ODOM 2d" - name: "my_proc_test" - sensor_name: "odom" - plugin: "core" +problem: + frame_structure: "POV" + dimension: 2 +sensors: + - + type: "ODOM 2d" + name: "odom" + plugin: "core" + intrinsic: + k_disp_to_disp: 0.1 + k_rot_to_rot: 0.1 + extrinsic: + pose: [1,2,3] + - + type: "RANGE BEARING" + name: "rb" + plugin: "core" +processors: + - + type: "ODOM 2d" + name: "processor1" + sensor_name: "odom" + plugin: "core" + $mymap: + k1: v1 + k2: v2 + k3: [v3,v4,v5] + - + type: "RANGE BEARING" + name: "rb_processor" + sensor_name: "rb" + plugin: "core" + - + type: "ODOM 2d" + name: "my_proc_test" + sensor_name: "odom" + plugin: "core" diff --git a/test/yaml/params3.yaml b/test/yaml/params3.yaml index 14c6271cd071c4d6d2f525e3c1fc8d0341d052d0..168d0d47aae32ac6952827abd63e7a0b6ed7827f 100644 --- a/test/yaml/params3.yaml +++ b/test/yaml/params3.yaml @@ -1,22 +1,21 @@ -config: - problem: - frame_structure: "POV" - dimension: 2 - sensors: - - - type: "ODOM 2d" - name: "odom" - plugin: "core" - intrinsic: - k_disp_to_disp: 0.1 - k_rot_to_rot: 0.1 - extrinsic: - pose: [1,2,3] - processors: - - - type: "ODOM 2d" - name: "my_proc_test" - plugin: "core" - sensor_name: "odom" - extern_params: - follow: "params3.1.yaml" \ No newline at end of file +problem: + frame_structure: "POV" + dimension: 2 +sensors: + - + type: "ODOM 2d" + name: "odom" + plugin: "core" + intrinsic: + k_disp_to_disp: 0.1 + k_rot_to_rot: 0.1 + extrinsic: + pose: [1,2,3] +processors: + - + type: "ODOM 2d" + name: "my_proc_test" + plugin: "core" + sensor_name: "odom" + extern_params: + follow: "params3.1.yaml" \ No newline at end of file diff --git a/test/yaml/params_basic.yaml b/test/yaml/params_basic.yaml index 730381520149ef3d51a8428e4cf08778d869a4ea..2033bb4d09b6617722c3c427d8e2294892c399d9 100644 --- a/test/yaml/params_basic.yaml +++ b/test/yaml/params_basic.yaml @@ -1,35 +1,34 @@ -config: - problem: - dim: 2 - - int_1: -3 - int_2: 0 - int_3: "6" - uint_1: 2 - uint_2: 0 - uint_3: "6" - double_1: 3.6 - double_2: -3 - double_3: "3.6" - string_1: wolf - string_2: "Wolf" - bool_1: true - bool_2: True - bool_3: TRUE - bool_4: "true" - bool_5: false - bool_6: False - bool_7: FALSE - bool_8: "false" - - int_wrong_1: 2.3 - int_wrong_2: "wolf" - int_wrong_3: true - uint_wrong_1: -2 - uint_wrong_2: 3.5 - uint_wrong_3: "wolf" - uint_wrong_4: true - double_wrong_1: "wolf" - double_wrong_2: true - bool_wrong: 1 +problem: + dim: 2 +int_1: -3 +int_2: 0 +int_3: "6" +uint_1: 2 +uint_2: 0 +uint_3: "6" +double_1: 3.6 +double_2: -3 +double_3: "3.6" +string_1: wolf +string_2: "Wolf" +bool_1: true +bool_2: True +bool_3: TRUE +bool_4: "true" +bool_5: false +bool_6: False +bool_7: FALSE +bool_8: "false" + +int_wrong_1: 2.3 +int_wrong_2: "wolf" +int_wrong_3: true +uint_wrong_1: -2 +uint_wrong_2: 3.5 +uint_wrong_3: "wolf" +uint_wrong_4: true +double_wrong_1: "wolf" +double_wrong_2: true +bool_wrong: 1 + diff --git a/test/yaml/params_problem_autosetup.yaml b/test/yaml/params_problem_autosetup.yaml index fdd5b2f39cb7d04fcf2a66b12e42e3dc546de6b2..4f8f593f23cbc301d8a49e96bcacb44f2221530e 100644 --- a/test/yaml/params_problem_autosetup.yaml +++ b/test/yaml/params_problem_autosetup.yaml @@ -1,56 +1,55 @@ -config: - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - type: "None" - map: - type: "MapBase" +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + type: "None" +map: + type: "MapBase" + plugin: "core" +sensors: + - + type: "SensorOdom3d" + name: "odom" plugin: "core" - sensors: - - - type: "SensorOdom3d" - name: "odom" - plugin: "core" - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - states: - P: - state: [1,2,3] - mode: fix - dynamic: false - O: - state: [0,0,0,1] - mode: "fix" - dynamic: false - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: true - max_time_span: 1.95 # seconds - max_buff_length: 999 # motion deltas - dist_traveled: 999 # meters - angle_turned: 999 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.001 - - state_getter: true - state_priority: 1 + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 + states: + P: + state: [1,2,3] + mode: fix + dynamic: false + O: + state: [0,0,0,1] + mode: "fix" + dynamic: false +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: true + max_time_span: 1.95 # seconds + max_buff_length: 999 # motion deltas + dist_traveled: 999 # meters + angle_turned: 999 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.001 + + state_getter: true + state_priority: 1 diff --git a/test/yaml/params_problem_autosetup_no_map.yaml b/test/yaml/params_problem_autosetup_no_map.yaml index 840d40624092f3cce3a779ed69a3aeeeb585dfbc..e7aa7c81b9c030259fead40bb72943b369e9964d 100644 --- a/test/yaml/params_problem_autosetup_no_map.yaml +++ b/test/yaml/params_problem_autosetup_no_map.yaml @@ -1,53 +1,52 @@ -config: - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - type: "None" - sensors: - - - type: "SensorOdom3d" - name: "odom" - plugin: "core" - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - states: - P: - state: [1,2,3] - mode: fix - dynamic: false - O: - state: [0,0,0,1] - mode: "fix" - dynamic: false - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: true - max_time_span: 1.95 # seconds - max_buff_length: 999 # motion deltas - dist_traveled: 999 # meters - angle_turned: 999 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.00111 - - state_getter: true - state_priority: 1 +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + type: "None" +sensors: + - + type: "SensorOdom3d" + name: "odom" + plugin: "core" + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 + states: + P: + state: [1,2,3] + mode: fix + dynamic: false + O: + state: [0,0,0,1] + mode: "fix" + dynamic: false +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: true + max_time_span: 1.95 # seconds + max_buff_length: 999 # motion deltas + dist_traveled: 999 # meters + angle_turned: 999 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.00111 + + state_getter: true + state_priority: 1 diff --git a/test/yaml/params_problem_odom_3d.yaml b/test/yaml/params_problem_odom_3d.yaml index 6c5ed47c2efc2afc3ba960b075e60cea73b58a73..b5e8c455bc8eafe7bc51020878240aadb42aaec5 100644 --- a/test/yaml/params_problem_odom_3d.yaml +++ b/test/yaml/params_problem_odom_3d.yaml @@ -1,46 +1,45 @@ -config: - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - type: "None" - sensors: - - - type: "SensorOdom3d" - name: "odom" - plugin: "core" - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - extrinsic: - pose: [1,2,3,0,0,0,1] - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: true - max_time_span: 1.95 # seconds - max_buff_length: 999 # motion deltas - dist_traveled: 999 # meters - angle_turned: 999 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.00111 - - state_getter: true - state_priority: 1 +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + type: "None" +sensors: + - + type: "SensorOdom3d" + name: "odom" + plugin: "core" + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 + extrinsic: + pose: [1,2,3,0,0,0,1] +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: true + max_time_span: 1.95 # seconds + max_buff_length: 999 # motion deltas + dist_traveled: 999 # meters + angle_turned: 999 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.00111 + + state_getter: true + state_priority: 1 diff --git a/test/yaml/params_tree_manager1.yaml b/test/yaml/params_tree_manager1.yaml index 2cc4c231e5a282fb1742c18cc629b739985ff647..a51cf0355f324260a077161b44c583767b8f246e 100644 --- a/test/yaml/params_tree_manager1.yaml +++ b/test/yaml/params_tree_manager1.yaml @@ -1,58 +1,57 @@ -config: - problem: - frame_structure: "POV" - dimension: 3 - prior: - mode: "factor" - # state: [0,0,0,0,0,0,1,0,0,0] - # cov: [[9,9],.1,0,0,0,0,0,0,0,0, 0,.1,0,0,0,0,0,0,0, 0,0,.1,0,0,0,0,0,0, 0,0,0,.1,0,0,0,0,0, 0,0,0,0,.1,0,0,0,0, 0,0,0,0,0,.1,0,0,0, 0,0,0,0,0,0,.1,0,0, 0,0,0,0,0,0,0,.1,0, 0,0,0,0,0,0,0,0,.1] - $state: - P: [0,0,0] - O: [0,0,0,1] - V: [0,0,0] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - V: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - follow: "tree_manager_dummy.yaml" - sensors: - - - type: "SensorOdom" - name: "odom" - plugin: "core" - states: - P: - mode: fix - state: [1, 2, 3] - dynamic: false - O: - mode: fix - state: [0, 0, 0, 1] - dynamic: false - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: false - max_time_span: 0.2 # seconds - max_buff_length: 10 # motion deltas - dist_traveled: 0.5 # meters - angle_turned: 0.1 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.00111 - - state_getter: true - state_priority: 1 - +problem: + frame_structure: "POV" + dimension: 3 + prior: + mode: "factor" + # state: [0,0,0,0,0,0,1,0,0,0] + # cov: [[9,9],.1,0,0,0,0,0,0,0,0, 0,.1,0,0,0,0,0,0,0, 0,0,.1,0,0,0,0,0,0, 0,0,0,.1,0,0,0,0,0, 0,0,0,0,.1,0,0,0,0, 0,0,0,0,0,.1,0,0,0, 0,0,0,0,0,0,.1,0,0, 0,0,0,0,0,0,0,.1,0, 0,0,0,0,0,0,0,0,.1] + $state: + P: [0,0,0] + O: [0,0,0,1] + V: [0,0,0] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + V: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + follow: "tree_manager_dummy.yaml" +sensors: + - + type: "SensorOdom" + name: "odom" + plugin: "core" + states: + P: + mode: fix + state: [1, 2, 3] + dynamic: false + O: + mode: fix + state: [0, 0, 0, 1] + dynamic: false + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: false + max_time_span: 0.2 # seconds + max_buff_length: 10 # motion deltas + dist_traveled: 0.5 # meters + angle_turned: 0.1 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.00111 + + state_getter: true + state_priority: 1 + diff --git a/test/yaml/params_tree_manager2.yaml b/test/yaml/params_tree_manager2.yaml index 555052c63d6b1aec789f1e1674ed2506e903dd0f..b38cefd896c77a257001ef9d6746d7ce6eaa7367 100644 --- a/test/yaml/params_tree_manager2.yaml +++ b/test/yaml/params_tree_manager2.yaml @@ -1,58 +1,57 @@ -config: - problem: - frame_structure: "POV" - dimension: 3 - prior: - mode: "factor" - # state: [0,0,0,0,0,0,1,0,0,0] - # cov: [[9,9],.1,0,0,0,0,0,0,0,0, 0,.1,0,0,0,0,0,0,0, 0,0,.1,0,0,0,0,0,0, 0,0,0,.1,0,0,0,0,0, 0,0,0,0,.1,0,0,0,0, 0,0,0,0,0,.1,0,0,0, 0,0,0,0,0,0,.1,0,0, 0,0,0,0,0,0,0,.1,0, 0,0,0,0,0,0,0,0,.1] - $state: - P: [0,0,0] - O: [0,0,0,1] - V: [0,0,0] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - V: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - type: "None" - sensors: - - - type: "SensorOdom" - name: "odom" - plugin: "core" - states: - P: - mode: fix - state: [1, 2, 3] - dynamic: false - O: - mode: fix - state: [0, 0, 0, 1] - dynamic: false - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: false - max_time_span: 0.2 # seconds - max_buff_length: 10 # motion deltas - dist_traveled: 0.5 # meters - angle_turned: 0.1 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.00111 - - state_getter: true - state_priority: 1 - +problem: + frame_structure: "POV" + dimension: 3 + prior: + mode: "factor" + # state: [0,0,0,0,0,0,1,0,0,0] + # cov: [[9,9],.1,0,0,0,0,0,0,0,0, 0,.1,0,0,0,0,0,0,0, 0,0,.1,0,0,0,0,0,0, 0,0,0,.1,0,0,0,0,0, 0,0,0,0,.1,0,0,0,0, 0,0,0,0,0,.1,0,0,0, 0,0,0,0,0,0,.1,0,0, 0,0,0,0,0,0,0,.1,0, 0,0,0,0,0,0,0,0,.1] + $state: + P: [0,0,0] + O: [0,0,0,1] + V: [0,0,0] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + V: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + type: "None" +sensors: + - + type: "SensorOdom" + name: "odom" + plugin: "core" + states: + P: + mode: fix + state: [1, 2, 3] + dynamic: false + O: + mode: fix + state: [0, 0, 0, 1] + dynamic: false + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: false + max_time_span: 0.2 # seconds + max_buff_length: 10 # motion deltas + dist_traveled: 0.5 # meters + angle_turned: 0.1 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.00111 + + state_getter: true + state_priority: 1 + diff --git a/test/yaml/params_tree_manager_sliding_window1.yaml b/test/yaml/params_tree_manager_sliding_window1.yaml index 5a6f7cac245fe5cad8d09f733960a787fb7bb6d7..a317726ac748b5353a320517b2c20ac8f7e10597 100644 --- a/test/yaml/params_tree_manager_sliding_window1.yaml +++ b/test/yaml/params_tree_manager_sliding_window1.yaml @@ -1,54 +1,53 @@ -config: - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - follow: "tree_manager_sliding_window1.yaml" - sensors: - - - type: "SensorOdom" - name: "odom" - plugin: "core" - states: - P: - mode: fix - state: [1, 2, 3] - dynamic: false - O: - mode: fix - state: [0, 0, 0, 1] - dynamic: false - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: false - max_time_span: 0.2 # seconds - max_buff_length: 10 # motion deltas - dist_traveled: 0.5 # meters - angle_turned: 0.1 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.00111 - - state_getter: true - state_priority: 1 - +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + follow: "tree_manager_sliding_window1.yaml" +sensors: + - + type: "SensorOdom" + name: "odom" + plugin: "core" + states: + P: + mode: fix + state: [1, 2, 3] + dynamic: false + O: + mode: fix + state: [0, 0, 0, 1] + dynamic: false + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: false + max_time_span: 0.2 # seconds + max_buff_length: 10 # motion deltas + dist_traveled: 0.5 # meters + angle_turned: 0.1 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.00111 + + state_getter: true + state_priority: 1 + diff --git a/test/yaml/params_tree_manager_sliding_window2.yaml b/test/yaml/params_tree_manager_sliding_window2.yaml index 768cedbe454a8df03ff6e67d9ca7231ec2c8e51e..935f0899fe5330a382c8581954fb2166c546de72 100644 --- a/test/yaml/params_tree_manager_sliding_window2.yaml +++ b/test/yaml/params_tree_manager_sliding_window2.yaml @@ -1,54 +1,53 @@ -config: - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - follow: "tree_manager_sliding_window2.yaml" - sensors: - - - type: "SensorOdom" - name: "odom" - plugin: "core" - states: - P: - mode: fix - state: [1, 2, 3] - dynamic: false - O: - mode: fix - state: [0, 0, 0, 1] - dynamic: false - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: false - max_time_span: 0.2 # seconds - max_buff_length: 10 # motion deltas - dist_traveled: 0.5 # meters - angle_turned: 0.1 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.00111 - - state_getter: true - state_priority: 1 - +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + follow: "tree_manager_sliding_window2.yaml" +sensors: + - + type: "SensorOdom" + name: "odom" + plugin: "core" + states: + P: + mode: fix + state: [1, 2, 3] + dynamic: false + O: + mode: fix + state: [0, 0, 0, 1] + dynamic: false + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: false + max_time_span: 0.2 # seconds + max_buff_length: 10 # motion deltas + dist_traveled: 0.5 # meters + angle_turned: 0.1 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.00111 + + state_getter: true + state_priority: 1 + diff --git a/test/yaml/params_tree_manager_sliding_window_dual_rate1.yaml b/test/yaml/params_tree_manager_sliding_window_dual_rate1.yaml index 12d338a330ee4eb3112cbd46a9347b0bb41af258..6a7b21625aac524b72da9fcb35d01573dfd655aa 100644 --- a/test/yaml/params_tree_manager_sliding_window_dual_rate1.yaml +++ b/test/yaml/params_tree_manager_sliding_window_dual_rate1.yaml @@ -1,15 +1,14 @@ -config: - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - follow: "tree_manager_sliding_window_dual_rate1.yaml" \ No newline at end of file +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + follow: "tree_manager_sliding_window_dual_rate1.yaml" \ No newline at end of file diff --git a/test/yaml/params_tree_manager_sliding_window_dual_rate2.yaml b/test/yaml/params_tree_manager_sliding_window_dual_rate2.yaml index 609fb96f585545376756279956377ee6730dbc0d..12f59ad4a91a0adb50f433ace29e4d910a3354e0 100644 --- a/test/yaml/params_tree_manager_sliding_window_dual_rate2.yaml +++ b/test/yaml/params_tree_manager_sliding_window_dual_rate2.yaml @@ -1,21 +1,20 @@ -config: - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - type: "TreeManagerSlidingWindowDualRate" - plugin: "core" - n_frames: 5 - n_frames_recent: 3 - rate_old_frames: 2 - n_fix_first_frames: 0 - viral_remove_empty_parent: false +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + type: "TreeManagerSlidingWindowDualRate" + plugin: "core" + n_frames: 5 + n_frames_recent: 3 + rate_old_frames: 2 + n_fix_first_frames: 0 + viral_remove_empty_parent: false diff --git a/test/yaml/params_tree_manager_sliding_window_dual_rate3.yaml b/test/yaml/params_tree_manager_sliding_window_dual_rate3.yaml index 35cd9bc7da15a010b912df30d195c7be0f563ec2..d7c53fb130fadc88f4de1c5a971b23d2f51fdce9 100644 --- a/test/yaml/params_tree_manager_sliding_window_dual_rate3.yaml +++ b/test/yaml/params_tree_manager_sliding_window_dual_rate3.yaml @@ -1,62 +1,61 @@ -config: - solver: - follow: "solver.yaml" - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - type: "TreeManagerSlidingWindowDualRate" - plugin: "core" - n_frames: 5 - n_frames_recent: 3 - rate_old_frames: 2 - n_fix_first_frames: 2 - viral_remove_empty_parent: true - sensors: - - - type: "SensorOdom" - name: "odom" - plugin: "core" - states: - P: - mode: fix - state: [1, 2, 3] - dynamic: false - O: - mode: fix - state: [0, 0, 0, 1] - dynamic: false - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: true - max_time_span: 0.2 # seconds - max_buff_length: 10 # motion deltas - dist_traveled: 10 # meters - angle_turned: 3.1 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.00111 - - state_getter: true - state_priority: 1 - +solver: + follow: "solver.yaml" +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + type: "TreeManagerSlidingWindowDualRate" + plugin: "core" + n_frames: 5 + n_frames_recent: 3 + rate_old_frames: 2 + n_fix_first_frames: 2 + viral_remove_empty_parent: true +sensors: + - + type: "SensorOdom" + name: "odom" + plugin: "core" + states: + P: + mode: fix + state: [1, 2, 3] + dynamic: false + O: + mode: fix + state: [0, 0, 0, 1] + dynamic: false + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: true + max_time_span: 0.2 # seconds + max_buff_length: 10 # motion deltas + dist_traveled: 10 # meters + angle_turned: 3.1 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.00111 + + state_getter: true + state_priority: 1 + diff --git a/test/yaml/params_tree_manager_sliding_window_dual_rate_baseline.yaml b/test/yaml/params_tree_manager_sliding_window_dual_rate_baseline.yaml index 769d7376a5a5f988a5d817068d589710a49c0afc..e51b8a14692e17fca9ca6d6194be21a7291dd9d7 100644 --- a/test/yaml/params_tree_manager_sliding_window_dual_rate_baseline.yaml +++ b/test/yaml/params_tree_manager_sliding_window_dual_rate_baseline.yaml @@ -1,55 +1,54 @@ -config: - solver: - follow: "solver.yaml" - problem: - frame_structure: "PO" - dimension: 3 - prior: - mode: "factor" - $state: - P: [0,0,0] - O: [0,0,0,1] - $sigma: - P: [0.31, 0.31, 0.31] - O: [0.31, 0.31, 0.31] - time_tolerance: 0.1 - tree_manager: - type: "None" - sensors: - - - type: "SensorOdom" - name: "odom" - plugin: "core" - states: - P: - mode: fix - state: [1, 2, 3] - dynamic: false - O: - mode: fix - state: [0, 0, 0, 1] - dynamic: false - k_disp_to_disp: 0.1 - k_disp_to_rot: 0.1 - k_rot_to_rot: 0.1 - min_disp_var: 0.1 - min_rot_var: 0.1 - processors: - - - type: "ProcessorOdom3d" - name: "my_proc_odom3d" - sensor_name: "odom" - plugin: "core" - apply_loss_function: false - time_tolerance: 0.01 # seconds - keyframe_vote: - voting_active: true - max_time_span: 0.2 # seconds - max_buff_length: 10 # motion deltas - dist_traveled: 10 # meters - angle_turned: 3.1 # radians (1 rad approx 57 deg, approx 60 deg) - - unmeasured_perturbation_std: 0.00111 - - state_getter: true - state_priority: 1 +solver: + follow: "solver.yaml" +problem: + frame_structure: "PO" + dimension: 3 + prior: + mode: "factor" + $state: + P: [0,0,0] + O: [0,0,0,1] + $sigma: + P: [0.31, 0.31, 0.31] + O: [0.31, 0.31, 0.31] + time_tolerance: 0.1 + tree_manager: + type: "None" +sensors: + - + type: "SensorOdom" + name: "odom" + plugin: "core" + states: + P: + mode: fix + state: [1, 2, 3] + dynamic: false + O: + mode: fix + state: [0, 0, 0, 1] + dynamic: false + k_disp_to_disp: 0.1 + k_disp_to_rot: 0.1 + k_rot_to_rot: 0.1 + min_disp_var: 0.1 + min_rot_var: 0.1 +processors: + - + type: "ProcessorOdom3d" + name: "my_proc_odom3d" + sensor_name: "odom" + plugin: "core" + apply_loss_function: false + time_tolerance: 0.01 # seconds + keyframe_vote: + voting_active: true + max_time_span: 0.2 # seconds + max_buff_length: 10 # motion deltas + dist_traveled: 10 # meters + angle_turned: 3.1 # radians (1 rad approx 57 deg, approx 60 deg) + + unmeasured_perturbation_std: 0.00111 + + state_getter: true + state_priority: 1