diff --git a/CMakeLists.txt b/CMakeLists.txt index 932c337910234b4d68a58142d549dcd88241abd3..fb83ccf5399baef48a2267f0657cf68d8bbd60db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -216,15 +216,15 @@ SET(HDRS_STATE_BLOCK include/core/state_block/local_parametrization_quaternion.h include/core/state_block/state_angle.h include/core/state_block/state_block.h - include/core/state_block/state_homogeneous_3D.h + include/core/state_block/state_homogeneous_3d.h include/core/state_block/state_quaternion.h ) SET(HDRS_CAPTURE include/core/capture/capture_base.h include/core/capture/capture_motion.h - include/core/capture/capture_odom_2D.h - include/core/capture/capture_odom_3D.h + include/core/capture/capture_odom_2d.h + include/core/capture/capture_odom_3d.h include/core/capture/capture_pose.h include/core/capture/capture_velocity.h include/core/capture/capture_void.h @@ -233,25 +233,25 @@ SET(HDRS_CAPTURE SET(HDRS_FACTOR include/core/factor/factor_analytic.h include/core/factor/factor_autodiff.h - include/core/factor/factor_autodiff_distance_3D.h + include/core/factor/factor_autodiff_distance_3d.h include/core/factor/factor_base.h include/core/factor/factor_block_absolute.h include/core/factor/factor_block_difference.h include/core/factor/factor_diff_drive.h - include/core/factor/factor_odom_2D.h - include/core/factor/factor_odom_2D_closeloop.h - include/core/factor/factor_odom_2D_analytic.h - include/core/factor/factor_odom_3D.h - include/core/factor/factor_pose_2D.h - include/core/factor/factor_pose_3D.h + include/core/factor/factor_odom_2d.h + include/core/factor/factor_odom_2d_closeloop.h + include/core/factor/factor_odom_2d_analytic.h + include/core/factor/factor_odom_3d.h + include/core/factor/factor_pose_2d.h + include/core/factor/factor_pose_3d.h include/core/factor/factor_quaternion_absolute.h - include/core/factor/factor_relative_2D_analytic.h + include/core/factor/factor_relative_2d_analytic.h ) SET(HDRS_FEATURE include/core/feature/feature_base.h include/core/feature/feature_match.h include/core/feature/feature_motion.h - include/core/feature/feature_odom_2D.h + include/core/feature/feature_odom_2d.h include/core/feature/feature_pose.h ) SET(HDRS_LANDMARK @@ -259,6 +259,7 @@ SET(HDRS_LANDMARK include/core/landmark/landmark_match.h ) SET(HDRS_PROCESSOR + include/core/processor/is_motion.h include/core/processor/motion_buffer.h include/core/processor/processor_base.h include/core/processor/processor_diff_drive.h @@ -266,8 +267,8 @@ SET(HDRS_PROCESSOR include/core/processor/processor_logging.h include/core/processor/processor_loopclosure.h include/core/processor/processor_motion.h - include/core/processor/processor_odom_2D.h - include/core/processor/processor_odom_3D.h + include/core/processor/processor_odom_2d.h + include/core/processor/processor_odom_3d.h include/core/processor/processor_tracker.h include/core/processor/processor_tracker_feature.h include/core/processor/processor_tracker_landmark.h @@ -277,8 +278,8 @@ SET(HDRS_SENSOR include/core/sensor/sensor_base.h include/core/sensor/sensor_diff_drive.h include/core/sensor/sensor_factory.h - include/core/sensor/sensor_odom_2D.h - include/core/sensor/sensor_odom_3D.h + include/core/sensor/sensor_odom_2d.h + include/core/sensor/sensor_odom_3d.h ) SET(HDRS_SOLVER include/core/solver/solver_manager.h @@ -325,8 +326,8 @@ SET(SRCS_UTILS SET(SRCS_CAPTURE src/capture/capture_base.cpp src/capture/capture_motion.cpp - src/capture/capture_odom_2D.cpp - src/capture/capture_odom_3D.cpp + src/capture/capture_odom_2d.cpp + src/capture/capture_odom_3d.cpp src/capture/capture_pose.cpp src/capture/capture_velocity.cpp src/capture/capture_void.cpp @@ -339,7 +340,7 @@ SET(SRCS_FACTOR SET(SRCS_FEATURE src/feature/feature_base.cpp src/feature/feature_motion.cpp - src/feature/feature_odom_2D.cpp + src/feature/feature_odom_2d.cpp src/feature/feature_pose.cpp ) SET(SRCS_LANDMARK @@ -351,8 +352,8 @@ SET(SRCS_PROCESSOR src/processor/processor_diff_drive.cpp src/processor/processor_loopclosure.cpp src/processor/processor_motion.cpp - src/processor/processor_odom_2D.cpp - src/processor/processor_odom_3D.cpp + src/processor/processor_odom_2d.cpp + src/processor/processor_odom_3d.cpp src/processor/processor_tracker.cpp src/processor/processor_tracker_feature.cpp src/processor/processor_tracker_landmark.cpp @@ -361,16 +362,16 @@ SET(SRCS_PROCESSOR SET(SRCS_SENSOR src/sensor/sensor_base.cpp src/sensor/sensor_diff_drive.cpp - src/sensor/sensor_odom_2D.cpp - src/sensor/sensor_odom_3D.cpp + src/sensor/sensor_odom_2d.cpp + src/sensor/sensor_odom_3d.cpp ) SET(SRCS_SOLVER src/solver/solver_manager.cpp ) SET(SRCS_YAML - src/yaml/processor_odom_3D_yaml.cpp - src/yaml/sensor_odom_2D_yaml.cpp - src/yaml/sensor_odom_3D_yaml.cpp + src/yaml/processor_odom_3d_yaml.cpp + src/yaml/sensor_odom_2d_yaml.cpp + src/yaml/sensor_odom_3d_yaml.cpp ) #OPTIONALS #optional HDRS and SRCS diff --git a/demos/demo_analytic_autodiff_factor.cpp b/demos/demo_analytic_autodiff_factor.cpp index 7d0fdbec689cba9f912e8e26c3c823bb6c29cb23..6325f785bd2cbfab046f31b73e419c01adf3d7ff 100644 --- a/demos/demo_analytic_autodiff_factor.cpp +++ b/demos/demo_analytic_autodiff_factor.cpp @@ -57,9 +57,9 @@ int main(int argc, char** argv) std::map<unsigned int, FrameBasePtr> index_2_frame_ptr_analytic; // Wolf problem - ProblemPtr wolf_problem_autodiff = new Problem(FRM_PO_2D); - ProblemPtr wolf_problem_analytic = new Problem(FRM_PO_2D); - SensorBasePtr sensor = new SensorBase("ODOM 2D", std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(1)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), 2); + ProblemPtr wolf_problem_autodiff = new Problem(FRM_PO_2d); + ProblemPtr wolf_problem_analytic = new Problem(FRM_PO_2d); + SensorBasePtr sensor = new SensorBase("ODOM 2d", std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(1)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), 2); // Ceres wrapper ceres::Solver::Options ceres_options; @@ -242,7 +242,7 @@ int main(int argc, char** argv) FrameBasePtr frame_new_ptr_autodiff = index_2_frame_ptr_autodiff[edge_new]; frame_new_ptr_autodiff->addCapture(capture_ptr_autodiff); capture_ptr_autodiff->addFeature(feature_ptr_autodiff); - FactorOdom2D* factor_ptr_autodiff = new FactorOdom2D(feature_ptr_autodiff, frame_old_ptr_autodiff); + FactorOdom2d* factor_ptr_autodiff = new FactorOdom2d(feature_ptr_autodiff, frame_old_ptr_autodiff); feature_ptr_autodiff->addFactor(factor_ptr_autodiff); //std::cout << "Added autodiff edge! " << factor_ptr_autodiff->id() << " from vertex " << factor_ptr_autodiff->getCapture()->getFrame()->id() << " to " << factor_ptr_autodiff->getFrameOther()->id() << std::endl; @@ -255,7 +255,7 @@ int main(int argc, char** argv) FrameBasePtr frame_new_ptr_analytic = index_2_frame_ptr_analytic[edge_new]; frame_new_ptr_analytic->addCapture(capture_ptr_analytic); capture_ptr_analytic->addFeature(feature_ptr_analytic); - FactorOdom2DAnalytic* factor_ptr_analytic = new FactorOdom2DAnalytic(feature_ptr_analytic, frame_old_ptr_analytic); + FactorOdom2dAnalytic* factor_ptr_analytic = new FactorOdom2dAnalytic(feature_ptr_analytic, frame_old_ptr_analytic); feature_ptr_analytic->addFactor(factor_ptr_analytic); //std::cout << "Added analytic edge! " << factor_ptr_analytic->id() << " from vertex " << factor_ptr_analytic->getCapture()->getFrame()->id() << " to " << factor_ptr_analytic->getFrameOther()->id() << std::endl; //std::cout << "vector " << factor_ptr_analytic->getMeasurement().transpose() << std::endl; diff --git a/demos/demo_map_yaml.cpp b/demos/demo_map_yaml.cpp index c56eba791c994cacc04577154f5720f0b81ce486..87023e52856c9e3ba937882cd5311e05260b507b 100644 --- a/demos/demo_map_yaml.cpp +++ b/demos/demo_map_yaml.cpp @@ -8,7 +8,7 @@ #include "core/common/wolf.h" #include "core/problem/problem.h" #include "core/map/map_base.h" -#include "core/landmark/landmark_polyline_2D.h" +#include "core/landmark/landmark_polyline_2d.h" #include "core/landmark/landmark_AHP.h" #include "core/state_block/state_block.h" #include "core/yaml/yaml_conversion.h" @@ -22,9 +22,9 @@ void print(MapBase& _map) { std::cout << "Lmk ID: " << lmk_ptr->id(); std::cout << "\nLmk type: " << lmk_ptr->getType(); - if (lmk_ptr->getType() == "POLYLINE 2D") + if (lmk_ptr->getType() == "POLYLINE 2d") { - LandmarkPolyline2DPtr poly_ptr = std::static_pointer_cast<LandmarkPolyline2D>(lmk_ptr); + LandmarkPolyline2dPtr poly_ptr = std::static_pointer_cast<LandmarkPolyline2d>(lmk_ptr); std::cout << "\npos: " << poly_ptr->getP()->getState().transpose() << " -- fixed: " << poly_ptr->getP()->isFixed(); std::cout << "\nori: " << poly_ptr->getO()->getState().transpose() << " -- fixed: " << poly_ptr->getO()->isFixed(); std::cout << "\nn points: " << poly_ptr->getNPoints(); diff --git a/demos/demo_wolf_imported_graph.cpp b/demos/demo_wolf_imported_graph.cpp index 40646846123e3fcd0bf09b27e20d0c03f27d1165..f19095d3400f9c08b9633e6486398a0d059bc707 100644 --- a/demos/demo_wolf_imported_graph.cpp +++ b/demos/demo_wolf_imported_graph.cpp @@ -61,9 +61,9 @@ int main(int argc, char** argv) std::map<FrameBasePtr, unsigned int> frame_ptr_2_index_prun; // Wolf problem - ProblemPtr wolf_problem_full = new Problem(FRM_PO_2D); - ProblemPtr wolf_problem_prun = new Problem(FRM_PO_2D); - SensorBasePtr sensor = new SensorBase("ODOM 2D", std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(1)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), 2); + ProblemPtr wolf_problem_full = new Problem(FRM_PO_2d); + ProblemPtr wolf_problem_prun = new Problem(FRM_PO_2d); + SensorBasePtr sensor = new SensorBase("ODOM 2d", std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(1)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), 2); Eigen::SparseMatrix<double> Lambda(0,0); @@ -259,8 +259,8 @@ int main(int argc, char** argv) frame_new_ptr_prun->addCapture(capture_ptr_prun); capture_ptr_full->addFeature(feature_ptr_full); capture_ptr_prun->addFeature(feature_ptr_prun); - FactorOdom2D* factor_ptr_full = new FactorOdom2D(feature_ptr_full, frame_old_ptr_full); - FactorOdom2D* factor_ptr_prun = new FactorOdom2D(feature_ptr_prun, frame_old_ptr_prun); + FactorOdom2d* factor_ptr_full = new FactorOdom2d(feature_ptr_full, frame_old_ptr_full); + FactorOdom2d* factor_ptr_prun = new FactorOdom2d(feature_ptr_prun, frame_old_ptr_prun); feature_ptr_full->addFactor(factor_ptr_full); feature_ptr_prun->addFactor(factor_ptr_prun); //std::cout << "Added edge! " << factor_ptr_prun->id() << " from vertex " << factor_ptr_prun->getCapture()->getFrame()->id() << " to " << factor_ptr_prun->getFrameTo()->id() << std::endl; diff --git a/demos/processor_odom_3D.yaml b/demos/processor_odom_3d.yaml similarity index 75% rename from demos/processor_odom_3D.yaml rename to demos/processor_odom_3d.yaml index 89e9d00f268fd341368f1c4063e4685985072750..2526e5dde7b256431a3f2fa5735b398a51faadb7 100644 --- a/demos/processor_odom_3D.yaml +++ b/demos/processor_odom_3d.yaml @@ -1,4 +1,4 @@ -type: "ODOM 3D" # This must match the KEY used in the SensorFactory. Otherwise it is an error. +type: "ProcessorOdom3d" # This must match the KEY used in the SensorFactory. Otherwise it is an error. time_tolerance: 0.01 # seconds unmeasured_perturbation_std: 0.001 diff --git a/test/yaml/sensor_odom_3D.yaml b/demos/sensor_odom_3d.yaml similarity index 77% rename from test/yaml/sensor_odom_3D.yaml rename to demos/sensor_odom_3d.yaml index 9fb43d4c30c0f5c01757362f6122d0cba98b14c5..58db1c088fbc80339a78ba815fddbaf69674d3b6 100644 --- a/test/yaml/sensor_odom_3D.yaml +++ b/demos/sensor_odom_3d.yaml @@ -1,4 +1,4 @@ -type: "SensorOdom3D" # This must match the KEY used in the SensorFactory. Otherwise it is an error. +type: "SensorOdom3d" # This must match the KEY used in the SensorFactory. Otherwise it is an error. k_disp_to_disp: 0.02 # m^2 / m k_disp_to_rot: 0.02 # rad^2 / m diff --git a/demos/sensor_odom_3D_HQ.yaml b/demos/sensor_odom_3d_HQ.yaml similarity index 51% rename from demos/sensor_odom_3D_HQ.yaml rename to demos/sensor_odom_3d_HQ.yaml index 0d6b65cab555e1ced3c6443faf8ade4c3ab95ea0..8515eb0cb24f711b29b88196a7f764895c0b6ff6 100644 --- a/demos/sensor_odom_3D_HQ.yaml +++ b/demos/sensor_odom_3d_HQ.yaml @@ -1,7 +1,7 @@ -type: "ODOM 3D" # This must match the KEY used in the SensorFactory. Otherwise it is an error. +type: "SensorOdom3d" # This must match the KEY used in the SensorFactory. Otherwise it is an error. k_disp_to_disp: 0.000001 # m^2 / m k_disp_to_rot: 0.000001 # rad^2 / m k_rot_to_rot: 0.000001 # rad^2 / rad min_disp_var: 0.00000001 # m^2 -min_rot_var: 0.00000001 # rad^2 \ No newline at end of file +min_rot_var: 0.00000001 # rad^2 diff --git a/doc/interpolate.rtf b/doc/interpolate.rtf index f64c7d77940675ec18b62d6428fe42eaaa376c58..4aea11adf1deb3f7a4e1093555ff799a6c1eb929 100644 --- a/doc/interpolate.rtf +++ b/doc/interpolate.rtf @@ -179,12 +179,12 @@ \cf2 *\cf0 \ \cf2 * For simple pose increments, we can use a local implementation:\cf0 \ \cf2 *\cf0 \ -\cf2 * - for 2D\cf0 \ +\cf2 * - for 2d\cf0 \ \cf2 *\cf0 \ \cf2 * dp_S = dR_I.tr * (1-tau)*dp_F // dR is the rotation matrix of the angle delta '\ul da\ulnone '; '\ul tr\ulnone ' is transposed\cf0 \ \cf2 * da_S = dR_I.tr * (1-tau)*da_F\cf0 \ \cf2 *\cf0 \ -\cf2 * - for 3D\cf0 \ +\cf2 * - for 3d\cf0 \ \cf2 *\cf0 \ \cf2 * dp_S = dq_I.conj * (1-tau)*dp_F // \ul dq\ulnone is a \ul quaternion\ulnone ; '\ul conj\ulnone ' is the \ul conjugate\ulnone \ul quaternion\ulnone .\cf0 \ \cf2 * dq_S = dq_I.conj * dq_F\cf0 \ @@ -206,14 +206,14 @@ \cf2 *\cf0 \ \cf2 * ### Examples\cf0 \ \cf2 *\cf0 \ -\cf2 * #### Example 1: For 2D poses\cf0 \ +\cf2 * #### Example 1: For 2d poses\cf0 \ \cf2 *\cf0 \ \cf2 *\cf0 \ \cf2 * t_I = _ts // time stamp of the interpolated motion\cf0 \ \cf2 * tau = (t_I - t_R) / (t_F - t_R) // interpolation factor\cf0 \ \cf2 *\cf0 \ \cf2 * dp_I = tau*dp_F // \ul dp\ulnone is a 2-vector\cf0 \ -\cf2 * da_I = tau*da_F // \ul da\ulnone is an angle, for 2D poses\cf0 \ +\cf2 * da_I = tau*da_F // \ul da\ulnone is an angle, for 2d poses\cf0 \ \cf2 *\cf0 \ \cf2 * D_I = deltaPlusDelta(D_R, d_I)\cf0 \ \cf2 *\cf0 \ @@ -222,7 +222,7 @@ \cf2 *\cf0 \ \cf2 * D_S = D_F\cf0 \ \cf2 *\cf0 \ -\cf2 * #### Example 2: For 3D poses\cf0 \ +\cf2 * #### Example 2: For 3d poses\cf0 \ \cf2 *\cf0 \ \cf2 * Orientation is in \ul quaternion\ulnone form, which is the best for interpolation using `\ul slerp\ulnone ()` :\cf0 \ \cf2 *\cf0 \ @@ -230,7 +230,7 @@ \cf2 * tau = (t_I - t_R) / (t_F - t_R) // interpolation factor\cf0 \ \cf2 *\cf0 \ \cf2 * dp_I = tau*dp_F // \ul dp\ulnone is a 3-vector\cf0 \ -\cf2 * dq_I = 1.\ul slerp\ulnone (tau, dq_F) // '1' is the identity \ul quaternion\ulnone ; \ul slerp\ulnone () interpolates 3D rotation.\cf0 \ +\cf2 * dq_I = 1.\ul slerp\ulnone (tau, dq_F) // '1' is the identity \ul quaternion\ulnone ; \ul slerp\ulnone () interpolates 3d rotation.\cf0 \ \cf2 *\cf0 \ \cf2 * D_I = deltaPlusDelta(D_R, d_I)\cf0 \ \cf2 *\cf0 \ @@ -260,4 +260,4 @@ \cf2 * DC_S = DC_F\cf0 \ \cf2 *\cf0 \ \cf2 */\cf0 \ -} \ No newline at end of file +} diff --git a/hello_wolf/CMakeLists.txt b/hello_wolf/CMakeLists.txt index 8d1114b65c1f81eb7fecf443abeeff16c723d6d3..bf223af61a3358cfc458d8360c1b07e7ab1aff01 100644 --- a/hello_wolf/CMakeLists.txt +++ b/hello_wolf/CMakeLists.txt @@ -7,7 +7,7 @@ SET(HDRS_PROCESSOR ${HDRS_PROCESSOR} ${CMAKE_CURRENT_SOURCE_DIR}/factor_bearing.h ${CMAKE_CURRENT_SOURCE_DIR}/factor_range_bearing.h ${CMAKE_CURRENT_SOURCE_DIR}/feature_range_bearing.h - ${CMAKE_CURRENT_SOURCE_DIR}/landmark_point_2D.h + ${CMAKE_CURRENT_SOURCE_DIR}/landmark_point_2d.h ${CMAKE_CURRENT_SOURCE_DIR}/processor_range_bearing.h ${CMAKE_CURRENT_SOURCE_DIR}/sensor_range_bearing.h ) @@ -15,7 +15,7 @@ SET(HDRS_PROCESSOR ${HDRS_PROCESSOR} SET(SRCS_HELLOWOLF ${CMAKE_CURRENT_SOURCE_DIR}/capture_range_bearing.cpp ${CMAKE_CURRENT_SOURCE_DIR}/feature_range_bearing.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/landmark_point_2D.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/landmark_point_2d.cpp ${CMAKE_CURRENT_SOURCE_DIR}/processor_range_bearing.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sensor_range_bearing.cpp ) @@ -31,7 +31,7 @@ ADD_EXECUTABLE(hello_wolf_autoconf hello_wolf_autoconf.cpp) #TARGET_LINK_LIBRARIES(hello_wolf_autoconf ${PROJECT_NAME}) TARGET_LINK_LIBRARIES(hello_wolf_autoconf ${PROJECT_NAME} hellowolf) -#add_library(sensor_odom SHARED ../src/sensor/sensor_odom_2D.cpp ../src/processor/processor_odom_2D.cpp) +#add_library(sensor_odom SHARED ../src/sensor/sensor_odom_2d.cpp ../src/processor/processor_odom_2d.cpp) #TARGET_LINK_LIBRARIES(sensor_odom ${PROJECT_NAME} hellowolf) # #add_library(range_bearing SHARED sensor_range_bearing.cpp processor_range_bearing.cpp) diff --git a/hello_wolf/capture_range_bearing.cpp b/hello_wolf/capture_range_bearing.cpp index 81322d73d2e592b0bf07db7100b75f6167b46020..a2d44a101085ea0ad3aa4ae7d68af68370ea5024 100644 --- a/hello_wolf/capture_range_bearing.cpp +++ b/hello_wolf/capture_range_bearing.cpp @@ -1,5 +1,5 @@ /* - * CaptureRangeBearing2D.cpp + * CaptureRangeBearing2d.cpp * * Created on: Nov 30, 2017 * Author: jsola diff --git a/hello_wolf/feature_range_bearing.cpp b/hello_wolf/feature_range_bearing.cpp index 40967163a3a5ab643cd18fc068f3c0ab55a2b1d9..4d47cc5539f5fcfe2cc011ea4c4e6e11d2685f90 100644 --- a/hello_wolf/feature_range_bearing.cpp +++ b/hello_wolf/feature_range_bearing.cpp @@ -1,5 +1,5 @@ /* - * FeatureRangeBearing2D.cpp + * FeatureRangeBearing2d.cpp * * Created on: Nov 30, 2017 * Author: jsola diff --git a/hello_wolf/feature_range_bearing.h b/hello_wolf/feature_range_bearing.h index 6a8dada9cd8bb9f53f8a4386a687c4655c8d14bf..8571a8fb933976c740440c9d4d9ba8a2fb3d8f20 100644 --- a/hello_wolf/feature_range_bearing.h +++ b/hello_wolf/feature_range_bearing.h @@ -1,5 +1,5 @@ /* - * FeatureRangeBearing2D.h + * FeatureRangeBearing2d.h * * Created on: Nov 30, 2017 * Author: jsola diff --git a/hello_wolf/hello_wolf.cpp b/hello_wolf/hello_wolf.cpp index b1531f45173b200d2c10bb448996ec4c87095263..ac33da83c3fece5dce946e9c808869edd511e6f4 100644 --- a/hello_wolf/hello_wolf.cpp +++ b/hello_wolf/hello_wolf.cpp @@ -15,9 +15,9 @@ // wolf core includes #include "core/common/wolf.h" -#include "core/sensor/sensor_odom_2D.h" -#include "core/processor/processor_odom_2D.h" -#include "core/capture/capture_odom_2D.h" +#include "core/sensor/sensor_odom_2d.h" +#include "core/processor/processor_odom_2d.h" +#include "core/capture/capture_odom_2d.h" #include "core/ceres_wrapper/ceres_manager.h" // hello wolf local includes @@ -110,12 +110,12 @@ int main() options.max_num_iterations = 1000; // We depart far from solution, need a lot of iterations CeresManagerPtr ceres = std::make_shared<CeresManager>(problem, options); - // sensor odometer 2D - ParamsSensorOdom2DPtr intrinsics_odo = std::make_shared<ParamsSensorOdom2D>(); - SensorBasePtr sensor_odo = problem->installSensor("SensorOdom2D", "sensor odo", Vector3d(0,0,0), intrinsics_odo); + // sensor odometer 2d + ParamsSensorOdom2dPtr intrinsics_odo = std::make_shared<ParamsSensorOdom2d>(); + SensorBasePtr sensor_odo = problem->installSensor("SensorOdom2d", "sensor odo", Vector3d(0,0,0), intrinsics_odo); - // processor odometer 2D - ProcessorParamsOdom2DPtr params_odo = std::make_shared<ProcessorParamsOdom2D>(); + // processor odometer 2d + ProcessorParamsOdom2dPtr params_odo = std::make_shared<ProcessorParamsOdom2d>(); params_odo->voting_active = true; params_odo->time_tolerance = 0.1; params_odo->max_time_span = 999; @@ -123,7 +123,7 @@ int main() params_odo->angle_turned = 999; params_odo->cov_det = 999; params_odo->unmeasured_perturbation_std = 0.001; - ProcessorBasePtr processor = problem->installProcessor("ProcessorOdom2D", "processor odo", sensor_odo, params_odo); + ProcessorBasePtr processor = problem->installProcessor("ProcessorOdom2d", "processor odo", sensor_odo, params_odo); // sensor Range and Bearing ParamsSensorRangeBearingPtr intrinsics_rb = std::make_shared<ParamsSensorRangeBearing>(); @@ -183,7 +183,7 @@ int main() t += 1.0; // t : 1.0 // motion - CaptureOdom2DPtr cap_motion = std::make_shared<CaptureOdom2D>(t, sensor_odo, motion_data, motion_cov); + CaptureOdom2dPtr cap_motion = std::make_shared<CaptureOdom2d>(t, sensor_odo, motion_data, motion_cov); sensor_odo ->process(cap_motion); // KF2 : (1,0,0) // observe lmks @@ -267,7 +267,7 @@ int main() * * IF YOU SEE at the end of the printed problem the estimate for Lmk 3 as: * - * L3 POINT 2D <-- c8 + * L3 POINT 2d <-- c8 * Est, x = ( 3 2 ) * sb: Est * @@ -289,10 +289,10 @@ int main() * * P: wolf tree status --------------------- Hardware - S1 ODOM 2D // Sensor 1, type ODOMETRY 2D. + S1 ODOM 2d // Sensor 1, type ODOMETRY 2d. Extr [Sta] = [ Fix( 0 0 ) Fix( 0 ) ] // Static extrinsics, fixed position, fixed orientation (See notes 1 and 2 below) Intr [Sta] = [ ] // Static intrinsics, but no intrinsics anyway - pm1 ODOM 2D // Processor 1, type ODOMETRY 2D + pm1 ODOM 2d // Processor 1, type ODOMETRY 2d o: C7 - F3 // origin at Capture 7, Frame 3 l: C10 - F4 // last at Capture 10, frame 4 S2 RANGE BEARING // Sensor 2, type RANGE and BEARING. @@ -307,7 +307,7 @@ int main() f1 FIX <-- // Feature 1, type Fix m = ( 0 0 0 ) // The absolute measurement for this frame is (0,0,0) --> origin c1 FIX --> A // Factor 1, type FIX, it is Absolute - CM2 ODOM 2D -> S1 [Sta, Sta] <-- // Capture 2, type ODOM, from Sensor 1 (static extr and intr) + CM2 ODOM 2d -> S1 [Sta, Sta] <-- // Capture 2, type ODOM, from Sensor 1 (static extr and intr) C5 RANGE BEARING -> S2 [Sta, Sta] <-- // Capture 5, type R+B, from Sensor 2 (static extr and intr) f2 RANGE BEARING <-- // Feature 2, type R+B m = ( 1 1.57 ) // The feature's measurement is 1m, 1.57rad @@ -315,10 +315,10 @@ int main() KF2 <-- c6 Est, ts=1, x = ( 1 2.5e-10 1.6e-10 ) sb: Est Est - CM3 ODOM 2D -> S1 [Sta, Sta] <-- - f3 ODOM 2D <-- + CM3 ODOM 2d -> S1 [Sta, Sta] <-- + f3 ODOM 2d <-- m = ( 1 0 0 ) - c3 ODOM 2D --> F1 // Factor 3, type ODOM, against Frame 1 + c3 ODOM 2d --> F1 // Factor 3, type ODOM, against Frame 1 C9 RANGE BEARING -> S2 [Sta, Sta] <-- f4 RANGE BEARING <-- m = ( 1.41 2.36 ) @@ -329,10 +329,10 @@ int main() KF3 <-- Est, ts=2, x = ( 2 4.1e-10 1.7e-10 ) sb: Est Est - CM7 ODOM 2D -> S1 [Sta, Sta] <-- - f6 ODOM 2D <-- + CM7 ODOM 2d -> S1 [Sta, Sta] <-- + f6 ODOM 2d <-- m = ( 1 0 0 ) - c6 ODOM 2D --> F2 + c6 ODOM 2d --> F2 C12 RANGE BEARING -> S2 [Sta, Sta] <-- f7 RANGE BEARING <-- m = ( 1.41 2.36 ) @@ -343,15 +343,15 @@ int main() F4 <-- Est, ts=2, x = ( 0.11 -0.045 0.26 ) sb: Est Est - CM10 ODOM 2D -> S1 [Sta, Sta] <-- + CM10 ODOM 2d -> S1 [Sta, Sta] <-- Map - L1 POINT 2D <-- c2 c4 // Landmark 1, constrained by Factors 2 and 4 + L1 POINT 2d <-- c2 c4 // Landmark 1, constrained by Factors 2 and 4 Est, x = ( 1 2 ) // L4 state is estimated, state vector sb: Est // L4 has 1 state block estimated - L2 POINT 2D <-- c5 c7 + L2 POINT 2d <-- c5 c7 Est, x = ( 2 2 ) sb: Est - L3 POINT 2D <-- c8 + L3 POINT 2d <-- c8 Est, x = ( 3 2 ) sb: Est ----------------------------------------- diff --git a/hello_wolf/hello_wolf_autoconf.cpp b/hello_wolf/hello_wolf_autoconf.cpp index 62c62402e1134e059f688f9fbf961a7e3fd1b5c6..a97d8d2f9c5c7fb8c7f1f37c12330038beb3ba98 100644 --- a/hello_wolf/hello_wolf_autoconf.cpp +++ b/hello_wolf/hello_wolf_autoconf.cpp @@ -8,7 +8,7 @@ // wolf core includes #include "core/common/wolf.h" -#include "core/capture/capture_odom_2D.h" +#include "core/capture/capture_odom_2d.h" #include "core/yaml/parser_yaml.hpp" #include "core/ceres_wrapper/ceres_manager.h" @@ -163,7 +163,7 @@ int main() t += 1.0; // t : 1.0 // motion - CaptureOdom2DPtr cap_motion = std::make_shared<CaptureOdom2D>(t, sensor_odo, motion_data, motion_cov); + CaptureOdom2dPtr cap_motion = std::make_shared<CaptureOdom2d>(t, sensor_odo, motion_data, motion_cov); cap_motion ->process(); // KF2 : (1,0,0) // observe lmks @@ -250,7 +250,7 @@ int main() * * IF YOU SEE at the end of the printed problem the estimate for Lmk 3 as: * - * L3 POINT 2D <-- c8 + * L3 POINT 2d <-- c8 * Est, x = ( 3 2 ) * sb: Est * @@ -272,10 +272,10 @@ int main() * * P: wolf tree status --------------------- Hardware - S1 ODOM 2D // Sensor 1, type ODOMETRY 2D. + S1 ODOM 2d // Sensor 1, type ODOMETRY 2d. Extr [Sta] = [ Fix( 0 0 ) Fix( 0 ) ] // Static extrinsics, fixed position, fixed orientation (See notes 1 and 2 below) Intr [Sta] = [ ] // Static intrinsics, but no intrinsics anyway - pm1 ODOM 2D // Processor 1, type ODOMETRY 2D + pm1 ODOM 2d // Processor 1, type ODOMETRY 2d o: C7 - F3 // origin at Capture 7, Frame 3 l: C10 - F4 // last at Capture 10, frame 4 S2 RANGE BEARING // Sensor 2, type RANGE and BEARING. @@ -290,7 +290,7 @@ int main() f1 FIX <-- // Feature 1, type Fix m = ( 0 0 0 ) // The absolute measurement for this frame is (0,0,0) --> origin c1 FIX --> A // Factor 1, type FIX, it is Absolute - CM2 ODOM 2D -> S1 [Sta, Sta] <-- // Capture 2, type ODOM, from Sensor 1 (static extr and intr) + CM2 ODOM 2d -> S1 [Sta, Sta] <-- // Capture 2, type ODOM, from Sensor 1 (static extr and intr) C5 RANGE BEARING -> S2 [Sta, Sta] <-- // Capture 5, type R+B, from Sensor 2 (static extr and intr) f2 RANGE BEARING <-- // Feature 2, type R+B m = ( 1 1.57 ) // The feature's measurement is 1m, 1.57rad @@ -298,10 +298,10 @@ int main() KF2 <-- c6 Est, ts=1, x = ( 1 2.5e-10 1.6e-10 ) sb: Est Est - CM3 ODOM 2D -> S1 [Sta, Sta] <-- - f3 ODOM 2D <-- + CM3 ODOM 2d -> S1 [Sta, Sta] <-- + f3 ODOM 2d <-- m = ( 1 0 0 ) - c3 ODOM 2D --> F1 // Factor 3, type ODOM, against Frame 1 + c3 ODOM 2d --> F1 // Factor 3, type ODOM, against Frame 1 C9 RANGE BEARING -> S2 [Sta, Sta] <-- f4 RANGE BEARING <-- m = ( 1.41 2.36 ) @@ -312,10 +312,10 @@ int main() KF3 <-- Est, ts=2, x = ( 2 4.1e-10 1.7e-10 ) sb: Est Est - CM7 ODOM 2D -> S1 [Sta, Sta] <-- - f6 ODOM 2D <-- + CM7 ODOM 2d -> S1 [Sta, Sta] <-- + f6 ODOM 2d <-- m = ( 1 0 0 ) - c6 ODOM 2D --> F2 + c6 ODOM 2d --> F2 C12 RANGE BEARING -> S2 [Sta, Sta] <-- f7 RANGE BEARING <-- m = ( 1.41 2.36 ) @@ -326,15 +326,15 @@ int main() F4 <-- Est, ts=2, x = ( 0.11 -0.045 0.26 ) sb: Est Est - CM10 ODOM 2D -> S1 [Sta, Sta] <-- + CM10 ODOM 2d -> S1 [Sta, Sta] <-- Map - L1 POINT 2D <-- c2 c4 // Landmark 1, constrained by Factors 2 and 4 + L1 POINT 2d <-- c2 c4 // Landmark 1, constrained by Factors 2 and 4 Est, x = ( 1 2 ) // L4 state is estimated, state vector sb: Est // L4 has 1 state block estimated - L2 POINT 2D <-- c5 c7 + L2 POINT 2d <-- c5 c7 Est, x = ( 2 2 ) sb: Est - L3 POINT 2D <-- c8 + L3 POINT 2d <-- c8 Est, x = ( 3 2 ) sb: Est ----------------------------------------- diff --git a/hello_wolf/landmark_point_2D.cpp b/hello_wolf/landmark_point_2D.cpp deleted file mode 100644 index 2e74de9065542dde024989342087fa8dbdcee659..0000000000000000000000000000000000000000 --- a/hello_wolf/landmark_point_2D.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/** - * \file landmark_point_2D.cpp - * - * Created on: Dec 4, 2017 - * \author: jsola - */ - -#include "landmark_point_2D.h" - -namespace wolf -{ - -LandmarkPoint2D::LandmarkPoint2D(int _id, const Eigen::Vector2d& _xy) : - LandmarkBase("POINT 2D", std::make_shared<StateBlock>(_xy)) -{ - setId(_id); -} - -LandmarkPoint2D::~LandmarkPoint2D() -{ - // -} - -} /* namespace wolf */ diff --git a/hello_wolf/landmark_point_2D.h b/hello_wolf/landmark_point_2D.h deleted file mode 100644 index 371db93ee80e991b2981307a97b6a6a54d466491..0000000000000000000000000000000000000000 --- a/hello_wolf/landmark_point_2D.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - * \file landmark_point_2D.h - * - * Created on: Dec 4, 2017 - * \author: jsola - */ - -#ifndef HELLO_WOLF_LANDMARK_POINT_2D_H_ -#define HELLO_WOLF_LANDMARK_POINT_2D_H_ - -#include "core/landmark/landmark_base.h" - -namespace wolf -{ - -WOLF_PTR_TYPEDEFS(LandmarkPoint2D); - -class LandmarkPoint2D : public LandmarkBase -{ - public: - LandmarkPoint2D(int _id, const Eigen::Vector2d& _xy); - virtual ~LandmarkPoint2D(); -}; - -} /* namespace wolf */ - -#endif /* HELLO_WOLF_LANDMARK_POINT_2D_H_ */ diff --git a/hello_wolf/landmark_point_2d.cpp b/hello_wolf/landmark_point_2d.cpp new file mode 100644 index 0000000000000000000000000000000000000000..835c4fb04e4f7b1e5695958ca9db3cbb810c5ec5 --- /dev/null +++ b/hello_wolf/landmark_point_2d.cpp @@ -0,0 +1,24 @@ +/** + * \file landmark_point_2d.cpp + * + * Created on: Dec 4, 2017 + * \author: jsola + */ + +#include "landmark_point_2d.h" + +namespace wolf +{ + +LandmarkPoint2d::LandmarkPoint2d(int _id, const Eigen::Vector2d& _xy) : + LandmarkBase("POINT 2d", std::make_shared<StateBlock>(_xy)) +{ + setId(_id); +} + +LandmarkPoint2d::~LandmarkPoint2d() +{ + // +} + +} /* namespace wolf */ diff --git a/hello_wolf/landmark_point_2d.h b/hello_wolf/landmark_point_2d.h new file mode 100644 index 0000000000000000000000000000000000000000..0ec660c9e70944a8de9dd152649dc78d8a85b86b --- /dev/null +++ b/hello_wolf/landmark_point_2d.h @@ -0,0 +1,27 @@ +/** + * \file landmark_point_2d.h + * + * Created on: Dec 4, 2017 + * \author: jsola + */ + +#ifndef HELLO_WOLF_LANDMARK_POINT_2d_H_ +#define HELLO_WOLF_LANDMARK_POINT_2d_H_ + +#include "core/landmark/landmark_base.h" + +namespace wolf +{ + +WOLF_PTR_TYPEDEFS(LandmarkPoint2d); + +class LandmarkPoint2d : public LandmarkBase +{ + public: + LandmarkPoint2d(int _id, const Eigen::Vector2d& _xy); + virtual ~LandmarkPoint2d(); +}; + +} /* namespace wolf */ + +#endif /* HELLO_WOLF_LANDMARK_POINT_2d_H_ */ diff --git a/hello_wolf/processor_range_bearing.cpp b/hello_wolf/processor_range_bearing.cpp index 0ce5d610105a6984ed4a0beb4474f06a35d2ba67..89b3d7775e3c5b79dca8de4a0d2f6f5ad91d17e7 100644 --- a/hello_wolf/processor_range_bearing.cpp +++ b/hello_wolf/processor_range_bearing.cpp @@ -7,7 +7,7 @@ #include "processor_range_bearing.h" #include "capture_range_bearing.h" -#include "landmark_point_2D.h" +#include "landmark_point_2d.h" #include "feature_range_bearing.h" #include "factor_range_bearing.h" @@ -15,7 +15,7 @@ namespace wolf { ProcessorRangeBearing::ProcessorRangeBearing(ProcessorParamsBasePtr _params) : - ProcessorBase("ProcessorRangeBearing", _params) + ProcessorBase("ProcessorRangeBearing", 2, _params) { // } @@ -63,19 +63,19 @@ void ProcessorRangeBearing::processCapture(CaptureBasePtr _capture) double bearing = capture_rb->getBearing(i); // 4. create or recover landmark - LandmarkPoint2DPtr lmk; + LandmarkPoint2dPtr lmk; auto lmk_it = known_lmks.find(id); if ( lmk_it != known_lmks.end() ) { // known landmarks : recover landmark - lmk = std::static_pointer_cast<LandmarkPoint2D>(lmk_it->second); + lmk = std::static_pointer_cast<LandmarkPoint2d>(lmk_it->second); WOLF_TRACE("known lmk(", id, "): ", lmk->getP()->getState().transpose()); } else { // new landmark: // - create landmark - lmk = LandmarkBase::emplace<LandmarkPoint2D>(getProblem()->getMap(), id, invObserve(range, bearing)); + lmk = LandmarkBase::emplace<LandmarkPoint2d>(getProblem()->getMap(), id, invObserve(range, bearing)); WOLF_TRACE("new lmk(", id, "): ", lmk->getP()->getState().transpose()); // - add to known landmarks known_lmks.emplace(id, lmk); diff --git a/hello_wolf/sensor_range_bearing.cpp b/hello_wolf/sensor_range_bearing.cpp index f2348928a25a2bc8835ea61f3bad7c1139424d7c..3eea032b2ba632cf3343805446a98d0805e56f3c 100644 --- a/hello_wolf/sensor_range_bearing.cpp +++ b/hello_wolf/sensor_range_bearing.cpp @@ -20,7 +20,7 @@ SensorRangeBearing::SensorRangeBearing(const Eigen::VectorXd& _extrinsics, const nullptr, _noise_std) { - assert(_extrinsics.size() == 3 && "Bad extrinsics vector size. Must be 3 for 2D"); + assert(_extrinsics.size() == 3 && "Bad extrinsics vector size. Must be 3 for 2d"); } SensorRangeBearing::SensorRangeBearing(const Eigen::VectorXd& _extrinsics, const ParamsSensorRangeBearingPtr _intr) : diff --git a/hello_wolf/yaml/hello_wolf_config.yaml b/hello_wolf/yaml/hello_wolf_config.yaml index 167dea95d3c6d49f7eca2f8e1a682c7473d415c2..b84d7776622264f96a4597ade146d64bcec86438 100644 --- a/hello_wolf/yaml/hello_wolf_config.yaml +++ b/hello_wolf/yaml/hello_wolf_config.yaml @@ -3,7 +3,7 @@ config: problem: frame_structure: "PO" # keyframes have position and orientation - dimension: 2 # space is 2D + dimension: 2 # space is 2d prior: timestamp: 0.0 state: [0,0,0] @@ -12,12 +12,12 @@ config: sensors: - - type: "SensorOdom2D" + - type: "SensorOdom2d" plugin: "core" name: "sen odom" extrinsic: pose: [0,0, 0] - follow: "hello_wolf/yaml/sensor_odom_2D.yaml" # config parameters in this file + follow: "hello_wolf/yaml/sensor_odom_2d.yaml" # config parameters in this file - type: "SensorRangeBearing" plugin: "core" @@ -29,19 +29,14 @@ config: processors: - - type: "ProcessorOdom2D" + - type: "ProcessorOdom2d" plugin: "core" name: "prc odom" sensor_name: "sen odom" # attach processor to this sensor - follow: hello_wolf/yaml/processor_odom_2D.yaml # config parameters in this file + follow: hello_wolf/yaml/processor_odom_2d.yaml # config parameters in this file - type: "ProcessorRangeBearing" plugin: "core" name: "prc rb" sensor_name: "sen rb" # attach processor to this sensor follow: hello_wolf/yaml/processor_range_bearing.yaml # config parameters in this file - - - - - \ No newline at end of file diff --git a/hello_wolf/yaml/processor_odom_2D.yaml b/hello_wolf/yaml/processor_odom_2d.yaml similarity index 87% rename from hello_wolf/yaml/processor_odom_2D.yaml rename to hello_wolf/yaml/processor_odom_2d.yaml index b14f39bbe25ae1f6a2a2785417f5f1fe3c9fc08d..bee82ff9ad905a72dc6c1ffd46ac6d7267ae8870 100644 --- a/hello_wolf/yaml/processor_odom_2D.yaml +++ b/hello_wolf/yaml/processor_odom_2d.yaml @@ -1,4 +1,4 @@ -type: "ProcessorOdom2D" +type: "ProcessorOdom2d" time_tolerance: 0.1 unmeasured_perturbation_std: 0.001 diff --git a/hello_wolf/yaml/sensor_odom_2D.yaml b/hello_wolf/yaml/sensor_odom_2d.yaml similarity index 65% rename from hello_wolf/yaml/sensor_odom_2D.yaml rename to hello_wolf/yaml/sensor_odom_2d.yaml index 4755665d896210c733a26ac5ab210d107c5ed528..3ad7204855cae5c1e8e00cfdc011ff27d2725692 100644 --- a/hello_wolf/yaml/sensor_odom_2D.yaml +++ b/hello_wolf/yaml/sensor_odom_2d.yaml @@ -1,4 +1,4 @@ -type: "SensorOdom2D" # This must match the KEY used in the SensorFactory. Otherwise it is an error. +type: "SensorOdom2d" # This must match the KEY used in the SensorFactory. Otherwise it is an error. k_disp_to_disp: 0.1 # m^2 / m k_rot_to_rot: 0.1 # rad^2 / rad diff --git a/include/core/capture/capture_odom_2D.h b/include/core/capture/capture_odom_2d.h similarity index 69% rename from include/core/capture/capture_odom_2D.h rename to include/core/capture/capture_odom_2d.h index ac242ee1ec64c81c82787b9a383f7ffa7d7444d8..d18217279601157c9a1b2eb3c4e7f4ba4dae6cbb 100644 --- a/include/core/capture/capture_odom_2D.h +++ b/include/core/capture/capture_odom_2d.h @@ -1,12 +1,12 @@ /* - * capture_odom_2D.h + * capture_odom_2d.h * * Created on: Oct 16, 2017 * Author: jsola */ -#ifndef CAPTURE_ODOM_2D_H_ -#define CAPTURE_ODOM_2D_H_ +#ifndef CAPTURE_ODOM_2d_H_ +#define CAPTURE_ODOM_2d_H_ #include "core/capture/capture_motion.h" @@ -15,29 +15,29 @@ namespace wolf { -WOLF_PTR_TYPEDEFS(CaptureOdom2D); +WOLF_PTR_TYPEDEFS(CaptureOdom2d); -class CaptureOdom2D : public CaptureMotion +class CaptureOdom2d : public CaptureMotion { public: - CaptureOdom2D(const TimeStamp& _init_ts, + CaptureOdom2d(const TimeStamp& _init_ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXd& _data, CaptureBasePtr _capture_origin_ptr = nullptr); - CaptureOdom2D(const TimeStamp& _init_ts, + CaptureOdom2d(const TimeStamp& _init_ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXd& _data, const Eigen::MatrixXd& _data_cov, CaptureBasePtr _capture_origin_ptr = nullptr); - virtual ~CaptureOdom2D(); + virtual ~CaptureOdom2d(); virtual VectorXd correctDelta(const VectorXd& _delta, const VectorXd& _delta_error) const override; }; -inline Eigen::VectorXd CaptureOdom2D::correctDelta(const VectorXd& _delta, const VectorXd& _delta_error) const +inline Eigen::VectorXd CaptureOdom2d::correctDelta(const VectorXd& _delta, const VectorXd& _delta_error) const { Vector3d delta = _delta + _delta_error; delta(2) = pi2pi(delta(2)); @@ -46,4 +46,4 @@ inline Eigen::VectorXd CaptureOdom2D::correctDelta(const VectorXd& _delta, const } /* namespace wolf */ -#endif /* CAPTURE_ODOM_2D_H_ */ +#endif /* CAPTURE_ODOM_2d_H_ */ diff --git a/include/core/capture/capture_odom_3D.h b/include/core/capture/capture_odom_3d.h similarity index 69% rename from include/core/capture/capture_odom_3D.h rename to include/core/capture/capture_odom_3d.h index c9990f38513c63809d7cb396790ba388ef0d5383..7e4ee02c8b694cc6ae2b8e8b6d9e6803d7587c65 100644 --- a/include/core/capture/capture_odom_3D.h +++ b/include/core/capture/capture_odom_3d.h @@ -1,12 +1,12 @@ /* - * capture_odom_3D.h + * capture_odom_3d.h * * Created on: Oct 16, 2017 * Author: jsola */ -#ifndef CAPTURE_ODOM_3D_H_ -#define CAPTURE_ODOM_3D_H_ +#ifndef CAPTURE_ODOM_3d_H_ +#define CAPTURE_ODOM_3d_H_ #include "core/capture/capture_motion.h" @@ -15,23 +15,23 @@ namespace wolf { -WOLF_PTR_TYPEDEFS(CaptureOdom3D); +WOLF_PTR_TYPEDEFS(CaptureOdom3d); -class CaptureOdom3D : public CaptureMotion +class CaptureOdom3d : public CaptureMotion { public: - CaptureOdom3D(const TimeStamp& _init_ts, + CaptureOdom3d(const TimeStamp& _init_ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXd& _data, CaptureBasePtr _capture_origin_ptr = nullptr); - CaptureOdom3D(const TimeStamp& _init_ts, + CaptureOdom3d(const TimeStamp& _init_ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXd& _data, const Eigen::MatrixXd& _data_cov, CaptureBasePtr _capture_origin_ptr = nullptr); - virtual ~CaptureOdom3D(); + virtual ~CaptureOdom3d(); virtual VectorXd correctDelta(const VectorXd& _delta, const VectorXd& _delta_error) const override; @@ -39,4 +39,4 @@ class CaptureOdom3D : public CaptureMotion } /* namespace wolf */ -#endif /* CAPTURE_ODOM_3D_H_ */ +#endif /* CAPTURE_ODOM_3d_H_ */ diff --git a/include/core/capture/capture_pose.h b/include/core/capture/capture_pose.h index 4073cb1e2681b4024029146d83372961085db646..56ce0ea48c5aadd9d3b189353bae75b83088d792 100644 --- a/include/core/capture/capture_pose.h +++ b/include/core/capture/capture_pose.h @@ -3,8 +3,8 @@ //Wolf includes #include "core/capture/capture_base.h" -#include "core/factor/factor_pose_2D.h" -#include "core/factor/factor_pose_3D.h" +#include "core/factor/factor_pose_2d.h" +#include "core/factor/factor_pose_3d.h" #include "core/feature/feature_pose.h" //std includes diff --git a/include/core/ceres_wrapper/create_numeric_diff_cost_function.h b/include/core/ceres_wrapper/create_numeric_diff_cost_function.h index ff60fea02729c791b569c0585f47e5da34bfca19..203c38ef635cf02d6ded7aa0a0491169ef67a04d 100644 --- a/include/core/ceres_wrapper/create_numeric_diff_cost_function.h +++ b/include/core/ceres_wrapper/create_numeric_diff_cost_function.h @@ -12,7 +12,7 @@ #include "ceres/numeric_diff_cost_function.h" // Factors -#include "core/factor/factor_odom_2D.h" +#include "core/factor/factor_odom_2d.h" #include "core/factor/factor_base.h" namespace wolf { @@ -33,8 +33,8 @@ inline std::shared_ptr<ceres::CostFunction> createNumericDiffCostFunction(Factor // switch (_fac_ptr->getTypeId()) // { // // just for testing -// case FAC_ODOM_2D: -// return createNumericDiffCostFunctionCeres<FactorOdom2D>(_fac_ptr); +// case FAC_ODOM_2d: +// return createNumericDiffCostFunctionCeres<FactorOdom2d>(_fac_ptr); // // /* For adding a new factor, add the #include and a case: // case FAC_ENUM: diff --git a/include/core/common/factory.h b/include/core/common/factory.h index 88820c8b382fed793ba0cdc0db73a60eafcd44ca..f03cabec9a7527801464d9e4e025464a7d23f0ad 100644 --- a/include/core/common/factory.h +++ b/include/core/common/factory.h @@ -57,7 +57,7 @@ namespace wolf * * > For example, if you want to make a Landmark factory, set TypeBase = LandmarkBase.\n * > Then, the factory will create specific landmarks deriving from LandmarkBase.\n - * > The specific type of landmark (e.g. LandmarkCorner2D, LandmarkAHP, LandmarkPolyline2D, etc) is indicated by a string that we call TYPE in this documentation. + * > The specific type of landmark (e.g. LandmarkCorner2d, LandmarkAHP, LandmarkPolyline2d, etc) is indicated by a string that we call TYPE in this documentation. * * Specific object creation is invoked by the method ````create(TYPE, params ... )````, where * - the TYPE of object to create is identified with a string @@ -72,14 +72,14 @@ namespace wolf * - Write object creators * - Register and unregister object creators to the factory * - Create objects using the factory - * - Examples: Write and register a landmark creator for LandmarkPolyline2D. + * - Examples: Write and register a landmark creator for LandmarkPolyline2d. * * #### Define correct TYPE names * The rule to make new TYPE strings unique is that you skip the generic 'Type' prefix from your class name, * and you build a string in CAPITALS with space separators, e.g.: * - ParamsSensorCamera -> ````"CAMERA"```` - * - ParamsSensorLaser2D -> ````"LASER 2D"```` - * - LandmarkPolyline2D -> ````"POLYLINE 2D"```` + * - ParamsSensorLaser2d -> ````"LASER 2d"```` + * - LandmarkPolyline2d -> ````"POLYLINE 2d"```` * - etc. * * #### Access the factory @@ -107,7 +107,7 @@ namespace wolf * \endcode * * #### Write creator methods (in your derived object classes) - * The method LandmarkPolyline2D::create(...) exists in the LandmarkPolyline2D class as a static method. + * The method LandmarkPolyline2d::create(...) exists in the LandmarkPolyline2d class as a static method. * All these ````XxxXxx::create()```` methods need to have exactly the same API, regardless of the object type. * The API puts into play the two template parameters: * @@ -137,7 +137,7 @@ namespace wolf * that knows how to create your specific object, e.g.: * * \code - * LandmarkFactory::get().registerCreator("POLYLINE 2D", LandmarkPolyline2D::create); + * LandmarkFactory::get().registerCreator("POLYLINE 2d", LandmarkPolyline2d::create); * \endcode * * #### Automatic registration @@ -163,26 +163,26 @@ namespace wolf * Note: Prior to invoking the creation of a object of a particular type, * you must register the creator for this type into the factory. * - * To create e.g. a LandmarkPolyline2D from a YAML node you type: + * To create e.g. a LandmarkPolyline2d from a YAML node you type: * * \code - * LandmarkBasePtr lmk_ptr = Factory<LandmarkBasePtr, YAML::Node>::get().create("POLYLINE 2D", lmk_yaml_node); + * LandmarkBasePtr lmk_ptr = Factory<LandmarkBasePtr, YAML::Node>::get().create("POLYLINE 2d", lmk_yaml_node); * \endcode * * or even better, make use of the convenient typedefs: * * \code - * LandmarkBasePtr lmk_ptr = LandmarkFactory::get().create("POLYLINE 2D", lmk_yaml_node); + * LandmarkBasePtr lmk_ptr = LandmarkFactory::get().create("POLYLINE 2d", lmk_yaml_node); * \endcode * * ### Examples - * #### Example 1: Writing the creator of LandmarkPolyline2D from a YAML node + * #### Example 1: Writing the creator of LandmarkPolyline2d from a YAML node * - * You can find this code in the landmark_polyline_2D.cpp file. + * You can find this code in the landmark_polyline_2d.cpp file. * * \code * // Creator (this method is static): - * LandmarkBasePtr LandmarkPolyline2D::create(const YAML::Node& _lmk_node) + * LandmarkBasePtr LandmarkPolyline2d::create(const YAML::Node& _lmk_node) * { * // Parse YAML node with lmk info and data * unsigned int id = _lmk_node["id"].as<unsigned int>(); @@ -197,22 +197,22 @@ namespace wolf * } * * // Create a new landmark - * LandmarkBasePtr lmk_ptr = new LandmarkPolyline2D(points, first_defined, last_defined, first_id); + * LandmarkBasePtr lmk_ptr = new LandmarkPolyline2d(points, first_defined, last_defined, first_id); * lmk_ptr->setId(id); * * return lmk_ptr; * } * \endcode * - * #### Example 2: Registering the creator of LandmarkPolyline2D from a YAML node + * #### Example 2: Registering the creator of LandmarkPolyline2d from a YAML node * - * You can find this code in the landmark_polyline_2D.cpp file. + * You can find this code in the landmark_polyline_2d.cpp file. * * \code * // Register landmark creator (put the register code inside an unnamed namespace): * namespace * { - * const bool registered_lmk_polyline_2D = LandmarkFactory::get().registerCreator("POLYLINE 2D", LandmarkPolyline2D::create); + * const bool registered_lmk_polyline_2d = LandmarkFactory::get().registerCreator("POLYLINE 2d", LandmarkPolyline2d::create); * } * * \endcode diff --git a/include/core/common/node_base.h b/include/core/common/node_base.h index b771859e5114fa372cce9d48428d36549202b230..4488ab30ec274eeb84e49b7dcd600de9a93acf5e 100644 --- a/include/core/common/node_base.h +++ b/include/core/common/node_base.h @@ -28,9 +28,9 @@ namespace wolf { * * - A unique type, which is a subcategory of the above. The list here cannot be exhaustive, but a few examples follow: * - "SesorCamera" - * - "SesorLaser2D" - * - "LandmarkPoint3D" - * - "ProcessorLaser2D" + * - "SesorLaser2d" + * - "LandmarkPoint3d" + * - "ProcessorLaser2d" * * please refer to each base class derived from NodeLinked for better examples of their types. * @@ -64,7 +64,7 @@ class NodeBase unsigned int node_id_; ///< Node id. It is unique over the whole Wolf Tree std::string node_category_; ///< Text label identifying the category of node ("SENSOR", "FEATURE", etc) - std::string node_type_; ///< Text label identifying the type or subcategory of node ("Pin Hole", "Point 2D", etc) + std::string node_type_; ///< Text label identifying the type or subcategory of node ("Pin Hole", "Point 2d", etc) std::string node_name_; ///< Text label identifying each specific object ("left camera", "LIDAR 1", "PointGrey", "Andrew", etc) bool is_removing_; ///< A flag for safely removing nodes from the Wolf tree. See remove(). diff --git a/include/core/factor/factor_autodiff_distance_3D.h b/include/core/factor/factor_autodiff_distance_3d.h similarity index 81% rename from include/core/factor/factor_autodiff_distance_3D.h rename to include/core/factor/factor_autodiff_distance_3d.h index 624112000fe6f019e6d86fc9e310e4da9a4a2b3f..8dc182d6f92ec60d7ba310ed1e7f94e27a9281fc 100644 --- a/include/core/factor/factor_autodiff_distance_3D.h +++ b/include/core/factor/factor_autodiff_distance_3d.h @@ -1,29 +1,29 @@ /** - * \file factor_autodiff_distance_3D.h + * \file factor_autodiff_distance_3d.h * * Created on: Apr 10, 2018 * \author: jsola */ -#ifndef FACTOR_AUTODIFF_DISTANCE_3D_H_ -#define FACTOR_AUTODIFF_DISTANCE_3D_H_ +#ifndef FACTOR_AUTODIFF_DISTANCE_3d_H_ +#define FACTOR_AUTODIFF_DISTANCE_3d_H_ #include "core/factor/factor_autodiff.h" namespace wolf { -WOLF_PTR_TYPEDEFS(FactorAutodiffDistance3D); +WOLF_PTR_TYPEDEFS(FactorAutodiffDistance3d); -class FactorAutodiffDistance3D : public FactorAutodiff<FactorAutodiffDistance3D, 1, 3, 3> +class FactorAutodiffDistance3d : public FactorAutodiff<FactorAutodiffDistance3d, 1, 3, 3> { public: - FactorAutodiffDistance3D(const FeatureBasePtr& _feat, + FactorAutodiffDistance3d(const FeatureBasePtr& _feat, const FrameBasePtr& _frm_other, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status) : - FactorAutodiff("DISTANCE 3D", + FactorAutodiff("DISTANCE 3d", _frm_other, nullptr, nullptr, @@ -36,7 +36,7 @@ class FactorAutodiffDistance3D : public FactorAutodiff<FactorAutodiffDistance3D, { } - virtual ~FactorAutodiffDistance3D() { /* nothing */ } + virtual ~FactorAutodiffDistance3d() { /* nothing */ } virtual std::string getTopology() const override { @@ -73,4 +73,4 @@ class FactorAutodiffDistance3D : public FactorAutodiff<FactorAutodiffDistance3D, } /* namespace wolf */ -#endif /* FACTOR_AUTODIFF_DISTANCE_3D_H_ */ +#endif /* FACTOR_AUTODIFF_DISTANCE_3d_H_ */ diff --git a/include/core/factor/factor_odom_2D.h b/include/core/factor/factor_odom_2d.h similarity index 83% rename from include/core/factor/factor_odom_2D.h rename to include/core/factor/factor_odom_2d.h index 64d09368e97d0f5e394672de4218d7e608c49445..e20f0f50f158b7ed04e2d09054fafee9300a6f29 100644 --- a/include/core/factor/factor_odom_2D.h +++ b/include/core/factor/factor_odom_2d.h @@ -1,5 +1,5 @@ -#ifndef FACTOR_ODOM_2D_THETA_H_ -#define FACTOR_ODOM_2D_THETA_H_ +#ifndef FACTOR_ODOM_2d_THETA_H_ +#define FACTOR_ODOM_2d_THETA_H_ //Wolf includes #include "core/factor/factor_autodiff.h" @@ -9,18 +9,18 @@ namespace wolf { -WOLF_PTR_TYPEDEFS(FactorOdom2D); +WOLF_PTR_TYPEDEFS(FactorOdom2d); //class -class FactorOdom2D : public FactorAutodiff<FactorOdom2D, 3, 2, 1, 2, 1> +class FactorOdom2d : public FactorAutodiff<FactorOdom2d, 3, 2, 1, 2, 1> { public: - FactorOdom2D(const FeatureBasePtr& _ftr_ptr, + FactorOdom2d(const FeatureBasePtr& _ftr_ptr, const FrameBasePtr& _frame_other_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status = FAC_ACTIVE) : - FactorAutodiff<FactorOdom2D, 3, 2, 1, 2, 1>("FactorOdom2D", + FactorAutodiff<FactorOdom2d, 3, 2, 1, 2, 1>("FactorOdom2d", _frame_other_ptr, nullptr, nullptr, nullptr, _processor_ptr, _apply_loss_function, _status, @@ -32,7 +32,7 @@ class FactorOdom2D : public FactorAutodiff<FactorOdom2D, 3, 2, 1, 2, 1> // } - virtual ~FactorOdom2D() = default; + virtual ~FactorOdom2d() = default; virtual std::string getTopology() const override { @@ -47,13 +47,13 @@ class FactorOdom2D : public FactorAutodiff<FactorOdom2D, 3, 2, 1, 2, 1> // public: // static FactorBasePtr create(const FeatureBasePtr& _feature_ptr, const NodeBasePtr& _correspondant_ptr, const ProcessorBasePtr& _processor_ptr) // { -// return std::make_shared<FactorOdom2D>(_feature_ptr, std::static_pointer_cast<FrameBase>(_correspondant_ptr), _processor_ptr); +// return std::make_shared<FactorOdom2d>(_feature_ptr, std::static_pointer_cast<FrameBase>(_correspondant_ptr), _processor_ptr); // } }; template<typename T> -inline bool FactorOdom2D::operator ()(const T* const _p1, const T* const _o1, const T* const _p2, +inline bool FactorOdom2d::operator ()(const T* const _p1, const T* const _o1, const T* const _p2, const T* const _o2, T* _residuals) const { @@ -92,9 +92,9 @@ inline bool FactorOdom2D::operator ()(const T* const _p1, const T* const _o1, co // J.row(2) = ((Jet<double, 6>)(res(2))).v; // if (sizeof(er(0)) != sizeof(double)) // { -// std::cout << "FactorOdom2D::Jacobian(c" << id() << ") = \n " << J << std::endl; -// std::cout << "FactorOdom2D::Weighted Jacobian(c" << id() << ") = \n " << J << std::endl; -// std::cout << "FactorOdom2D::Sqrt Info(c" << id() << ") = \n" << getMeasurementSquareRootInformationUpper() << std::endl; +// std::cout << "FactorOdom2d::Jacobian(c" << id() << ") = \n " << J << std::endl; +// std::cout << "FactorOdom2d::Weighted Jacobian(c" << id() << ") = \n " << J << std::endl; +// std::cout << "FactorOdom2d::Sqrt Info(c" << id() << ") = \n" << getMeasurementSquareRootInformationUpper() << std::endl; // } //////////////////////////////////////////////////////// diff --git a/include/core/factor/factor_odom_2D_analytic.h b/include/core/factor/factor_odom_2d_analytic.h similarity index 72% rename from include/core/factor/factor_odom_2D_analytic.h rename to include/core/factor/factor_odom_2d_analytic.h index 96b3688fd01dada34da94ac21f7bef178c2e5d42..c7eec32a1778b9f1ad69da6c3c0087e50509a904 100644 --- a/include/core/factor/factor_odom_2D_analytic.h +++ b/include/core/factor/factor_odom_2d_analytic.h @@ -1,24 +1,24 @@ -#ifndef FACTOR_ODOM_2D_ANALYTIC_H_ -#define FACTOR_ODOM_2D_ANALYTIC_H_ +#ifndef FACTOR_ODOM_2d_ANALYTIC_H_ +#define FACTOR_ODOM_2d_ANALYTIC_H_ //Wolf includes -#include "core/factor/factor_relative_2D_analytic.h" +#include "core/factor/factor_relative_2d_analytic.h" #include <Eigen/StdVector> namespace wolf { -WOLF_PTR_TYPEDEFS(FactorOdom2DAnalytic); +WOLF_PTR_TYPEDEFS(FactorOdom2dAnalytic); //class -class FactorOdom2DAnalytic : public FactorRelative2DAnalytic +class FactorOdom2dAnalytic : public FactorRelative2dAnalytic { public: - FactorOdom2DAnalytic(const FeatureBasePtr& _ftr_ptr, + FactorOdom2dAnalytic(const FeatureBasePtr& _ftr_ptr, const FrameBasePtr& _frame_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status = FAC_ACTIVE) : - FactorRelative2DAnalytic("ODOM_2D", + FactorRelative2dAnalytic("ODOM_2d", _ftr_ptr, _frame_ptr, _processor_ptr, @@ -28,7 +28,7 @@ class FactorOdom2DAnalytic : public FactorRelative2DAnalytic // } - virtual ~FactorOdom2DAnalytic() = default; + virtual ~FactorOdom2dAnalytic() = default; virtual std::string getTopology() const override { @@ -40,7 +40,7 @@ class FactorOdom2DAnalytic : public FactorRelative2DAnalytic // const NodeBasePtr& _correspondant_ptr, // const ProcessorBasePtr& _processor_ptr = nullptr) // { -// return std::make_shared<FactorOdom2DAnalytic>(_feature_ptr, +// return std::make_shared<FactorOdom2dAnalytic>(_feature_ptr, // std::static_pointer_cast<FrameBase>(_correspondant_ptr), _processor_ptr); // } diff --git a/include/core/factor/factor_odom_2D_closeloop.h b/include/core/factor/factor_odom_2d_closeloop.h similarity index 82% rename from include/core/factor/factor_odom_2D_closeloop.h rename to include/core/factor/factor_odom_2d_closeloop.h index 8a016afab4bbcdeb03adce41267c0ad14f6bc620..e7d35aefa48b549174d060668cbee540edb6e9e2 100644 --- a/include/core/factor/factor_odom_2D_closeloop.h +++ b/include/core/factor/factor_odom_2d_closeloop.h @@ -1,5 +1,5 @@ -#ifndef FACTOR_ODOM_2D_CLOSELOOP_H_ -#define FACTOR_ODOM_2D_CLOSELOOP_H_ +#ifndef FACTOR_ODOM_2d_CLOSELOOP_H_ +#define FACTOR_ODOM_2d_CLOSELOOP_H_ //Wolf includes #include "core/factor/factor_autodiff.h" @@ -9,17 +9,17 @@ namespace wolf { -WOLF_PTR_TYPEDEFS(FactorOdom2DCloseloop); +WOLF_PTR_TYPEDEFS(FactorOdom2dCloseloop); //class -class FactorOdom2DCloseloop : public FactorAutodiff<FactorOdom2DCloseloop, 3, 2, 1, 2, 1> +class FactorOdom2dCloseloop : public FactorAutodiff<FactorOdom2dCloseloop, 3, 2, 1, 2, 1> { public: - FactorOdom2DCloseloop(const FeatureBasePtr& _ftr_ptr, + FactorOdom2dCloseloop(const FeatureBasePtr& _ftr_ptr, const FrameBasePtr& _frame_other_ptr, const ProcessorBasePtr& _processor_ptr = nullptr, bool _apply_loss_function = false, FactorStatus _status = FAC_ACTIVE) : - FactorAutodiff<FactorOdom2DCloseloop, 3, 2, 1, 2, 1>("FactorOdom2DCloseloop", + FactorAutodiff<FactorOdom2dCloseloop, 3, 2, 1, 2, 1>("FactorOdom2dCloseloop", _frame_other_ptr, nullptr, nullptr, nullptr, _processor_ptr, _apply_loss_function, _status, @@ -31,7 +31,7 @@ class FactorOdom2DCloseloop : public FactorAutodiff<FactorOdom2DCloseloop, 3, 2, // } - virtual ~FactorOdom2DCloseloop() = default; + virtual ~FactorOdom2dCloseloop() = default; virtual std::string getTopology() const override { @@ -46,13 +46,13 @@ class FactorOdom2DCloseloop : public FactorAutodiff<FactorOdom2DCloseloop, 3, 2, public: static FactorBasePtr create(const FeatureBasePtr& _feature_ptr, const NodeBasePtr& _correspondant_ptr, const ProcessorBasePtr& _processor_ptr) { - return std::make_shared<FactorOdom2DCloseloop>(_feature_ptr, std::static_pointer_cast<FrameBase>(_correspondant_ptr), _processor_ptr); + return std::make_shared<FactorOdom2dCloseloop>(_feature_ptr, std::static_pointer_cast<FrameBase>(_correspondant_ptr), _processor_ptr); } }; template<typename T> -inline bool FactorOdom2DCloseloop::operator ()(const T* const _p1, const T* const _o1, const T* const _p2, +inline bool FactorOdom2dCloseloop::operator ()(const T* const _p1, const T* const _o1, const T* const _p2, const T* const _o2, T* _residuals) const { @@ -91,9 +91,9 @@ inline bool FactorOdom2DCloseloop::operator ()(const T* const _p1, const T* cons // J.row(2) = ((Jet<double, 6>)(res(2))).v; // if (sizeof(er(0)) != sizeof(double)) // { -// std::cout << "FactorOdom2DCloseloop::Jacobian(c" << id() << ") = \n " << J << std::endl; -// std::cout << "FactorOdom2DCloseloop::Weighted Jacobian(c" << id() << ") = \n " << J << std::endl; -// std::cout << "FactorOdom2DCloseloop::Sqrt Info(c" << id() << ") = \n" << getMeasurementSquareRootInformationUpper() << std::endl; +// std::cout << "FactorOdom2dCloseloop::Jacobian(c" << id() << ") = \n " << J << std::endl; +// std::cout << "FactorOdom2dCloseloop::Weighted Jacobian(c" << id() << ") = \n " << J << std::endl; +// std::cout << "FactorOdom2dCloseloop::Sqrt Info(c" << id() << ") = \n" << getMeasurementSquareRootInformationUpper() << std::endl; // } //////////////////////////////////////////////////////// diff --git a/include/core/factor/factor_odom_3D.h b/include/core/factor/factor_odom_3d.h similarity index 90% rename from include/core/factor/factor_odom_3D.h rename to include/core/factor/factor_odom_3d.h index 1b53915402fe5adb6a1f1481fefc06add006c291..2e49daf216906b4e96d92e9c195cbff579fd6545 100644 --- a/include/core/factor/factor_odom_3D.h +++ b/include/core/factor/factor_odom_3d.h @@ -1,12 +1,12 @@ /* - * factor_odom_3D.h + * factor_odom_3d.h * * Created on: Oct 7, 2016 * Author: jsola */ -#ifndef FACTOR_ODOM_3D_H_ -#define FACTOR_ODOM_3D_H_ +#ifndef FACTOR_ODOM_3d_H_ +#define FACTOR_ODOM_3d_H_ #include "core/factor/factor_autodiff.h" #include "core/math/rotations.h" @@ -14,19 +14,19 @@ namespace wolf { -WOLF_PTR_TYPEDEFS(FactorOdom3D); +WOLF_PTR_TYPEDEFS(FactorOdom3d); //class -class FactorOdom3D : public FactorAutodiff<FactorOdom3D,6,3,4,3,4> +class FactorOdom3d : public FactorAutodiff<FactorOdom3d,6,3,4,3,4> { public: - FactorOdom3D(const FeatureBasePtr& _ftr_current_ptr, + FactorOdom3d(const FeatureBasePtr& _ftr_current_ptr, const FrameBasePtr& _frame_past_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status = FAC_ACTIVE); - virtual ~FactorOdom3D() = default; + virtual ~FactorOdom3d() = default; virtual std::string getTopology() const override { @@ -58,7 +58,7 @@ class FactorOdom3D : public FactorAutodiff<FactorOdom3D,6,3,4,3,4> }; template<typename T> -inline void FactorOdom3D::printRes(const Eigen::Matrix<T, 6, 1>& r) const +inline void FactorOdom3d::printRes(const Eigen::Matrix<T, 6, 1>& r) const { std::cout << "Jet residual = " << std::endl; std::cout << r(0) << std::endl; @@ -70,18 +70,18 @@ inline void FactorOdom3D::printRes(const Eigen::Matrix<T, 6, 1>& r) const } template<> -inline void FactorOdom3D::printRes (const Eigen::Matrix<double,6,1> & r) const +inline void FactorOdom3d::printRes (const Eigen::Matrix<double,6,1> & r) const { std::cout << "Scalar residual = " << std::endl; std::cout << r.transpose() << std::endl; } -inline FactorOdom3D::FactorOdom3D(const FeatureBasePtr& _ftr_current_ptr, +inline FactorOdom3d::FactorOdom3d(const FeatureBasePtr& _ftr_current_ptr, const FrameBasePtr& _frame_past_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status) : - FactorAutodiff<FactorOdom3D, 6, 3, 4, 3, 4>("FactorOdom3D", // type + FactorAutodiff<FactorOdom3d, 6, 3, 4, 3, 4>("FactorOdom3d", // type _frame_past_ptr, // frame other nullptr, // capture other nullptr, // feature other @@ -94,7 +94,7 @@ inline FactorOdom3D::FactorOdom3D(const FeatureBasePtr& _ftr_current_ptr, _frame_past_ptr->getP(), // past frame P _frame_past_ptr->getO()) // past frame Q { -// WOLF_TRACE("Constr ODOM 3D (f", _ftr_current_ptr->id(), +// WOLF_TRACE("Constr ODOM 3d (f", _ftr_current_ptr->id(), // " F", _ftr_current_ptr->getCapture()->getFrame()->id(), // ") (Fo", _frame_past_ptr->id(), ")"); // @@ -105,7 +105,7 @@ inline FactorOdom3D::FactorOdom3D(const FeatureBasePtr& _ftr_current_ptr, } template<typename T> -inline bool FactorOdom3D::expectation(const T* const _p_current, const T* const _q_current, const T* const _p_past, +inline bool FactorOdom3d::expectation(const T* const _p_current, const T* const _q_current, const T* const _p_past, const T* const _q_past, T* _expectation_dp, T* _expectation_dq) const { Eigen::Map<const Eigen::Matrix<T,3,1> > p_current(_p_current); @@ -145,7 +145,7 @@ inline bool FactorOdom3D::expectation(const T* const _p_current, const T* const return true; } -inline Eigen::VectorXd FactorOdom3D::expectation() const +inline Eigen::VectorXd FactorOdom3d::expectation() const { Eigen::VectorXd exp(7); FrameBasePtr frm_current = getFeature()->getFrame(); @@ -168,7 +168,7 @@ inline Eigen::VectorXd FactorOdom3D::expectation() const } template<typename T> -inline bool FactorOdom3D::operator ()(const T* const _p_current, const T* const _q_current, const T* const _p_past, +inline bool FactorOdom3d::operator ()(const T* const _p_current, const T* const _q_current, const T* const _p_past, const T* const _q_past, T* _residuals) const { @@ -235,4 +235,4 @@ inline bool FactorOdom3D::operator ()(const T* const _p_current, const T* const } /* namespace wolf */ -#endif /* FACTOR_ODOM_3D_H_ */ +#endif /* FACTOR_ODOM_3d_H_ */ diff --git a/include/core/factor/factor_pose_2D.h b/include/core/factor/factor_pose_2d.h similarity index 81% rename from include/core/factor/factor_pose_2D.h rename to include/core/factor/factor_pose_2d.h index fece6f0bc06d0352319ceaa30e614200a6d254e9..ce63c806017117e67d18c2e79c34468e6b16a61c 100644 --- a/include/core/factor/factor_pose_2D.h +++ b/include/core/factor/factor_pose_2d.h @@ -1,6 +1,6 @@ -#ifndef FACTOR_POSE_2D_H_ -#define FACTOR_POSE_2D_H_ +#ifndef FACTOR_POSE_2d_H_ +#define FACTOR_POSE_2d_H_ //Wolf includes #include "core/factor/factor_autodiff.h" @@ -11,27 +11,27 @@ namespace wolf { -WOLF_PTR_TYPEDEFS(FactorPose2D); +WOLF_PTR_TYPEDEFS(FactorPose2d); //class -class FactorPose2D: public FactorAutodiff<FactorPose2D,3,2,1> +class FactorPose2d: public FactorAutodiff<FactorPose2d,3,2,1> { public: - FactorPose2D(FeatureBasePtr _ftr_ptr, + FactorPose2d(FeatureBasePtr _ftr_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status = FAC_ACTIVE) : - FactorAutodiff<FactorPose2D, 3, 2, 1>("FactorPose2D", + FactorAutodiff<FactorPose2d, 3, 2, 1>("FactorPose2d", nullptr, nullptr, nullptr, nullptr, _processor_ptr, _apply_loss_function, _status, _ftr_ptr->getFrame()->getP(), _ftr_ptr->getFrame()->getO()) { -// std::cout << "created FactorPose2D " << std::endl; +// std::cout << "created FactorPose2d " << std::endl; } - virtual ~FactorPose2D() = default; + virtual ~FactorPose2d() = default; virtual std::string getTopology() const override { @@ -44,7 +44,7 @@ class FactorPose2D: public FactorAutodiff<FactorPose2D,3,2,1> }; template<typename T> -inline bool FactorPose2D::operator ()(const T* const _p, const T* const _o, T* _residuals) const +inline bool FactorPose2d::operator ()(const T* const _p, const T* const _o, T* _residuals) const { // measurement // Eigen::Matrix<T,3,1> meas = getMeasurement().cast<T>(); @@ -76,8 +76,8 @@ inline bool FactorPose2D::operator ()(const T* const _p, const T* const _o, T* _ // J.row(2) = ((Jet<double, 3>)(res(2))).v; // if (sizeof(er(0)) != sizeof(double)) // { -// std::cout << "FactorPose2D::Jacobian(c" << id() << ") = \n " << J << std::endl; -// std::cout << "FactorPose2D::Weighted Jacobian(c" << id() << ") = \n " << J << std::endl; +// std::cout << "FactorPose2d::Jacobian(c" << id() << ") = \n " << J << std::endl; +// std::cout << "FactorPose2d::Weighted Jacobian(c" << id() << ") = \n " << J << std::endl; // std::cout << "Sqrt Info(c" << id() << ") = \n " << getMeasurementSquareRootInformationUpper() << std::endl; // } //////////////////////////////////////////////////////// diff --git a/include/core/factor/factor_pose_3D.h b/include/core/factor/factor_pose_3d.h similarity index 82% rename from include/core/factor/factor_pose_3D.h rename to include/core/factor/factor_pose_3d.h index c82a1788f6919fd66844e3790c616c6afd54b7b8..9a46cbab24101a69faaad78ea190f1823406dd35 100644 --- a/include/core/factor/factor_pose_3D.h +++ b/include/core/factor/factor_pose_3d.h @@ -1,6 +1,6 @@ -#ifndef FACTOR_POSE_3D_H_ -#define FACTOR_POSE_3D_H_ +#ifndef FACTOR_POSE_3d_H_ +#define FACTOR_POSE_3d_H_ //Wolf includes #include "core/factor/factor_autodiff.h" @@ -9,18 +9,18 @@ namespace wolf { -WOLF_PTR_TYPEDEFS(FactorPose3D); +WOLF_PTR_TYPEDEFS(FactorPose3d); //class -class FactorPose3D: public FactorAutodiff<FactorPose3D,6,3,4> +class FactorPose3d: public FactorAutodiff<FactorPose3d,6,3,4> { public: - FactorPose3D(FeatureBasePtr _ftr_ptr, + FactorPose3d(FeatureBasePtr _ftr_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status = FAC_ACTIVE) : - FactorAutodiff<FactorPose3D,6,3,4>("FactorPose3D", + FactorAutodiff<FactorPose3d,6,3,4>("FactorPose3d", nullptr, nullptr, nullptr, nullptr, _processor_ptr, _apply_loss_function, @@ -30,7 +30,7 @@ class FactorPose3D: public FactorAutodiff<FactorPose3D,6,3,4> // } - virtual ~FactorPose3D() = default; + virtual ~FactorPose3d() = default; virtual std::string getTopology() const override { @@ -43,7 +43,7 @@ class FactorPose3D: public FactorAutodiff<FactorPose3D,6,3,4> }; template<typename T> -inline bool FactorPose3D::operator ()(const T* const _p, const T* const _o, T* _residuals) const +inline bool FactorPose3d::operator ()(const T* const _p, const T* const _o, T* _residuals) const { // states diff --git a/include/core/factor/factor_relative_2D_analytic.h b/include/core/factor/factor_relative_2d_analytic.h similarity index 94% rename from include/core/factor/factor_relative_2D_analytic.h rename to include/core/factor/factor_relative_2d_analytic.h index be2b7f16a3d5ce01f4c15ea9f4dbd52d7848a956..5a67da1ff6c0e17614902ebc3195dd8124ec0ed6 100644 --- a/include/core/factor/factor_relative_2D_analytic.h +++ b/include/core/factor/factor_relative_2d_analytic.h @@ -1,5 +1,5 @@ -#ifndef FACTOR_RELATIVE_2D_ANALYTIC_H_ -#define FACTOR_RELATIVE_2D_ANALYTIC_H_ +#ifndef FACTOR_RELATIVE_2d_ANALYTIC_H_ +#define FACTOR_RELATIVE_2d_ANALYTIC_H_ //Wolf includes #include "core/factor/factor_analytic.h" @@ -8,16 +8,16 @@ namespace wolf { -WOLF_PTR_TYPEDEFS(FactorRelative2DAnalytic); +WOLF_PTR_TYPEDEFS(FactorRelative2dAnalytic); //class -class FactorRelative2DAnalytic : public FactorAnalytic +class FactorRelative2dAnalytic : public FactorAnalytic { public: /** \brief Constructor of category FAC_FRAME **/ - FactorRelative2DAnalytic(const std::string& _tp, + FactorRelative2dAnalytic(const std::string& _tp, const FeatureBasePtr& _ftr_ptr, const FrameBasePtr& _frame_ptr, const ProcessorBasePtr& _processor_ptr, @@ -30,7 +30,7 @@ class FactorRelative2DAnalytic : public FactorAnalytic /** \brief Constructor of category FAC_FEATURE **/ - FactorRelative2DAnalytic(const std::string& _tp, + FactorRelative2dAnalytic(const std::string& _tp, const FeatureBasePtr& _ftr_ptr, const FeatureBasePtr& _ftr_other_ptr, const ProcessorBasePtr& _processor_ptr, @@ -43,7 +43,7 @@ class FactorRelative2DAnalytic : public FactorAnalytic /** \brief Constructor of category FAC_LANDMARK **/ - FactorRelative2DAnalytic(const std::string& _tp, + FactorRelative2dAnalytic(const std::string& _tp, const FeatureBasePtr& _ftr_ptr, const LandmarkBasePtr& _landmark_ptr, const ProcessorBasePtr& _processor_ptr, @@ -59,7 +59,7 @@ class FactorRelative2DAnalytic : public FactorAnalytic return std::string("GEOM"); } - virtual ~FactorRelative2DAnalytic() = default; + virtual ~FactorRelative2dAnalytic() = default; /** \brief Returns the factor residual size **/ @@ -102,7 +102,7 @@ class FactorRelative2DAnalytic : public FactorAnalytic /// IMPLEMENTATION /// -inline Eigen::VectorXd FactorRelative2DAnalytic::evaluateResiduals( +inline Eigen::VectorXd FactorRelative2dAnalytic::evaluateResiduals( const std::vector<Eigen::Map<const Eigen::VectorXd> >& _st_vector) const { Eigen::VectorXd residual(3); @@ -121,7 +121,7 @@ inline Eigen::VectorXd FactorRelative2DAnalytic::evaluateResiduals( return residual; } -inline void FactorRelative2DAnalytic::evaluateJacobians(const std::vector<Eigen::Map<const Eigen::VectorXd> >& _st_vector, +inline void FactorRelative2dAnalytic::evaluateJacobians(const std::vector<Eigen::Map<const Eigen::VectorXd> >& _st_vector, std::vector<Eigen::Map<Eigen::MatrixRowXd> >& jacobians, const std::vector<bool>& _compute_jacobian) const { @@ -157,7 +157,7 @@ inline void FactorRelative2DAnalytic::evaluateJacobians(const std::vector<Eigen: } } -inline void FactorRelative2DAnalytic::evaluateJacobians(const std::vector<Eigen::Map<const Eigen::VectorXd>>& _st_vector, +inline void FactorRelative2dAnalytic::evaluateJacobians(const std::vector<Eigen::Map<const Eigen::VectorXd>>& _st_vector, std::vector<Eigen::MatrixXd>& jacobians, const std::vector<bool>& _compute_jacobian) const { @@ -193,7 +193,7 @@ inline void FactorRelative2DAnalytic::evaluateJacobians(const std::vector<Eigen: } } -inline void FactorRelative2DAnalytic::evaluatePureJacobians(std::vector<Eigen::MatrixXd>& jacobians) const +inline void FactorRelative2dAnalytic::evaluatePureJacobians(std::vector<Eigen::MatrixXd>& jacobians) const { assert(jacobians.size() == 4); diff --git a/include/core/feature/feature_odom_2D.h b/include/core/feature/feature_odom_2d.h similarity index 65% rename from include/core/feature/feature_odom_2D.h rename to include/core/feature/feature_odom_2d.h index 3a50759802870400e19b3851959297295cc2aa55..9ef3059cd8afb11ea7cdf994b46b2f66ad344723 100644 --- a/include/core/feature/feature_odom_2D.h +++ b/include/core/feature/feature_odom_2d.h @@ -1,19 +1,19 @@ -#ifndef FEATURE_ODOM_2D_H_ -#define FEATURE_ODOM_2D_H_ +#ifndef FEATURE_ODOM_2d_H_ +#define FEATURE_ODOM_2d_H_ //Wolf includes #include "core/feature/feature_base.h" -#include "core/factor/factor_odom_2D.h" -#include "core/factor/factor_odom_2D_analytic.h" +#include "core/factor/factor_odom_2d.h" +#include "core/factor/factor_odom_2d_analytic.h" //std includes namespace wolf { -WOLF_PTR_TYPEDEFS(FeatureOdom2D); +WOLF_PTR_TYPEDEFS(FeatureOdom2d); -//class FeatureOdom2D -class FeatureOdom2D : public FeatureBase +//class FeatureOdom2d +class FeatureOdom2d : public FeatureBase { public: @@ -23,9 +23,9 @@ class FeatureOdom2D : public FeatureBase * \param _meas_covariance the noise of the measurement * */ - FeatureOdom2D(const Eigen::VectorXd& _measurement, const Eigen::MatrixXd& _meas_covariance); + FeatureOdom2d(const Eigen::VectorXd& _measurement, const Eigen::MatrixXd& _meas_covariance); - virtual ~FeatureOdom2D(); + virtual ~FeatureOdom2d(); /** \brief Generic interface to find factors * diff --git a/include/core/frame/frame_base.h b/include/core/frame/frame_base.h index 14bcc2139d66765f8a3c78f2358d2c4606b91221..3745de04806c78f65463c39da49bcf9ba42cf0f8 100644 --- a/include/core/frame/frame_base.h +++ b/include/core/frame/frame_base.h @@ -96,8 +96,10 @@ class FrameBase : public NodeBase, public HasStateBlocks, public std::enable_sha // State blocks ---------------------------------------------------- public: + using HasStateBlocks::addStateBlock; + StateBlockPtr addStateBlock(const std::string& _sb_type, const StateBlockPtr& _sb); StateBlockPtr getV() const; - void setV(const StateBlockPtr _v_ptr); + protected: virtual void setProblem(ProblemPtr _problem) final; @@ -192,11 +194,6 @@ inline StateBlockPtr FrameBase::getV() const return getStateBlock("V"); } -inline void FrameBase::setV(const StateBlockPtr _v_ptr) -{ - addStateBlock("V", _v_ptr); -} - inline TrajectoryBasePtr FrameBase::getTrajectory() const { return trajectory_ptr_.lock(); @@ -217,6 +214,17 @@ inline const FactorBasePtrList& FrameBase::getConstrainedByList() const return constrained_by_list_; } +inline StateBlockPtr FrameBase::addStateBlock(const std::string& _sb_type, + const StateBlockPtr& _sb) +{ + if (isKeyOrAux()) + HasStateBlocks::addStateBlock(_sb_type, _sb, getProblem()); + else + HasStateBlocks::addStateBlock(_sb_type, _sb, nullptr); + + return _sb; +} + inline void FrameBase::setTrajectory(TrajectoryBasePtr _trj_ptr) { trajectory_ptr_ = _trj_ptr; diff --git a/include/core/math/SE3.h b/include/core/math/SE3.h index 9acfc971027378db119d4c96e78d94793614b631..701c5bab7a5ec5ecc6401def52ad9ca6d0f26856 100644 --- a/include/core/math/SE3.h +++ b/include/core/math/SE3.h @@ -12,9 +12,9 @@ #include "core/math/rotations.h" /* - * The functions in this file are related to manipulations of Delta motion magnitudes used in 3D motion. + * The functions in this file are related to manipulations of Delta motion magnitudes used in 3d motion. * - * The Delta is defined as a simple 3D pose with the rotation expressed in quaternion form, + * The Delta is defined as a simple 3d pose with the rotation expressed in quaternion form, * Delta = [Dp, Dq] * with * Dp : position delta diff --git a/include/core/math/rotations.h b/include/core/math/rotations.h index 4196b9b35bba96995dddcd7156c6b3d47617f93a..7c2ede927a796adfd35e7dd9240e0128f1192c11 100644 --- a/include/core/math/rotations.h +++ b/include/core/math/rotations.h @@ -62,7 +62,7 @@ toDeg(const T rad) /** \brief Skew symmetric matrix * - * @param _v a 3D vector + * @param _v a 3d vector * @return the skew-symmetric matrix V so that V*u = _v.cross(u), for u in R^3 */ template<typename Derived> @@ -346,7 +346,7 @@ exp_R(const Eigen::MatrixBase<Derived>& _v) /** \brief Rotation matrix logarithmic map * - * @param _R a 3D rotation matrix + * @param _R a 3d rotation matrix * @return the rotation vector v such that _R = exp_R(v) */ template<typename Derived> diff --git a/include/core/problem/problem.h b/include/core/problem/problem.h index d7133cddc09f99aad05d0ada7c35ffbe88513c25..63674826d08a026767aeb19a62803b46625b0d2b 100644 --- a/include/core/problem/problem.h +++ b/include/core/problem/problem.h @@ -21,6 +21,7 @@ struct ProcessorParamsBase; #include "core/utils/params_server.hpp" #include "core/sensor/sensor_factory.h" #include "core/processor/processor_factory.h" +#include "core/processor/is_motion.h" // std includes #include <mutex> @@ -45,7 +46,8 @@ class Problem : public std::enable_shared_from_this<Problem> HardwareBasePtr hardware_ptr_; TrajectoryBasePtr trajectory_ptr_; MapBasePtr map_ptr_; - ProcessorMotionPtr processor_motion_ptr_; + IsMotionPtr processor_motion_ptr_; +// IsMotionPtr is_motion_ptr_; std::map<std::pair<StateBlockPtr, StateBlockPtr>, Eigen::MatrixXd> covariances_; SizeEigen state_size_, state_cov_size_, dim_; std::map<FactorBasePtr, Notification> factor_notification_map_; @@ -78,7 +80,7 @@ class Problem : public std::enable_shared_from_this<Problem> /** \brief Factory method to install (create and add) sensors only from its properties * \param _sen_type type of sensor * \param _unique_sensor_name unique sensor name, used to identify the particular instance of the sensor - * \param _extrinsics a vector of extrinsic parameters: size 2 for 2D position, 3 for 2D pose, 3 for 3D position, 7 for 3D pose. + * \param _extrinsics a vector of extrinsic parameters: size 2 for 2d position, 3 for 2d pose, 3 for 3d position, 7 for 3d pose. * \param _intrinsics a base-pointer to a derived struct defining the intrinsic parameters. */ SensorBasePtr installSensor(const std::string& _sen_type, // @@ -89,7 +91,7 @@ class Problem : public std::enable_shared_from_this<Problem> /** \brief Factory method to install (create and add) sensors only from its properties -- Helper method loading parameters from file * \param _sen_type type of sensor * \param _unique_sensor_name unique sensor name, used to identify the particular instance of the sensor - * \param _extrinsics a vector of extrinsic parameters: size 2 for 2D position, 3 for 2D pose, 3 for 3D position, 7 for 3D pose. + * \param _extrinsics a vector of extrinsic parameters: size 2 for 2d position, 3 for 2d pose, 3 for 3d position, 7 for 3d pose. * \param _intrinsics_filename the name of a file containing the intrinsic parameters in a format compatible with the intrinsics creator registered in ParamsSensorFactory under the key _sen_type. */ SensorBasePtr installSensor(const std::string& _sen_type, // @@ -147,12 +149,12 @@ class Problem : public std::enable_shared_from_this<Problem> * * Set the processor motion. */ - void setProcessorMotion(ProcessorMotionPtr _processor_motion_ptr); - ProcessorMotionPtr setProcessorMotion(const std::string& _unique_processor_name); + void setProcessorMotion(IsMotionPtr _processor_motion_ptr); + IsMotionPtr setProcessorMotion(const std::string& _unique_processor_name); void clearProcessorMotion(); public: - ProcessorMotionPtr& getProcessorMotion(); + IsMotionPtr& getProcessorMotion(); // Trajectory branch ---------------------------------- TrajectoryBasePtr getTrajectory() const; @@ -269,6 +271,9 @@ class Problem : public std::enable_shared_from_this<Problem> // Zero state provider Eigen::VectorXd zeroState ( ) const; bool priorIsSet() const; + // Perturb state + void perturb(double amplitude = 0.01); + // Map branch ----------------------------------------- MapBasePtr getMap() const; @@ -362,7 +367,7 @@ inline bool Problem::priorIsSet() const return prior_is_set_; } -inline ProcessorMotionPtr& Problem::getProcessorMotion() +inline IsMotionPtr& Problem::getProcessorMotion() { return processor_motion_ptr_; } diff --git a/include/core/processor/is_motion.h b/include/core/processor/is_motion.h new file mode 100644 index 0000000000000000000000000000000000000000..f3cf0d781f39c9fda6ffb9e64817ceed0acfa162 --- /dev/null +++ b/include/core/processor/is_motion.h @@ -0,0 +1,84 @@ +/** + * \file is_motion.h + * + * Created on: Mar 10, 2020 + * \author: jsola + */ + +#ifndef PROCESSOR_IS_MOTION_H_ +#define PROCESSOR_IS_MOTION_H_ + +#include "core/common/wolf.h" + +namespace wolf +{ + +class TimeStamp; + +WOLF_PTR_TYPEDEFS(IsMotion); + +class IsMotion +{ + public: + + virtual ~IsMotion(); + + // Queries to the processor: + + /** \brief Fill a reference to the state integrated so far + * \param _x the returned state vector + */ + virtual void getCurrentState(Eigen::VectorXd& _x) const = 0; + virtual void getCurrentTimeStamp(TimeStamp& _ts) const = 0; + /** \brief Fill the state corresponding to the provided time-stamp + * \param _ts the time stamp + * \param _x the returned state + * \return if state in the provided time-stamp could be resolved + */ + virtual bool getState(const TimeStamp& _ts, Eigen::VectorXd& _x) const = 0; + + + // Overloaded getters + Eigen::VectorXd getCurrentState() const; + TimeStamp getCurrentTimeStamp() const; + Eigen::VectorXd getState(const TimeStamp& _ts) const; + +}; + +} + +///// IMPLEMENTATION /////// +#include "core/common/time_stamp.h" + +namespace wolf{ + +inline IsMotion::~IsMotion() +{ +} + +inline Eigen::VectorXd IsMotion::getCurrentState() const +{ + Eigen::VectorXd x; + getCurrentState(x); + return x; +} + +inline TimeStamp IsMotion::getCurrentTimeStamp() const +{ + TimeStamp ts; + getCurrentTimeStamp(ts); + return ts; +} + +inline Eigen::VectorXd IsMotion::getState(const TimeStamp& _ts) const +{ + Eigen::VectorXd x; + getState(_ts, x); + return x; +} + + + +} /* namespace wolf */ + +#endif /* PROCESSOR_IS_MOTION_H_ */ diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h index c4c325aac18b0435357c73af53e44f7a208186ae..f3feeb56a3bcc6787d8efeb1355175b989dd3f3e 100644 --- a/include/core/processor/processor_base.h +++ b/include/core/processor/processor_base.h @@ -9,6 +9,7 @@ class SensorBase; // Wolf includes #include "core/common/wolf.h" #include "core/common/node_base.h" +#include "core/processor/is_motion.h" #include "core/sensor/sensor_base.h" #include "core/frame/frame_base.h" #include "core/common/time_stamp.h" @@ -245,13 +246,14 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce ProcessorParamsBasePtr params_; BufferPackKeyFrame buffer_pack_kf_; BufferCapture buffer_capture_; + int dim_; private: SensorBaseWPtr sensor_ptr_; static unsigned int processor_id_count_; public: - ProcessorBase(const std::string& _type, ProcessorParamsBasePtr _params); + ProcessorBase(const std::string& _type, int _dim, ProcessorParamsBasePtr _params); virtual ~ProcessorBase(); virtual void configure(SensorBasePtr _sensor) = 0; virtual void remove(); @@ -338,7 +340,7 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce void setSensor(SensorBasePtr _sen_ptr){sensor_ptr_ = _sen_ptr;} public: - virtual bool isMotion() const; + bool isMotion() const; void setTimeTolerance(double _time_tolerance); @@ -348,6 +350,8 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce void setVotingActive(bool _voting_active = true); + int getDim() const; + void link(SensorBasePtr); template<typename classType, typename... T> static std::shared_ptr<classType> emplace(SensorBasePtr _sen_ptr, T&&... all); @@ -376,7 +380,8 @@ inline void ProcessorBase::setVotingAuxActive(bool _voting_active) inline bool ProcessorBase::isMotion() const { - return false; + // check if this inherits from IsMotion + return (std::dynamic_pointer_cast<const IsMotion>(shared_from_this()) != nullptr); } inline unsigned int ProcessorBase::id() const @@ -393,7 +398,10 @@ inline void ProcessorBase::setTimeTolerance(double _time_tolerance) { params_->time_tolerance = _time_tolerance; } - +inline int ProcessorBase::getDim() const +{ + return dim_; +} template<typename classType, typename... T> std::shared_ptr<classType> ProcessorBase::emplace(SensorBasePtr _sen_ptr, T&&... all) diff --git a/include/core/processor/processor_diff_drive.h b/include/core/processor/processor_diff_drive.h index 05b98e4b517e25cd4aa476238bde867c2196de23..48d18acccc0e48f3f5f2373b0ece28e2da607f61 100644 --- a/include/core/processor/processor_diff_drive.h +++ b/include/core/processor/processor_diff_drive.h @@ -8,29 +8,29 @@ #ifndef PROCESSOR_PROCESSOR_DIFF_DRIVE_H_ #define PROCESSOR_PROCESSOR_DIFF_DRIVE_H_ -#include "core/processor/processor_odom_2D.h" +#include "core/processor/processor_odom_2d.h" namespace wolf { WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsDiffDrive); -struct ProcessorParamsDiffDrive : public ProcessorParamsOdom2D +struct ProcessorParamsDiffDrive : public ProcessorParamsOdom2d { ProcessorParamsDiffDrive() = default; ProcessorParamsDiffDrive(std::string _unique_name, const wolf::ParamsServer & _server) : - ProcessorParamsOdom2D(_unique_name, _server) + ProcessorParamsOdom2d(_unique_name, _server) { } std::string print() const { - return "\n" + ProcessorParamsOdom2D::print(); + return "\n" + ProcessorParamsOdom2d::print(); } }; WOLF_PTR_TYPEDEFS(ProcessorDiffDrive); -class ProcessorDiffDrive : public ProcessorOdom2D +class ProcessorDiffDrive : public ProcessorOdom2d { public: ProcessorDiffDrive(ProcessorParamsDiffDrivePtr _params_motion); diff --git a/include/core/processor/processor_factory.h b/include/core/processor/processor_factory.h index 24f074902f56999949d83e9b7b8a412c14e3aa41..c14f3daa364678ef6f549fa04f65eddb4885e1fd 100644 --- a/include/core/processor/processor_factory.h +++ b/include/core/processor/processor_factory.h @@ -27,14 +27,14 @@ namespace wolf * * Specific object creation is invoked by create(TYPE, params), and the TYPE of processor is identified with a string. * For example, the following processor types are implemented, - * - "ODOM 3D" for ProcessorOdom3D - * - "ODOM 2D" for ProcessorOdom2D + * - "ODOM 3d" for ProcessorOdom3d + * - "ODOM 2d" for ProcessorOdom2d * - "GPS" for ProcessorGPS * * The rule to make new TYPE strings unique is that you skip the prefix 'Processor' from your class name, * and you build a string in CAPITALS with space separators. * - ProcessorImageFeature -> ````"IMAGE"```` - * - ProcessorLaser2D -> ````"LASER 2D"```` + * - ProcessorLaser2d -> ````"LASER 2d"```` * - etc. * * The methods to create specific processors are called __creators__. @@ -44,7 +44,7 @@ namespace wolf * - Access the Factory * - Register and unregister creators * - Create processors - * - Write a processor creator for ProcessorOdom2D (example). + * - Write a processor creator for ProcessorOdom2d (example). * * #### Accessing the Factory * The ProcessorFactory class is a singleton: it can only exist once in your application. @@ -69,37 +69,37 @@ namespace wolf * that knows how to create your specific processor, e.g.: * * \code - * ProcessorFactory::get().registerCreator("ProcessorOdom2D", ProcessorOdom2D::create); + * ProcessorFactory::get().registerCreator("ProcessorOdom2d", ProcessorOdom2d::create); * \endcode * - * The method ProcessorOdom2D::create() exists in the ProcessorOdom2D class as a static method. + * The method ProcessorOdom2d::create() exists in the ProcessorOdom2d class as a static method. * All these ProcessorXxx::create() methods need to have exactly the same API, regardless of the processor type. * This API includes a processor name, and a pointer to a base struct of parameters, ProcessorParamsBasePtr, * that can be derived for each derived processor. * - * Here is an example of ProcessorOdom2D::create() extracted from processor_odom_2D.h: + * Here is an example of ProcessorOdom2d::create() extracted from processor_odom_2d.h: * * \code * static ProcessorBasePtr create(const std::string& _name, ProcessorParamsBasePtr _params) * { * // cast _params to good type - * ProcessorParamsOdom2D* params = (ProcessorParamsOdom2D*)_params; + * ProcessorParamsOdom2d* params = (ProcessorParamsOdom2d*)_params; * - * ProcessorBasePtr prc = new ProcessorOdom2D(params); - * prc->setName(_name); // pass the name to the created ProcessorOdom2D. + * ProcessorBasePtr prc = new ProcessorOdom2d(params); + * prc->setName(_name); // pass the name to the created ProcessorOdom2d. * return prc; * } * \endcode * * #### Achieving automatic registration * Currently, registering is performed in each specific ProcessorXxxx source file, processor_xxxx.cpp. - * For example, in processor_odom_2D.cpp we find the line: + * For example, in processor_odom_2d.cpp we find the line: * * \code - * const bool registered_odom_2D = ProcessorFactory::get().registerCreator("ProcessorOdom2D", ProcessorOdom2D::create); + * const bool registered_odom_2d = ProcessorFactory::get().registerCreator("ProcessorOdom2d", ProcessorOdom2d::create); * \endcode * - * which is a static invocation (i.e., it is placed at global scope outside of the ProcessorOdom2D class). + * which is a static invocation (i.e., it is placed at global scope outside of the ProcessorOdom2d class). * Therefore, at application level, all processors that have a .cpp file compiled are automatically registered. * * #### Unregister processor creators @@ -107,39 +107,39 @@ namespace wolf * It only needs to be passed the string of the processor type. * * \code - * ProcessorFactory::get().unregisterCreator("ProcessorOdom2D"); + * ProcessorFactory::get().unregisterCreator("ProcessorOdom2d"); * \endcode * * #### Creating processors * Prior to invoking the creation of a processor of a particular type, * you must register the creator for this type into the factory. * - * To create a ProcessorOdom2D, you type: + * To create a ProcessorOdom2d, you type: * * \code - * ProcessorFactory::get().create("ProcessorOdom2D", "main odometry", params_ptr); + * ProcessorFactory::get().create("ProcessorOdom2d", "main odometry", params_ptr); * \endcode * * #### Example 1 : using the Factories alone - * We provide the necessary steps to create a processor of class ProcessorOdom2D in our application, - * and bind it to a SensorOdom2D: + * We provide the necessary steps to create a processor of class ProcessorOdom2d in our application, + * and bind it to a SensorOdom2d: * * \code - * #include "core/sensor/sensor_odom_2D.h" // provides SensorOdom2D and SensorFactory - * #include "core/processor/processor_odom_2D.h" // provides ProcessorOdom2D and ProcessorFactory + * #include "core/sensor/sensor_odom_2d.h" // provides SensorOdom2d and SensorFactory + * #include "core/processor/processor_odom_2d.h" // provides ProcessorOdom2d and ProcessorFactory * - * // Note: SensorOdom2D::create() is already registered, automatically. - * // Note: ProcessorOdom2D::create() is already registered, automatically. + * // Note: SensorOdom2d::create() is already registered, automatically. + * // Note: ProcessorOdom2d::create() is already registered, automatically. * * // First create the sensor (See SensorFactory for details) - * SensorBasePtr sensor_ptr = SensorFactory::get().create ( "FactorOdom2D" , "Main odometer" , extrinsics , &intrinsics ); + * SensorBasePtr sensor_ptr = SensorFactory::get().create ( "FactorOdom2d" , "Main odometer" , extrinsics , &intrinsics ); * - * // To create a odometry integrator, provide a type="ODOM 2D", a name="main odometry", and a pointer to the parameters struct: + * // To create a odometry integrator, provide a type="ODOM 2d", a name="main odometry", and a pointer to the parameters struct: * - * ProcessorParamsOdom2D params({...}); // fill in the derived struct (note: ProcessorOdom2D actually has no input params) + * ProcessorParamsOdom2d params({...}); // fill in the derived struct (note: ProcessorOdom2d actually has no input params) * * ProcessorBasePtr processor_ptr = - * ProcessorFactory::get().create ( "ProcessorOdom2D" , "main odometry" , ¶ms ); + * ProcessorFactory::get().create ( "ProcessorOdom2d" , "main odometry" , ¶ms ); * * // Bind processor to sensor * sensor_ptr->addProcessor(processor_ptr); @@ -153,13 +153,13 @@ namespace wolf * The example 1 above can be accomplished as follows (we obviated for simplicity all the parameter creation), * * \code - * #include "core/sensor/sensor_odom_2D.h" - * #include "core/processor/processor_odom_2D.h" + * #include "core/sensor/sensor_odom_2d.h" + * #include "core/processor/processor_odom_2d.h" * #include "core/problem/problem.h" * - * Problem problem(FRM_PO_2D); - * problem.installSensor ( "SensorOdom2D" , "Main odometer" , extrinsics , &intrinsics ); - * problem.installProcessor ( "ProcessorOdom2D" , "Odometry" , "Main odometer" , ¶ms ); + * Problem problem(FRM_PO_2d); + * problem.installSensor ( "SensorOdom2d" , "Main odometer" , extrinsics , &intrinsics ); + * problem.installProcessor ( "ProcessorOdom2d" , "Odometry" , "Main odometer" , ¶ms ); * \endcode * * You can also check the code in the example file ````src/examples/test_wolf_factories.cpp````. diff --git a/include/core/processor/processor_loopclosure.h b/include/core/processor/processor_loopclosure.h index a1f9f67dd14e28c617ab476608e96924d6b3e78e..b0720f3a47afdfd7878b23929923295964340ea5 100644 --- a/include/core/processor/processor_loopclosure.h +++ b/include/core/processor/processor_loopclosure.h @@ -47,10 +47,11 @@ class ProcessorLoopClosure : public ProcessorBase protected: ProcessorParamsLoopClosurePtr params_loop_closure_; + int _dim; public: - ProcessorLoopClosure(const std::string& _type, ProcessorParamsLoopClosurePtr _params_loop_closure); + ProcessorLoopClosure(const std::string& _type, int _dim, ProcessorParamsLoopClosurePtr _params_loop_closure); virtual ~ProcessorLoopClosure() = default; virtual void configure(SensorBasePtr _sensor) override { }; diff --git a/include/core/processor/processor_motion.h b/include/core/processor/processor_motion.h index 88ee84a24470cc715adc8bf512db0d8004e827b0..2ac6c8d5949ad07c1529fd06739c0ce80211f243 100644 --- a/include/core/processor/processor_motion.h +++ b/include/core/processor/processor_motion.h @@ -11,6 +11,7 @@ // Wolf #include "core/capture/capture_motion.h" #include "core/processor/processor_base.h" +#include "core/processor/is_motion.h" #include "core/common/time_stamp.h" #include "core/utils/params_server.hpp" @@ -129,7 +130,7 @@ struct ProcessorParamsMotion : public ProcessorParamsBase * // TODO: JS: review instructions up to here * */ -class ProcessorMotion : public ProcessorBase +class ProcessorMotion : public ProcessorBase, public IsMotion { public: typedef enum { @@ -147,6 +148,7 @@ class ProcessorMotion : public ProcessorBase // This is the main public interface public: ProcessorMotion(const std::string& _type, + int _dim, SizeEigen _state_size, SizeEigen _delta_size, SizeEigen _delta_cov_size, @@ -159,32 +161,23 @@ class ProcessorMotion : public ProcessorBase virtual void resetDerived(); // Queries to the processor: - virtual bool isMotion() const override; /** \brief Fill a reference to the state integrated so far * \param _x the returned state vector */ - void getCurrentState(Eigen::VectorXd& _x) const; - void getCurrentTimeStamp(TimeStamp& _ts) const { _ts = getBuffer().get().back().ts_; } + virtual void getCurrentState(Eigen::VectorXd& _x) const override; + virtual void getCurrentTimeStamp(TimeStamp& _ts) const override { _ts = getBuffer().get().back().ts_; } + using IsMotion::getCurrentState; + using IsMotion::getCurrentTimeStamp; - /** \brief Get the state integrated so far - * \return the state vector - */ - Eigen::VectorXd getCurrentState() const; - TimeStamp getCurrentTimeStamp() const; /** \brief Fill the state corresponding to the provided time-stamp * \param _ts the time stamp * \param _x the returned state * \return if state in the provided time-stamp could be resolved */ - bool getState(const TimeStamp& _ts, Eigen::VectorXd& _x) const; - - /** \brief Get the state corresponding to the provided time-stamp - * \param _ts the time stamp - * \return the state vector - */ - Eigen::VectorXd getState(const TimeStamp& _ts) const; + virtual bool getState(const TimeStamp& _ts, Eigen::VectorXd& _x) const override; + using IsMotion::getState; /** \brief Gets the delta preintegrated covariance from all integrations so far * \return the delta preintegrated covariance matrix @@ -408,8 +401,8 @@ class ProcessorMotion : public ProcessorBase * \return a delta state equivalent to the null motion. * * Examples (see documentation of the the class for info on Eigen::VectorXd): - * - 2D odometry: a 3-vector with all zeros, e.g. VectorXd::Zero(3) - * - 3D odometry: delta type is a PQ vector: 7-vector with [0,0,0, 0,0,0,1] + * - 2d odometry: a 3-vector with all zeros, e.g. VectorXd::Zero(3) + * - 3d odometry: delta type is a PQ vector: 7-vector with [0,0,0, 0,0,0,1] * - IMU: PQVBB 10-vector with [0,0,0, 0,0,0,1, 0,0,0] // No biases in the delta !! */ virtual Eigen::VectorXd deltaZero() const = 0; @@ -506,25 +499,6 @@ inline bool ProcessorMotion::voteForKeyFrame() const return false; } -inline Eigen::VectorXd ProcessorMotion::getState(const TimeStamp& _ts) const -{ - Eigen::VectorXd x(getProblem()->getFrameStructureSize()); - getState(_ts, x); - return x; -} - -inline TimeStamp ProcessorMotion::getCurrentTimeStamp() const -{ - return getBuffer().get().back().ts_; -} - -inline Eigen::VectorXd ProcessorMotion::getCurrentState() const -{ - Eigen::VectorXd x(getProblem()->getFrameStructureSize()); - getCurrentState(x); - return x; -} - inline void ProcessorMotion::getCurrentState(Eigen::VectorXd& _x) const { // ensure integrity @@ -556,11 +530,6 @@ inline Motion ProcessorMotion::getMotion(const TimeStamp& _ts) const return capture_ptr->getBuffer().getMotion(_ts); } -inline bool ProcessorMotion::isMotion() const -{ - return true; -} - inline double ProcessorMotion::updateDt() { return dt_ = incoming_ptr_->getTimeStamp() - getBuffer().get().back().ts_; diff --git a/include/core/processor/processor_odom_2D.h b/include/core/processor/processor_odom_2d.h similarity index 79% rename from include/core/processor/processor_odom_2D.h rename to include/core/processor/processor_odom_2d.h index 491df7ada9f4b9c540740b4a9f06bb209e74f31c..6d46ab61a32c1b9573f386c97f1ae671086478c6 100644 --- a/include/core/processor/processor_odom_2D.h +++ b/include/core/processor/processor_odom_2d.h @@ -1,30 +1,30 @@ /** - * \file processor_odom_2D.h + * \file processor_odom_2d.h * * Created on: Apr 15, 2016 * \author: jvallve */ -#ifndef SRC_PROCESSOR_ODOM_2D_H_ -#define SRC_PROCESSOR_ODOM_2D_H_ +#ifndef SRC_PROCESSOR_ODOM_2d_H_ +#define SRC_PROCESSOR_ODOM_2d_H_ #include "core/processor/processor_motion.h" -#include "core/capture/capture_odom_2D.h" -#include "core/factor/factor_odom_2D.h" +#include "core/capture/capture_odom_2d.h" +#include "core/factor/factor_odom_2d.h" #include "core/math/rotations.h" #include "core/utils/params_server.hpp" namespace wolf { -WOLF_PTR_TYPEDEFS(ProcessorOdom2D); -WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom2D); +WOLF_PTR_TYPEDEFS(ProcessorOdom2d); +WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom2d); -struct ProcessorParamsOdom2D : public ProcessorParamsMotion +struct ProcessorParamsOdom2d : public ProcessorParamsMotion { double cov_det = 1.0; - ProcessorParamsOdom2D() = default; - ProcessorParamsOdom2D(std::string _unique_name, const wolf::ParamsServer & _server) : + ProcessorParamsOdom2d() = default; + ProcessorParamsOdom2d(std::string _unique_name, const wolf::ParamsServer & _server) : ProcessorParamsMotion(_unique_name, _server) { cov_det = _server.getParam<double>(prefix + _unique_name + "/keyframe_vote/cov_det"); @@ -37,15 +37,15 @@ struct ProcessorParamsOdom2D : public ProcessorParamsMotion } }; -class ProcessorOdom2D : public ProcessorMotion +class ProcessorOdom2d : public ProcessorMotion { public: - ProcessorOdom2D(ProcessorParamsOdom2DPtr _params); - virtual ~ProcessorOdom2D(); - virtual void configure(SensorBasePtr _sensor) override { }; + ProcessorOdom2d(ProcessorParamsOdom2dPtr _params); + virtual ~ProcessorOdom2d(); + virtual void configure(SensorBasePtr _sensor) override; // Factory method for high level API - WOLF_PROCESSOR_CREATE(ProcessorOdom2D, ProcessorParamsOdom2D); + WOLF_PROCESSOR_CREATE(ProcessorOdom2d, ProcessorParamsOdom2d); virtual bool voteForKeyFrame() const override; @@ -86,15 +86,15 @@ class ProcessorOdom2D : public ProcessorMotion CaptureBasePtr _capture_origin) override; protected: - ProcessorParamsOdom2DPtr params_odom_2D_; + ProcessorParamsOdom2dPtr params_odom_2d_; }; -inline Eigen::VectorXd ProcessorOdom2D::deltaZero() const +inline Eigen::VectorXd ProcessorOdom2d::deltaZero() const { return Eigen::VectorXd::Zero(delta_size_); } } // namespace wolf -#endif /* SRC_PROCESSOR_ODOM_2D_H_ */ +#endif /* SRC_PROCESSOR_ODOM_2d_H_ */ diff --git a/include/core/processor/processor_odom_3D.h b/include/core/processor/processor_odom_3d.h similarity index 82% rename from include/core/processor/processor_odom_3D.h rename to include/core/processor/processor_odom_3d.h index 9c487a8ea061fa42466fb6bf62fbc9868c3094de..f8f849b896aad644f998c38b50e8ca198c0738c4 100644 --- a/include/core/processor/processor_odom_3D.h +++ b/include/core/processor/processor_odom_3d.h @@ -1,28 +1,28 @@ /** - * \file processor_odom_3D.h + * \file processor_odom_3d.h * * Created on: Mar 18, 2016 * \author: jsola */ -#ifndef SRC_PROCESSOR_ODOM_3D_H_ -#define SRC_PROCESSOR_ODOM_3D_H_ +#ifndef SRC_PROCESSOR_ODOM_3d_H_ +#define SRC_PROCESSOR_ODOM_3d_H_ #include "core/processor/processor_motion.h" -#include "core/sensor/sensor_odom_3D.h" -#include "core/capture/capture_odom_3D.h" -#include "core/factor/factor_odom_3D.h" +#include "core/sensor/sensor_odom_3d.h" +#include "core/capture/capture_odom_3d.h" +#include "core/factor/factor_odom_3d.h" #include "core/math/rotations.h" #include <cmath> namespace wolf { -WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom3D); +WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom3d); -struct ProcessorParamsOdom3D : public ProcessorParamsMotion +struct ProcessorParamsOdom3d : public ProcessorParamsMotion { - ProcessorParamsOdom3D() = default; - ProcessorParamsOdom3D(std::string _unique_name, const ParamsServer& _server): + ProcessorParamsOdom3d() = default; + ProcessorParamsOdom3d(std::string _unique_name, const ParamsServer& _server): ProcessorParamsMotion(_unique_name, _server) { // @@ -33,11 +33,11 @@ struct ProcessorParamsOdom3D : public ProcessorParamsMotion } }; -WOLF_PTR_TYPEDEFS(ProcessorOdom3D); +WOLF_PTR_TYPEDEFS(ProcessorOdom3d); /** \brief Processor for 3d odometry integration. * - * This processor integrates motion data in the form of 3D odometry. + * This processor integrates motion data in the form of 3d odometry. * * The odometry data is extracted from Captures of the type CaptureOdometry3d. * This data comes in the form of a 6-vector, or a 7-vector, containing the following components: @@ -57,15 +57,15 @@ WOLF_PTR_TYPEDEFS(ProcessorOdom3D); * * All frames are assumed FLU ( x: Front, y: Left, z: Up ). */ -class ProcessorOdom3D : public ProcessorMotion +class ProcessorOdom3d : public ProcessorMotion { public: - ProcessorOdom3D(ProcessorParamsOdom3DPtr _params); - virtual ~ProcessorOdom3D(); + ProcessorOdom3d(ProcessorParamsOdom3dPtr _params); + virtual ~ProcessorOdom3d(); virtual void configure(SensorBasePtr _sensor) override; // Factory method for high level API - WOLF_PROCESSOR_CREATE(ProcessorOdom3D, ProcessorParamsOdom3D); + WOLF_PROCESSOR_CREATE(ProcessorOdom3d, ProcessorParamsOdom3d); public: // Motion integration @@ -107,9 +107,9 @@ class ProcessorOdom3D : public ProcessorMotion CaptureBasePtr _capture_origin) override; protected: - ProcessorParamsOdom3DPtr params_odom_3D_; + ProcessorParamsOdom3dPtr params_odom_3d_; - // noise parameters (stolen from owner SensorOdom3D) + // noise parameters (stolen from owner SensorOdom3d) double k_disp_to_disp_; // displacement variance growth per meter of linear motion double k_disp_to_rot_; // orientation variance growth per meter of linear motion double k_rot_to_rot_; // orientation variance growth per radian of rotational motion @@ -118,11 +118,11 @@ class ProcessorOdom3D : public ProcessorMotion }; -inline Eigen::VectorXd ProcessorOdom3D::deltaZero() const +inline Eigen::VectorXd ProcessorOdom3d::deltaZero() const { return (Eigen::VectorXd(7) << 0,0,0, 0,0,0,1).finished(); // p, q } } // namespace wolf -#endif /* SRC_PROCESSOR_ODOM_3D_H_ */ +#endif /* SRC_PROCESSOR_ODOM_3d_H_ */ diff --git a/include/core/processor/processor_tracker.h b/include/core/processor/processor_tracker.h index e5e61d3f097779e48a179a37b51c7be5b87038c8..d7ab951643fbc2760b8d81110a9f2338a96dad36 100644 --- a/include/core/processor/processor_tracker.h +++ b/include/core/processor/processor_tracker.h @@ -104,15 +104,14 @@ class ProcessorTracker : public ProcessorBase FeatureBasePtrList new_features_last_; ///< List of new features in \b last for landmark initialization and new key-frame creation. FeatureBasePtrList new_features_incoming_; ///< list of the new features of \b last successfully tracked in \b incoming FeatureBasePtrList known_features_incoming_; ///< list of the known features in \b last successfully tracked in \b incoming + int _dim; public: ProcessorTracker(const std::string& _type, + int _dim, ProcessorParamsTrackerPtr _params_tracker); virtual ~ProcessorTracker(); - virtual bool isMotion() const final override {return false; } - - bool checkTimeTolerance(const TimeStamp& _ts1, const TimeStamp& _ts2); bool checkTimeTolerance(const CaptureBasePtr _cap, const TimeStamp& _ts); bool checkTimeTolerance(const FrameBasePtr _frm, const TimeStamp& _ts); diff --git a/include/core/processor/processor_tracker_feature.h b/include/core/processor/processor_tracker_feature.h index f05fb89762d6efef528c100502523b41a869af9f..b86e041d25e026762ea1413429b1c6e63a594fd7 100644 --- a/include/core/processor/processor_tracker_feature.h +++ b/include/core/processor/processor_tracker_feature.h @@ -85,6 +85,7 @@ class ProcessorTrackerFeature : public ProcessorTracker /** \brief Constructor with type */ ProcessorTrackerFeature(const std::string& _type, + int _dim, ProcessorParamsTrackerFeaturePtr _params_tracker_feature); virtual ~ProcessorTrackerFeature(); diff --git a/include/core/sensor/sensor_base.h b/include/core/sensor/sensor_base.h index a5afc4664a826c19b3c58272164b8e3849d1c15c..1c099cb9be4827705bd43d229714ea1dabf24ed0 100644 --- a/include/core/sensor/sensor_base.h +++ b/include/core/sensor/sensor_base.h @@ -173,15 +173,17 @@ class SensorBase : public NodeBase, public HasStateBlocks, public std::enable_sh bool process(const CaptureBasePtr capture_ptr); // State blocks - virtual StateBlockPtr addStateBlock(const std::string& _key, const StateBlockPtr& _sb_ptr) override; - virtual StateBlockPtr addStateBlock(const char _key, const StateBlockPtr& _sb_ptr) override { return this->addStateBlock(std::string(1, _key), _sb_ptr); } - StateBlockPtr addStateBlock(const std::string& _key, const StateBlockPtr& _sb_ptr, const bool _dynamic); - StateBlockPtr addStateBlock(const char _key, const StateBlockPtr& _sb_ptr, const bool _dynamic) { return this->addStateBlock(std::string(1, _key), _sb_ptr, _dynamic); } + using HasStateBlocks::addStateBlock; + StateBlockPtr addStateBlock(const std::string& _key, const StateBlockPtr& _sb_ptr, const bool _dynamic = false); + StateBlockPtr addStateBlock(const char _key, const StateBlockPtr& _sb_ptr, const bool _dynamic = false) { return this->addStateBlock(std::string(1, _key), _sb_ptr, _dynamic); } StateBlockPtr getStateBlockDynamic(const std::string& _key) const; StateBlockPtr getStateBlockDynamic(const std::string& _key, const TimeStamp& _ts) const; StateBlockPtr getStateBlockDynamic(const char _key) const { return getStateBlockDynamic(std::string(1,_key)); } StateBlockPtr getStateBlockDynamic(const char _key, const TimeStamp& _ts) const { return getStateBlockDynamic(std::string(1,_key), _ts); } + // Declare a state block as dynamic or static (with _dymanic = false) + void setStateBlockDynamic(const std::string& _key, bool _dynamic = true); + bool isStateBlockDynamic(const std::string& _key) const; bool isStateBlockInCapture(const std::string& _key, const TimeStamp& _ts, CaptureBasePtr& _cap) const; bool isStateBlockInCapture(const std::string& _key, CaptureBasePtr& _cap) const; @@ -198,7 +200,6 @@ class SensorBase : public NodeBase, public HasStateBlocks, public std::enable_sh protected: void removeStateBlocks(); virtual void registerNewStateBlocks() const; - void setStateBlockDynamic(const std::string& _key, bool _dynamic = true); public: @@ -279,18 +280,10 @@ inline const ProcessorBasePtrList& SensorBase::getProcessorList() const return processor_list_; } -inline StateBlockPtr SensorBase::addStateBlock(const std::string& _key, const StateBlockPtr& _sb_ptr) -{ - assert((params_prior_map_.find(_key) == params_prior_map_.end() || _sb_ptr == nullptr) && "overwriting a state block that has an absolute factor"); - HasStateBlocks::addStateBlock(_key, _sb_ptr); - setStateBlockDynamic(_key, false); - return _sb_ptr; -} - inline StateBlockPtr SensorBase::addStateBlock(const std::string& _key, const StateBlockPtr& _sb_ptr, const bool _dynamic) { assert((params_prior_map_.find(_key) == params_prior_map_.end() || _sb_ptr == nullptr) && "overwriting a state block that has an absolute factor"); - HasStateBlocks::addStateBlock(_key, _sb_ptr); + HasStateBlocks::addStateBlock(_key, _sb_ptr, getProblem()); setStateBlockDynamic(_key, _dynamic); return _sb_ptr; } diff --git a/include/core/sensor/sensor_factory.h b/include/core/sensor/sensor_factory.h index 1f0b803df4febb6c3b4f71b1f77f60a4909d76ca..3930176443a22cebb8c9591253af7f58b0a40a2c 100644 --- a/include/core/sensor/sensor_factory.h +++ b/include/core/sensor/sensor_factory.h @@ -28,13 +28,13 @@ namespace wolf * Specific object creation is invoked by ````create(TYPE, params ... )````, and the TYPE of sensor is identified with a string. * Currently, the following sensor types are implemented, * - "CAMERA" for SensorCamera - * - "ODOM 2D" for SensorOdom2D + * - "ODOM 2d" for SensorOdom2d * - "GPS FIX" for SensorGPSFix * * The rule to make new TYPE strings unique is that you skip the prefix 'Sensor' from your class name, * and you build a string in CAPITALS with space separators, e.g.: * - SensorCamera -> ````"CAMERA"```` - * - SensorLaser2D -> ````"LASER 2D"```` + * - SensorLaser2d -> ````"LASER 2d"```` * - etc. * * The methods to create specific sensors are called __creators__. @@ -127,7 +127,7 @@ namespace wolf * static SensorBasePtr create(const std::string& _name, Eigen::VectorXd& _extrinsics_pq, ParamsSensorBasePtr _intrinsics) * { * // check extrinsics vector - * assert(_extrinsics_pq.size() == 7 && "Bad extrinsics vector length. Should be 7 for 3D."); + * assert(_extrinsics_pq.size() == 7 && "Bad extrinsics vector length. Should be 7 for 3d."); * * // cast instrinsics to good type * ParamsSensorCamera* intrinsics_ptr = (ParamsSensorCamera*) _intrinsics; diff --git a/include/core/sensor/sensor_odom_2D.h b/include/core/sensor/sensor_odom_2d.h similarity index 71% rename from include/core/sensor/sensor_odom_2D.h rename to include/core/sensor/sensor_odom_2d.h index 6f16e71fef41d774539464c2c001d719fd9d50e0..d6a431d3102b0a82a218ee71247552066c1ef8eb 100644 --- a/include/core/sensor/sensor_odom_2D.h +++ b/include/core/sensor/sensor_odom_2d.h @@ -1,5 +1,5 @@ -#ifndef SENSOR_ODOM_2D_H_ -#define SENSOR_ODOM_2D_H_ +#ifndef SENSOR_ODOM_2d_H_ +#define SENSOR_ODOM_2d_H_ //wolf includes #include "core/sensor/sensor_base.h" @@ -7,19 +7,19 @@ namespace wolf { -WOLF_STRUCT_PTR_TYPEDEFS(ParamsSensorOdom2D); +WOLF_STRUCT_PTR_TYPEDEFS(ParamsSensorOdom2d); -struct ParamsSensorOdom2D : public ParamsSensorBase +struct ParamsSensorOdom2d : public ParamsSensorBase { - virtual ~ParamsSensorOdom2D() = default; + virtual ~ParamsSensorOdom2d() = default; double k_disp_to_disp; ///< ratio of displacement variance to displacement, for odometry noise calculation double k_rot_to_rot; ///< ratio of rotation variance to rotation, for odometry noise calculation - ParamsSensorOdom2D() + ParamsSensorOdom2d() { //DEFINED FOR COMPATIBILITY PURPOSES. TO BE REMOVED IN THE FUTURE. } - ParamsSensorOdom2D(std::string _unique_name, const ParamsServer& _server): + ParamsSensorOdom2d(std::string _unique_name, const ParamsServer& _server): ParamsSensorBase(_unique_name, _server) { k_disp_to_disp = _server.getParam<double>(prefix + _unique_name + "/k_disp_to_disp"); @@ -33,20 +33,20 @@ struct ParamsSensorOdom2D : public ParamsSensorBase } }; -WOLF_PTR_TYPEDEFS(SensorOdom2D); +WOLF_PTR_TYPEDEFS(SensorOdom2d); -class SensorOdom2D : public SensorBase +class SensorOdom2d : public SensorBase { protected: double k_disp_to_disp_; ///< ratio of displacement variance to displacement, for odometry noise calculation double k_rot_to_rot_; ///< ratio of rotation variance to rotation, for odometry noise calculation public: - SensorOdom2D(Eigen::VectorXd _extrinsics, const ParamsSensorOdom2D& _intrinsics); - SensorOdom2D(Eigen::VectorXd _extrinsics, ParamsSensorOdom2DPtr _intrinsics); - WOLF_SENSOR_CREATE(SensorOdom2D, ParamsSensorOdom2D, 3); + SensorOdom2d(Eigen::VectorXd _extrinsics, const ParamsSensorOdom2d& _intrinsics); + SensorOdom2d(Eigen::VectorXd _extrinsics, ParamsSensorOdom2dPtr _intrinsics); + WOLF_SENSOR_CREATE(SensorOdom2d, ParamsSensorOdom2d, 3); - virtual ~SensorOdom2D(); + virtual ~SensorOdom2d(); /** \brief Returns displacement noise factor * @@ -66,4 +66,4 @@ class SensorOdom2D : public SensorBase } // namespace wolf -#endif // SENSOR_ODOM_2D_H_ +#endif // SENSOR_ODOM_2d_H_ diff --git a/include/core/sensor/sensor_odom_3D.h b/include/core/sensor/sensor_odom_3d.h similarity index 71% rename from include/core/sensor/sensor_odom_3D.h rename to include/core/sensor/sensor_odom_3d.h index b02fa3c38cfc3bdcc66063d264b67107984e5cf8..67efe1e9af27f8456401c400766dcbf32f44057b 100644 --- a/include/core/sensor/sensor_odom_3D.h +++ b/include/core/sensor/sensor_odom_3d.h @@ -1,12 +1,12 @@ /** - * \file sensor_odom_3D.h + * \file sensor_odom_3d.h * * Created on: Oct 7, 2016 * \author: jsola */ -#ifndef SRC_SENSOR_ODOM_3D_H_ -#define SRC_SENSOR_ODOM_3D_H_ +#ifndef SRC_SENSOR_ODOM_3d_H_ +#define SRC_SENSOR_ODOM_3d_H_ //wolf includes #include "core/sensor/sensor_base.h" @@ -14,20 +14,20 @@ namespace wolf { -WOLF_STRUCT_PTR_TYPEDEFS(ParamsSensorOdom3D); +WOLF_STRUCT_PTR_TYPEDEFS(ParamsSensorOdom3d); -struct ParamsSensorOdom3D : public ParamsSensorBase +struct ParamsSensorOdom3d : public ParamsSensorBase { double k_disp_to_disp; ///< ratio of displacement variance to displacement, for odometry noise calculation double k_disp_to_rot; ///< ratio of displacement variance to rotation, for odometry noise calculation double k_rot_to_rot; ///< ratio of rotation variance to rotation, for odometry noise calculation double min_disp_var; double min_rot_var; - ParamsSensorOdom3D() + ParamsSensorOdom3d() { //DEFINED FOR COMPATIBILITY PURPOSES. TO BE REMOVED IN THE FUTURE. } - ParamsSensorOdom3D(std::string _unique_name, const ParamsServer& _server): + ParamsSensorOdom3d(std::string _unique_name, const ParamsServer& _server): ParamsSensorBase(_unique_name, _server) { k_disp_to_disp = _server.getParam<double>(prefix + _unique_name + "/k_disp_to_disp"); @@ -45,12 +45,12 @@ struct ParamsSensorOdom3D : public ParamsSensorBase + "min_disp_var: " + std::to_string(min_disp_var) + "\n" + "min_rot_var: " + std::to_string(min_rot_var) + "\n"; } - virtual ~ParamsSensorOdom3D() = default; + virtual ~ParamsSensorOdom3d() = default; }; -WOLF_PTR_TYPEDEFS(SensorOdom3D); +WOLF_PTR_TYPEDEFS(SensorOdom3d); -class SensorOdom3D : public SensorBase +class SensorOdom3d : public SensorBase { protected: double k_disp_to_disp_; ///< ratio of displacement variance to displacement, for odometry noise calculation @@ -60,11 +60,11 @@ class SensorOdom3D : public SensorBase double min_rot_var_; public: - SensorOdom3D(const Eigen::VectorXd& _extrinsics_pq, const ParamsSensorOdom3D& params); - SensorOdom3D(const Eigen::VectorXd& _extrinsics_pq, ParamsSensorOdom3DPtr params); - WOLF_SENSOR_CREATE(SensorOdom3D, ParamsSensorOdom3D, 7); + SensorOdom3d(const Eigen::VectorXd& _extrinsics_pq, const ParamsSensorOdom3d& params); + SensorOdom3d(const Eigen::VectorXd& _extrinsics_pq, ParamsSensorOdom3dPtr params); + WOLF_SENSOR_CREATE(SensorOdom3d, ParamsSensorOdom3d, 7); - virtual ~SensorOdom3D(); + virtual ~SensorOdom3d(); double getDispVarToDispNoiseFactor() const; double getDispVarToRotNoiseFactor() const; @@ -74,31 +74,31 @@ class SensorOdom3D : public SensorBase }; -inline double SensorOdom3D::getDispVarToDispNoiseFactor() const +inline double SensorOdom3d::getDispVarToDispNoiseFactor() const { return k_disp_to_disp_; } -inline double SensorOdom3D::getDispVarToRotNoiseFactor() const +inline double SensorOdom3d::getDispVarToRotNoiseFactor() const { return k_disp_to_rot_; } -inline double SensorOdom3D::getRotVarToRotNoiseFactor() const +inline double SensorOdom3d::getRotVarToRotNoiseFactor() const { return k_rot_to_rot_; } -inline double SensorOdom3D::getMinDispVar() const +inline double SensorOdom3d::getMinDispVar() const { return min_disp_var_; } -inline double SensorOdom3D::getMinRotVar() const +inline double SensorOdom3d::getMinRotVar() const { return min_rot_var_; } } /* namespace wolf */ -#endif /* SRC_SENSOR_ODOM_3D_H_ */ +#endif /* SRC_SENSOR_ODOM_3d_H_ */ diff --git a/include/core/solver/solver_factory.h b/include/core/solver/solver_factory.h index 40caeaf666c95f7369e5dd2e8328a46d22bef259..d80fe24f78ddaa91a44e7821f2dc0a55117b8dcf 100644 --- a/include/core/solver/solver_factory.h +++ b/include/core/solver/solver_factory.h @@ -28,13 +28,13 @@ namespace wolf * Specific object creation is invoked by ````create(TYPE, params ... )````, and the TYPE of sensor is identified with a string. * Currently, the following sensor types are implemented, * - "CAMERA" for SensorCamera - * - "ODOM 2D" for SensorOdom2D + * - "ODOM 2d" for SensorOdom2d * - "GPS FIX" for SensorGPSFix * * The rule to make new TYPE strings unique is that you skip the prefix 'Sensor' from your class name, * and you build a string in CAPITALS with space separators, e.g.: * - SensorCamera -> ````"CAMERA"```` - * - SensorLaser2D -> ````"LASER 2D"```` + * - SensorLaser2d -> ````"LASER 2d"```` * - etc. * * The methods to create specific sensors are called __creators__. @@ -127,7 +127,7 @@ namespace wolf * static SensorBasePtr create(const std::string& _name, Eigen::VectorXd& _extrinsics_pq, ParamsSensorBasePtr _intrinsics) * { * // check extrinsics vector - * assert(_extrinsics_pq.size() == 7 && "Bad extrinsics vector length. Should be 7 for 3D."); + * assert(_extrinsics_pq.size() == 7 && "Bad extrinsics vector length. Should be 7 for 3d."); * * // cast instrinsics to good type * ParamsSensorCamera* intrinsics_ptr = (ParamsSensorCamera*) _intrinsics; diff --git a/include/core/solver_suitesparse/qr_solver.h b/include/core/solver_suitesparse/qr_solver.h index 53ea301cff2f9506c6978dc401bc2b65c14df961..b586278c7e7f5a7cb949b78d2e90f58323031109 100644 --- a/include/core/solver_suitesparse/qr_solver.h +++ b/include/core/solver_suitesparse/qr_solver.h @@ -15,8 +15,8 @@ //Wolf includes #include "core/state_block/state_block.h" #include "../factor_sparse.h" -#include "core/factor/factor_odom_2D.h" -#include "core/factor/factor_corner_2D.h" +#include "core/factor/factor_odom_2d.h" +#include "core/factor/factor_corner_2d.h" #include "core/factor/factor_container.h" #include "core/solver_suitesparse/sparse_utils.h" @@ -28,7 +28,7 @@ #include <eigen3/Eigen/OrderingMethods> #include <eigen3/Eigen/SparseQR> #include <Eigen/StdVector> -#include "core/factor/factor_pose_2D.h" +#include "core/factor/factor_pose_2d.h" namespace wolf { @@ -535,30 +535,30 @@ class SolverQR switch (_fac_ptr->getTypeId()) { - case FAC_GPS_FIX_2D: + case FAC_GPS_FIX_2d: { - FactorGPS2D* specific_ptr = (FactorGPS2D*)(_fac_ptr); - return (CostFunctionBasePtr)(new CostFunctionSparse<FactorGPS2D, specific_ptr->residualSize, + FactorGPS2d* specific_ptr = (FactorGPS2d*)(_fac_ptr); + return (CostFunctionBasePtr)(new CostFunctionSparse<FactorGPS2d, specific_ptr->residualSize, specific_ptr->block0Size, specific_ptr->block1Size, specific_ptr->block2Size, specific_ptr->block3Size, specific_ptr->block4Size, specific_ptr->block5Size, specific_ptr->block6Size, specific_ptr->block7Size, specific_ptr->block8Size, specific_ptr->block9Size>(specific_ptr)); break; } - case FAC_ODOM_2D: + case FAC_ODOM_2d: { - FactorOdom2D* specific_ptr = (FactorOdom2D*)(_fac_ptr); - return (CostFunctionBasePtr)new CostFunctionSparse<FactorOdom2D, specific_ptr->residualSize, + FactorOdom2d* specific_ptr = (FactorOdom2d*)(_fac_ptr); + return (CostFunctionBasePtr)new CostFunctionSparse<FactorOdom2d, specific_ptr->residualSize, specific_ptr->block0Size, specific_ptr->block1Size, specific_ptr->block2Size, specific_ptr->block3Size, specific_ptr->block4Size, specific_ptr->block5Size, specific_ptr->block6Size, specific_ptr->block7Size, specific_ptr->block8Size, specific_ptr->block9Size>(specific_ptr); break; } - case FAC_CORNER_2D: + case FAC_CORNER_2d: { - FactorCorner2D* specific_ptr = (FactorCorner2D*)(_fac_ptr); - return (CostFunctionBasePtr)new CostFunctionSparse<FactorCorner2D, specific_ptr->residualSize, + FactorCorner2d* specific_ptr = (FactorCorner2d*)(_fac_ptr); + return (CostFunctionBasePtr)new CostFunctionSparse<FactorCorner2d, specific_ptr->residualSize, specific_ptr->block0Size, specific_ptr->block1Size, specific_ptr->block2Size, specific_ptr->block3Size, specific_ptr->block4Size, specific_ptr->block5Size, specific_ptr->block6Size, specific_ptr->block7Size, specific_ptr->block8Size, diff --git a/include/core/solver_suitesparse/solver_manager.h b/include/core/solver_suitesparse/solver_manager.h index bb3863e11d20719704c7acae1bbc88bebf597eb2..449c8eee3a7b1d7ce54782300017604c51d1843c 100644 --- a/include/core/solver_suitesparse/solver_manager.h +++ b/include/core/solver_suitesparse/solver_manager.h @@ -2,16 +2,16 @@ #define CERES_MANAGER_H_ //wolf includes -#include "core/factor/factor_GPS_2D.h" +#include "core/factor/factor_GPS_2d.h" #include "core/common/wolf.h" #include "core/state_block/state_block.h" #include "../state_point.h" #include "../state_complex_angle.h" #include "../state_theta.h" #include "../factor_sparse.h" -#include "../factor_odom_2D_theta.h" -#include "../factor_odom_2D_complex_angle.h" -#include "../factor_corner_2D_theta.h" +#include "../factor_odom_2d_theta.h" +#include "../factor_odom_2d_complex_angle.h" +#include "../factor_corner_2d_theta.h" /** \brief solver manager for WOLF * diff --git a/include/core/state_block/has_state_blocks.h b/include/core/state_block/has_state_blocks.h index ade367fb88e7e0e987b087d31130dee0e78736ff..ef55d163be4764393c4e1b08ac0003ae67b1d223 100644 --- a/include/core/state_block/has_state_blocks.h +++ b/include/core/state_block/has_state_blocks.h @@ -26,22 +26,20 @@ class HasStateBlocks void appendToStructure(const std::string& _frame_type){ structure_ += _frame_type; } bool isInStructure(const std::string& _sb_type) { return structure_.find(_sb_type) != std::string::npos; } - const std::map<std::string, StateBlockPtr>& getStateBlockMap() const; + const std::unordered_map<std::string, StateBlockPtr>& getStateBlockMap() const; std::vector<StateBlockPtr> getStateBlockVec() const; // Some typical shortcuts -- not all should be coded here, see notes below. StateBlockPtr getP() const; StateBlockPtr getO() const; - void setP(const StateBlockPtr _p_ptr); - void setO(const StateBlockPtr _o_ptr); // These act on all state blocks. Per-block action must be done through state_block.fix() or through extended API in derived classes of this. virtual void fix(); virtual void unfix(); virtual bool isFixed() const; - virtual StateBlockPtr addStateBlock(const std::string& _sb_type, const StateBlockPtr& _sb); - virtual StateBlockPtr addStateBlock(const char _sb_type, const StateBlockPtr& _sb) { return addStateBlock(std::string(1,_sb_type), _sb); } + virtual StateBlockPtr addStateBlock(const std::string& _sb_type, const StateBlockPtr& _sb, ProblemPtr _problem); + virtual StateBlockPtr addStateBlock(const char _sb_type, const StateBlockPtr& _sb, ProblemPtr _problem) { return addStateBlock(std::string(1,_sb_type), _sb, _problem); } virtual unsigned int removeStateBlock(const std::string& _sb_type); virtual unsigned int removeStateBlock(const char _sb_type); bool hasStateBlock(const std::string& _sb_type) const { return state_block_map_.count(_sb_type) > 0; } @@ -53,26 +51,30 @@ class HasStateBlocks // Emplace derived state blocks (angle, quaternion, etc). template<typename SB, typename ... Args> - std::shared_ptr<SB> emplaceStateBlock(const std::string& _sb_type, Args&&... _args_of_derived_state_block_constructor); + std::shared_ptr<SB> emplaceStateBlock(const std::string& _sb_type, ProblemPtr _problem, Args&&... _args_of_derived_state_block_constructor); // Emplace base state blocks. template<typename ... Args> - inline StateBlockPtr emplaceStateBlock(const std::string& _sb_type, Args&&... _args_of_base_state_block_constructor); + inline StateBlockPtr emplaceStateBlock(const std::string& _sb_type, ProblemPtr _problem, Args&&... _args_of_base_state_block_constructor); // Register/remove state blocks to/from wolf::Problem void registerNewStateBlocks(ProblemPtr _problem) const; void removeStateBlocks(ProblemPtr _problem); // States - virtual void setState(const Eigen::VectorXd& _state, const bool _notify = true); + virtual void setState(const Eigen::VectorXd& _state, const bool _notify = true); Eigen::VectorXd getState() const; - void getState(Eigen::VectorXd& _state) const; - unsigned int getSize() const; - unsigned int getLocalSize() const; + void getState(Eigen::VectorXd& _state) const; + unsigned int getSize() const; + unsigned int getLocalSize() const; + + // Perturb state + void perturb(double amplitude = 0.01); + private: std::string structure_; - std::map<std::string, StateBlockPtr> state_block_map_; + std::unordered_map<std::string, StateBlockPtr> state_block_map_; }; @@ -97,7 +99,7 @@ inline HasStateBlocks::~HasStateBlocks() // } -inline const std::map<std::string, StateBlockPtr>& HasStateBlocks::getStateBlockMap() const +inline const std::unordered_map<std::string, StateBlockPtr>& HasStateBlocks::getStateBlockMap() const { return state_block_map_; } @@ -112,15 +114,6 @@ inline std::vector<StateBlockPtr> HasStateBlocks::getStateBlockVec() const return sbv; } -inline wolf::StateBlockPtr HasStateBlocks::addStateBlock(const std::string& _sb_type, const StateBlockPtr& _sb) -{ - assert(state_block_map_.count(_sb_type) == 0 && "Trying to add a state block with an existing type! Use setStateBlock instead."); - state_block_map_.emplace(_sb_type, _sb); - if (!isInStructure(_sb_type)) - appendToStructure(_sb_type); - return _sb; -} - inline unsigned int HasStateBlocks::removeStateBlock(const char _sb_type) { return removeStateBlock(std::string(1, _sb_type)); @@ -132,24 +125,24 @@ inline unsigned int HasStateBlocks::removeStateBlock(const std::string& _sb_type } template<typename SB, typename ... Args> -inline std::shared_ptr<SB> HasStateBlocks::emplaceStateBlock(const std::string& _sb_type, Args&&... _args_of_derived_state_block_constructor) +inline std::shared_ptr<SB> HasStateBlocks::emplaceStateBlock(const std::string& _sb_type, ProblemPtr _problem, Args&&... _args_of_derived_state_block_constructor) { assert(state_block_map_.count(_sb_type) == 0 && "Trying to add a state block with an existing type! Use setStateBlock instead."); std::shared_ptr<SB> sb = std::make_shared<SB>(std::forward<Args>(_args_of_derived_state_block_constructor)...); - state_block_map_.emplace(_sb_type, sb); - if (!isInStructure(_sb_type)) - appendToStructure(_sb_type); + + addStateBlock(_sb_type, sb, _problem); + return sb; } template<typename ... Args> -inline StateBlockPtr HasStateBlocks::emplaceStateBlock(const std::string& _sb_type, Args&&... _args_of_base_state_block_constructor) +inline StateBlockPtr HasStateBlocks::emplaceStateBlock(const std::string& _sb_type, ProblemPtr _problem, Args&&... _args_of_base_state_block_constructor) { assert(state_block_map_.count(_sb_type) == 0 && "Trying to add a state block with an existing type! Use setStateBlock instead."); - std::shared_ptr<StateBlock> sb = std::make_shared<StateBlock>(std::forward<Args>(_args_of_base_state_block_constructor)...); - state_block_map_.emplace(_sb_type, sb); - if (!isInStructure(_sb_type)) - appendToStructure(_sb_type); + auto sb = std::make_shared<StateBlock>(std::forward<Args>(_args_of_base_state_block_constructor)...); + + addStateBlock(_sb_type, sb, _problem); + return sb; } @@ -180,16 +173,6 @@ inline wolf::StateBlockPtr HasStateBlocks::getO() const return getStateBlock("O"); } -inline void HasStateBlocks::setP(const StateBlockPtr _p_ptr) -{ - addStateBlock("P", _p_ptr); -} - -inline void HasStateBlocks::setO(const StateBlockPtr _o_ptr) -{ - addStateBlock("O", _o_ptr); -} - inline void HasStateBlocks::fix() { for (auto pair_key_sbp : state_block_map_) @@ -272,6 +255,5 @@ inline unsigned int HasStateBlocks::getLocalSize() const return size; } - } // namespace wolf #endif /* STATE_BLOCK_HAS_STATE_BLOCKS_H_ */ diff --git a/include/core/state_block/state_block.h b/include/core/state_block/state_block.h index b68b4ad7dd482f071faf04339656879635232dd2..33aa6fcb4b221ea1dc23f24b21f4a0fb12cbfc0d 100644 --- a/include/core/state_block/state_block.h +++ b/include/core/state_block/state_block.h @@ -142,6 +142,10 @@ public: **/ void resetLocalParamUpdated(); + /** \brief perturb state + */ + void perturb(double amplitude = 0.1); + /** \brief Add this state_block to the problem **/ //void addToProblem(ProblemPtr _problem_ptr); diff --git a/include/core/state_block/state_homogeneous_3D.h b/include/core/state_block/state_homogeneous_3d.h similarity index 51% rename from include/core/state_block/state_homogeneous_3D.h rename to include/core/state_block/state_homogeneous_3d.h index 9ae7e8da01e5d1544dd887682b7f164e1ddc1e99..4760a52b7faa2bf188b520534b8512722d209f63 100644 --- a/include/core/state_block/state_homogeneous_3D.h +++ b/include/core/state_block/state_homogeneous_3d.h @@ -1,45 +1,45 @@ /* - * \file state_homogeneous_3D.h + * \file state_homogeneous_3d.h * * Created on: Mar 7, 2016 * \author: jsola */ -#ifndef SRC_STATE_HOMOGENEOUS_3D_H_ -#define SRC_STATE_HOMOGENEOUS_3D_H_ +#ifndef SRC_STATE_HOMOGENEOUS_3d_H_ +#define SRC_STATE_HOMOGENEOUS_3d_H_ #include "core/state_block/state_block.h" #include "core/state_block/local_parametrization_homogeneous.h" namespace wolf { -class StateHomogeneous3D : public StateBlock +class StateHomogeneous3d : public StateBlock { public: - StateHomogeneous3D(bool _fixed = false); - StateHomogeneous3D(const Eigen::VectorXd _state, bool _fixed = false); - virtual ~StateHomogeneous3D(); + StateHomogeneous3d(bool _fixed = false); + StateHomogeneous3d(const Eigen::VectorXd _state, bool _fixed = false); + virtual ~StateHomogeneous3d(); }; -inline StateHomogeneous3D::StateHomogeneous3D(const Eigen::VectorXd _state, bool _fixed) : +inline StateHomogeneous3d::StateHomogeneous3d(const Eigen::VectorXd _state, bool _fixed) : StateBlock(_state, _fixed) { - assert(_state.size() == 4 && "Homogeneous 3D must be size 4."); + assert(_state.size() == 4 && "Homogeneous 3d must be size 4."); local_param_ptr_ = std::make_shared<LocalParametrizationHomogeneous>(); } -inline StateHomogeneous3D::StateHomogeneous3D(bool _fixed) : +inline StateHomogeneous3d::StateHomogeneous3d(bool _fixed) : StateBlock(4, _fixed) { local_param_ptr_ = std::make_shared<LocalParametrizationHomogeneous>(); state_ << 0, 0, 0, 1; // Set origin } -inline StateHomogeneous3D::~StateHomogeneous3D() +inline StateHomogeneous3d::~StateHomogeneous3d() { // The local_param_ptr_ pointer is already removed by the base class } } // namespace wolf -#endif /* SRC_STATE_HOMOGENEOUS_3D_H_ */ +#endif /* SRC_STATE_HOMOGENEOUS_3d_H_ */ diff --git a/include/core/utils/utils_gtest.h b/include/core/utils/utils_gtest.h index e20659233e26c021129f4e72253632e726a08794..53358effaeeb707c7db55dbde51568d68e5efdb6 100644 --- a/include/core/utils/utils_gtest.h +++ b/include/core/utils/utils_gtest.h @@ -127,14 +127,14 @@ TEST(Test, Foo) #define ASSERT_QUATERNION_APPROX(C_expect, C_actual, precision) ASSERT_MATRIX_APPROX((C_expect).coeffs(), (C_actual).coeffs(), precision) -#define EXPECT_POSE2D_APPROX(C_expect, C_actual, precision) EXPECT_PRED2([](const Eigen::MatrixXd lhs, const Eigen::MatrixXd rhs) { \ +#define EXPECT_POSE2d_APPROX(C_expect, C_actual, precision) EXPECT_PRED2([](const Eigen::MatrixXd lhs, const Eigen::MatrixXd rhs) { \ MatrixXd er = lhs - rhs; \ er(2) = pi2pi((double)er(2)); \ return er.isMuchSmallerThan(1, precision); \ }, \ C_expect, C_actual); -#define ASSERT_POSE2D_APPROX(C_expect, C_actual, precision) EXPECT_PRED2([](const Eigen::MatrixXd lhs, const Eigen::MatrixXd rhs) { \ +#define ASSERT_POSE2d_APPROX(C_expect, C_actual, precision) EXPECT_PRED2([](const Eigen::MatrixXd lhs, const Eigen::MatrixXd rhs) { \ MatrixXd er = lhs - rhs; \ er(2) = pi2pi((double)er(2)); \ return er.isMuchSmallerThan(1, precision); \ diff --git a/scilab/corner_detector.sce b/scilab/corner_detector.sce index 18035de71787e22dd3d53adc8002cbbac8f873f6..dfeae1945084531266c5ffd2019a17ec09e6c809 100644 --- a/scilab/corner_detector.sce +++ b/scilab/corner_detector.sce @@ -1,4 +1,4 @@ -//info about 2D homogeneous lines and points: http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/BEARDSLEY/node2.html +//info about 2d homogeneous lines and points: http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/BEARDSLEY/node2.html // clear all xdel(winsid()); diff --git a/src/capture/capture_base.cpp b/src/capture/capture_base.cpp index 6e78e69a888482381e870a0a00fef5d1aeaf2514..54e5d2a3cdedb301a7580e691cad9543df3c24c2 100644 --- a/src/capture/capture_base.cpp +++ b/src/capture/capture_base.cpp @@ -26,7 +26,7 @@ CaptureBase::CaptureBase(const std::string& _type, if (_sensor_ptr->getP() != nullptr and _sensor_ptr->isStateBlockDynamic("P")) { assert(_p_ptr && "Pointer to dynamic position params is null!"); - addStateBlock("P", _p_ptr); + addStateBlock("P", _p_ptr, nullptr); } else assert(_p_ptr == nullptr && "Provided dynamic sensor position but the sensor position is static or doesn't exist"); @@ -34,7 +34,7 @@ CaptureBase::CaptureBase(const std::string& _type, if (_sensor_ptr->getO() != nullptr and _sensor_ptr->isStateBlockDynamic("O")) { assert(_o_ptr && "Pointer to dynamic orientation params is null!"); - addStateBlock("O", _o_ptr); + addStateBlock("O", _o_ptr, nullptr); } else assert(_o_ptr == nullptr && "Provided dynamic sensor orientation but the sensor orientation is static or doesn't exist"); @@ -42,7 +42,7 @@ CaptureBase::CaptureBase(const std::string& _type, if (_sensor_ptr->getIntrinsic() != nullptr and _sensor_ptr->isStateBlockDynamic("I")) { assert(_intr_ptr && "Pointer to dynamic intrinsic params is null!"); - addStateBlock("I", _intr_ptr); + addStateBlock("I", _intr_ptr, nullptr); } else assert(_intr_ptr == nullptr && "Provided dynamic sensor intrinsics but the sensor intrinsics are static or don't exist"); @@ -140,7 +140,7 @@ const std::string& CaptureBase::getStructure() const StateBlockPtr CaptureBase::getStateBlock(const std::string& _key) const { - if (getSensor() and getSensor()->getStateBlock(_key)) + if (getSensor() and getSensor()->hasStateBlock(_key)) { if (getSensor()->isStateBlockDynamic(_key)) return HasStateBlocks::getStateBlock(_key); diff --git a/src/capture/capture_odom_2D.cpp b/src/capture/capture_odom_2d.cpp similarity index 65% rename from src/capture/capture_odom_2D.cpp rename to src/capture/capture_odom_2d.cpp index d443135aa8f8cd3705e143d9a1f38399a32bd056..b024294a5df38772bc040495728958aa8cb08c4c 100644 --- a/src/capture/capture_odom_2D.cpp +++ b/src/capture/capture_odom_2d.cpp @@ -1,35 +1,35 @@ /* - * capture_odom_2D.cpp + * capture_odom_2d.cpp * * Created on: Oct 16, 2017 * Author: jsola */ -#include "core/capture/capture_odom_2D.h" +#include "core/capture/capture_odom_2d.h" namespace wolf { -CaptureOdom2D::CaptureOdom2D(const TimeStamp& _init_ts, +CaptureOdom2d::CaptureOdom2d(const TimeStamp& _init_ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXd& _data, CaptureBasePtr _capture_origin_ptr): - CaptureMotion("CaptureOdom2D", _init_ts, _sensor_ptr, _data, 3, 3, _capture_origin_ptr) + CaptureMotion("CaptureOdom2d", _init_ts, _sensor_ptr, _data, 3, 3, _capture_origin_ptr) { // } -CaptureOdom2D::CaptureOdom2D(const TimeStamp& _init_ts, +CaptureOdom2d::CaptureOdom2d(const TimeStamp& _init_ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXd& _data, const Eigen::MatrixXd& _data_cov, CaptureBasePtr _capture_origin_ptr): - CaptureMotion("CaptureOdom2D", _init_ts, _sensor_ptr, _data, _data_cov, 3, 3, _capture_origin_ptr) + CaptureMotion("CaptureOdom2d", _init_ts, _sensor_ptr, _data, _data_cov, 3, 3, _capture_origin_ptr) { // } -CaptureOdom2D::~CaptureOdom2D() +CaptureOdom2d::~CaptureOdom2d() { // } diff --git a/src/capture/capture_odom_3D.cpp b/src/capture/capture_odom_3d.cpp similarity index 68% rename from src/capture/capture_odom_3D.cpp rename to src/capture/capture_odom_3d.cpp index 252885c51f394d235751ed4b25496682107ed8b0..447e1d500f072e2754de4ed107aeb61e6e6299c0 100644 --- a/src/capture/capture_odom_3D.cpp +++ b/src/capture/capture_odom_3d.cpp @@ -1,40 +1,40 @@ /* - * capture_odom_3D.cpp + * capture_odom_3d.cpp * * Created on: Oct 16, 2017 * Author: jsola */ -#include "core/capture/capture_odom_3D.h" +#include "core/capture/capture_odom_3d.h" namespace wolf { -CaptureOdom3D::CaptureOdom3D(const TimeStamp& _init_ts, +CaptureOdom3d::CaptureOdom3d(const TimeStamp& _init_ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXd& _data, CaptureBasePtr _capture_origin_ptr): - CaptureMotion("CaptureOdom3D", _init_ts, _sensor_ptr, _data, 7, 6, _capture_origin_ptr) + CaptureMotion("CaptureOdom3d", _init_ts, _sensor_ptr, _data, 7, 6, _capture_origin_ptr) { // } -CaptureOdom3D::CaptureOdom3D(const TimeStamp& _init_ts, +CaptureOdom3d::CaptureOdom3d(const TimeStamp& _init_ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXd& _data, const Eigen::MatrixXd& _data_cov, CaptureBasePtr _capture_origin_ptr): - CaptureMotion("CaptureOdom3D", _init_ts, _sensor_ptr, _data, _data_cov, 7, 6, _capture_origin_ptr) + CaptureMotion("CaptureOdom3d", _init_ts, _sensor_ptr, _data, _data_cov, 7, 6, _capture_origin_ptr) { // } -CaptureOdom3D::~CaptureOdom3D() +CaptureOdom3d::~CaptureOdom3d() { // } -Eigen::VectorXd CaptureOdom3D::correctDelta(const VectorXd& _delta, const VectorXd& _delta_error) const +Eigen::VectorXd CaptureOdom3d::correctDelta(const VectorXd& _delta, const VectorXd& _delta_error) const { VectorXd delta(7); delta.head(3) = _delta.head(3) + _delta_error.head(3); diff --git a/src/capture/capture_pose.cpp b/src/capture/capture_pose.cpp index 4f2a85c751a5a7945fcdcfe12aa84a6f37265e10..190fa7090c698b4a613d0ebba2594e391043f925 100644 --- a/src/capture/capture_pose.cpp +++ b/src/capture/capture_pose.cpp @@ -25,11 +25,11 @@ void CapturePose::emplaceFeatureAndFactor() // std::cout << data_.size() << " ~~ " << data_covariance_.rows() << "x" << data_covariance_.cols() << std::endl; // Emplace factor if (data_.size() == 3 && data_covariance_.rows() == 3 && data_covariance_.cols() == 3 ) - FactorBase::emplace<FactorPose2D>(feature_pose, feature_pose, nullptr, false); + FactorBase::emplace<FactorPose2d>(feature_pose, feature_pose, nullptr, false); else if (data_.size() == 7 && data_covariance_.rows() == 6 && data_covariance_.cols() == 6 ) - FactorBase::emplace<FactorPose3D>(feature_pose, feature_pose, nullptr, false); + FactorBase::emplace<FactorPose3d>(feature_pose, feature_pose, nullptr, false); else - throw std::runtime_error("Wrong data size in CapturePose. Use 3 for 2D. Use 7 for 3D."); + throw std::runtime_error("Wrong data size in CapturePose. Use 3 for 2d. Use 7 for 3d."); } } // namespace wolf diff --git a/src/feature/feature_odom_2D.cpp b/src/feature/feature_odom_2D.cpp deleted file mode 100644 index f8ae20d7f72bff405903e6f623402b8e350176d7..0000000000000000000000000000000000000000 --- a/src/feature/feature_odom_2D.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "core/feature/feature_odom_2D.h" - -namespace wolf { - -FeatureOdom2D::FeatureOdom2D(const Eigen::VectorXd& _measurement, const Eigen::MatrixXd& _meas_covariance) : - FeatureBase("FeatureOdom2D", _measurement, _meas_covariance) -{ - //std::cout << "New FeatureOdom2D: measurement " << _measurement.transpose() << std::endl << "covariance" << std::endl << _meas_covariance << std::endl; -} - -FeatureOdom2D::~FeatureOdom2D() -{ - // -} - -void FeatureOdom2D::findFactors() -{ - -} - -} // namespace wolf diff --git a/src/feature/feature_odom_2d.cpp b/src/feature/feature_odom_2d.cpp new file mode 100644 index 0000000000000000000000000000000000000000..169031037244dc724846efc0f90a603056945c4a --- /dev/null +++ b/src/feature/feature_odom_2d.cpp @@ -0,0 +1,21 @@ +#include "core/feature/feature_odom_2d.h" + +namespace wolf { + +FeatureOdom2d::FeatureOdom2d(const Eigen::VectorXd& _measurement, const Eigen::MatrixXd& _meas_covariance) : + FeatureBase("FeatureOdom2d", _measurement, _meas_covariance) +{ + //std::cout << "New FeatureOdom2d: measurement " << _measurement.transpose() << std::endl << "covariance" << std::endl << _meas_covariance << std::endl; +} + +FeatureOdom2d::~FeatureOdom2d() +{ + // +} + +void FeatureOdom2d::findFactors() +{ + +} + +} // namespace wolf diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp index ca5918624d01bb1d0d23481d4685f9d4006dd028..85f94bd2a97af8a68e4b1551d3352daa8e8906d8 100644 --- a/src/frame/frame_base.cpp +++ b/src/frame/frame_base.cpp @@ -64,29 +64,29 @@ FrameBase::FrameBase(const std::string _frame_structure, const SizeEigen _dim, c time_stamp_(_ts) { if(_frame_structure.compare("PO") == 0 and _dim == 2){ - assert(_x.size() == 3 && "Wrong state vector size. Should be 3 for 2D!"); + assert(_x.size() == 3 && "Wrong state vector size. Should be 3 for 2d!"); StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <2> ( ) ) ); StateBlockPtr o_ptr ( std::make_shared<StateAngle> ((double) _x(2) ) ); addStateBlock("P", p_ptr); addStateBlock("O", o_ptr); - this->setType("PO 2D"); + this->setType("PO 2d"); }else if(_frame_structure.compare("PO") == 0 and _dim == 3){ - assert(_x.size() == 7 && "Wrong state vector size. Should be 7 for 3D!"); + assert(_x.size() == 7 && "Wrong state vector size. Should be 7 for 3d!"); StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <3> ( ) ) ); StateBlockPtr o_ptr ( std::make_shared<StateQuaternion> (_x.tail <4> ( ) ) ); addStateBlock("P", p_ptr); addStateBlock("O", o_ptr); - this->setType("PO 3D"); + this->setType("PO 3d"); }else if(_frame_structure.compare("POV") == 0 and _dim == 3){ // auto _x = Eigen::VectorXd::Zero(10); - assert(_x.size() == 10 && "Wrong state vector size. Should be 10 for 3D!"); + assert(_x.size() == 10 && "Wrong state vector size. Should be 10 for 3d!"); StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <3> ( ) ) ); StateBlockPtr o_ptr ( std::make_shared<StateQuaternion> (_x.segment <4> (3) ) ); StateBlockPtr v_ptr ( std::make_shared<StateBlock> (_x.tail <3> ( ) ) ); addStateBlock("P", p_ptr); addStateBlock("O", o_ptr); addStateBlock("V", v_ptr); - this->setType("POV 3D"); + this->setType("POV 3d"); }else{ std::cout << _frame_structure << " ^^ " << _dim << std::endl; throw std::runtime_error("Unknown frame structure"); @@ -140,7 +140,8 @@ void FrameBase::setNonEstimated() { // unregister if previously estimated if (isKeyOrAux()) - removeStateBlocks(getProblem()); + for (const auto& sb : getStateBlockVec()) + getProblem()->notifyStateBlock(sb, REMOVE); type_ = NON_ESTIMATED; if (getTrajectory()) @@ -156,8 +157,8 @@ void FrameBase::setKey() if (!isKeyOrAux()) registerNewStateBlocks(getProblem()); - // WOLF_DEBUG("Set Key", this->id()); type_ = KEY; + if (getTrajectory()) { getTrajectory()->sortFrame(shared_from_this()); @@ -170,8 +171,8 @@ void FrameBase::setAux() if (!isKeyOrAux()) registerNewStateBlocks(getProblem()); - // WOLF_DEBUG("Set Auxiliary", this->id()); type_ = AUXILIARY; + if (getTrajectory()) { getTrajectory()->sortFrame(shared_from_this()); @@ -321,7 +322,7 @@ void FrameBase::setProblem(ProblemPtr _problem) NodeBase::setProblem(_problem); if (this->isKey()) - registerNewStateBlocks(getProblem()); + registerNewStateBlocks(_problem); for (auto cap : capture_list_) cap->setProblem(_problem); diff --git a/src/landmark/landmark_base.cpp b/src/landmark/landmark_base.cpp index 1e24627be754f7bebdf9cf2945fa0fb6bc502bee..7c9b8b664573bd296902ad420c1e5a161605e635 100644 --- a/src/landmark/landmark_base.cpp +++ b/src/landmark/landmark_base.cpp @@ -21,11 +21,11 @@ LandmarkBase::LandmarkBase(const std::string& _type, StateBlockPtr _p_ptr, State { if (_p_ptr) { - addStateBlock("P", _p_ptr); + addStateBlock("P", _p_ptr, nullptr); } if (_o_ptr) { - addStateBlock("O", _o_ptr); + addStateBlock("O", _o_ptr, nullptr); } } diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp index 8a694beb4c8145d5d7253f0c8687ce5f6e45d82c..51c3ccd8e40ddcc2df2bfa35ed22e7a9af27e973 100644 --- a/src/problem/problem.cpp +++ b/src/problem/problem.cpp @@ -118,7 +118,7 @@ ProblemPtr Problem::autoSetup(ParamsServer &_server) WOLF_WARN("Support for subscribers disabled..."); } for (auto it : _server.getParam<std::vector<std::string>>("packages")) { - std::string subscriber = packages_path + "/libwolf_subscriber_" + it + lib_extension; + std::string subscriber = packages_path + "/libsubscriber_" + it + lib_extension; WOLF_TRACE("Loading subscriber " + subscriber); auto l = new LoaderRaw(subscriber); l->load(); @@ -222,6 +222,12 @@ ProcessorBasePtr Problem::installProcessor(const std::string& _prc_type, // } ProcessorBasePtr prc_ptr = ProcessorFactory::get().create(_prc_type, _unique_processor_name, _prc_params); + + //Dimension check + int prc_dim = prc_ptr->getDim(); + auto prb = this; + assert((prc_dim == 0 or prc_dim == prb->getDim()) && "Processor and Problem do not agree on dimension"); + prc_ptr->configure(_corresponding_sensor_ptr); prc_ptr->link(_corresponding_sensor_ptr); @@ -231,7 +237,7 @@ ProcessorBasePtr Problem::installProcessor(const std::string& _prc_type, // // setting the main processor motion if (prc_ptr->isMotion() && processor_motion_ptr_ == nullptr) - processor_motion_ptr_ = std::static_pointer_cast<ProcessorMotion>(prc_ptr); + processor_motion_ptr_ = std::dynamic_pointer_cast<IsMotion>(prc_ptr); return prc_ptr; } @@ -264,9 +270,16 @@ ProcessorBasePtr Problem::installProcessor(const std::string& _prc_type, // throw std::runtime_error("Cannot bind processor. Reason: Sensor \"" + _corresponding_sensor_name + "\" not found. Check sensor name, it must match in sensor and processor!"); ProcessorBasePtr prc_ptr = AutoConfProcessorFactory::get().create(_prc_type, _unique_processor_name, _server); + + //Dimension check + int prc_dim = prc_ptr->getDim(); + auto prb = this; + assert((prc_dim == 0 or prc_dim == prb->getDim()) && "Processor and Problem do not agree on dimension"); + prc_ptr->configure(sen_ptr); prc_ptr->link(sen_ptr); + // setting the origin in all processor motion if origin already setted if (prc_ptr->isMotion() && prior_is_set_) (std::static_pointer_cast<ProcessorMotion>(prc_ptr))->setOrigin(getLastKeyFrame()); @@ -293,7 +306,7 @@ SensorBasePtr Problem::getSensor(const std::string& _sensor_name) const return (*sen_it); } -ProcessorMotionPtr Problem::setProcessorMotion(const std::string& _processor_name) +IsMotionPtr Problem::setProcessorMotion(const std::string& _processor_name) { for (auto sen : getHardware()->getSensorList()) // loop all sensors { @@ -309,7 +322,7 @@ ProcessorMotionPtr Problem::setProcessorMotion(const std::string& _processor_nam if ((*prc_it)->isMotion()) // found, and it's motion! { std::cout << "Found processor '" << _processor_name << "', of type Motion, and set as the main motion processor." << std::endl; - processor_motion_ptr_ = std::static_pointer_cast<ProcessorMotion>(*prc_it); + processor_motion_ptr_ = std::dynamic_pointer_cast<IsMotion>(*prc_it); return processor_motion_ptr_; } else // found, but it's not motion! @@ -324,7 +337,7 @@ ProcessorMotionPtr Problem::setProcessorMotion(const std::string& _processor_nam return nullptr; } -void Problem::setProcessorMotion(ProcessorMotionPtr _processor_motion_ptr) +void Problem::setProcessorMotion(IsMotionPtr _processor_motion_ptr) { processor_motion_ptr_ = _processor_motion_ptr; } @@ -442,7 +455,7 @@ Eigen::VectorXd Problem::zeroState() const { Eigen::VectorXd state = Eigen::VectorXd::Zero(getFrameStructureSize()); - // Set the quaternion identity for 3D states. Set only the real part to 1: + // Set the quaternion identity for 3d states. Set only the real part to 1: if(this->getDim() == 3) state(6) = 1.0; return state; @@ -497,16 +510,17 @@ bool Problem::permitAuxFrame(ProcessorBasePtr _processor_ptr) const void Problem::auxFrameCallback(FrameBasePtr _frame_ptr, ProcessorBasePtr _processor_ptr, const double& _time_tolerance) { - if (_processor_ptr) - { - WOLF_DEBUG((_processor_ptr->isMotion() ? "PM " : "PT "), _processor_ptr->getName(), ": AuxF", _frame_ptr->id(), " Callback emitted with ts = ", _frame_ptr->getTimeStamp()); - } - else - { - WOLF_DEBUG("External callback: AuxF", _frame_ptr->id(), " Callback emitted with ts = ", _frame_ptr->getTimeStamp()); - } - - processor_motion_ptr_->keyFrameCallback(_frame_ptr, _time_tolerance); + // TODO +// if (_processor_ptr) +// { +// WOLF_DEBUG((_processor_ptr->isMotion() ? "PM " : "PT "), _processor_ptr->getName(), ": AuxF", _frame_ptr->id(), " Callback emitted with ts = ", _frame_ptr->getTimeStamp()); +// } +// else +// { +// WOLF_DEBUG("External callback: AuxF", _frame_ptr->id(), " Callback emitted with ts = ", _frame_ptr->getTimeStamp()); +// } +// +// processor_motion_ptr_->keyFrameCallback(_frame_ptr, _time_tolerance); } StateBlockPtr Problem::notifyStateBlock(StateBlockPtr _state_ptr, Notification _noti) @@ -516,6 +530,7 @@ StateBlockPtr Problem::notifyStateBlock(StateBlockPtr _state_ptr, Notification _ // Check if there is already a notification for this state block auto notification_it = state_block_notification_map_.find(_state_ptr); + // exsiting notification for this state block if (notification_it != state_block_notification_map_.end()) { @@ -829,7 +844,7 @@ FrameBasePtr Problem::setPrior(const Eigen::VectorXd& _prior_state, const Eigen: FrameBasePtr origin_keyframe = emplaceFrame(KEY, _prior_state, _ts); // create origin capture with the given state as data - // Capture fix only takes 3D position and Quaternion orientation + // Capture fix only takes 3d position and Quaternion orientation CapturePosePtr init_capture; if (this->getFrameStructure() == "POV" and this->getDim() == 3) init_capture = CaptureBase::emplace<CapturePose>(origin_keyframe, _ts, nullptr, _prior_state.head(7), _prior_cov.topLeftCorner(6,6)); @@ -1806,4 +1821,23 @@ void Problem::print(const std::string& depth, bool constr_by, bool metric, bool print(0, constr_by, metric, state_blocks); } +void Problem::perturb(double amplitude) +{ + // Sensors + for (auto& S : getHardware()->getSensorList()) + S->perturb(amplitude); + + // Frames and Captures + for (auto& F : getTrajectory()->getFrameList()) + { + F->perturb(amplitude); + for (auto& C : F->getCaptureList()) + C->perturb(amplitude); + } + + // Landmarks + for (auto& L : getMap()->getLandmarkList()) + L->perturb(amplitude); +} + } // namespace wolf diff --git a/src/processor/processor_base.cpp b/src/processor/processor_base.cpp index 39b77e59f6980f1a2047db5527a017358572159b..a35097f2c70d3b047117ae6d0c9bf81a5fe2f5da 100644 --- a/src/processor/processor_base.cpp +++ b/src/processor/processor_base.cpp @@ -7,10 +7,11 @@ namespace wolf { unsigned int ProcessorBase::processor_id_count_ = 0; -ProcessorBase::ProcessorBase(const std::string& _type, ProcessorParamsBasePtr _params) : +ProcessorBase::ProcessorBase(const std::string& _type, int _dim, ProcessorParamsBasePtr _params) : NodeBase("PROCESSOR", _type), processor_id_(++processor_id_count_), params_(_params), + dim_(_dim), sensor_ptr_() { // WOLF_DEBUG("constructed +p" , id()); @@ -71,7 +72,7 @@ void ProcessorBase::remove() if (isMotion()) { ProblemPtr P = getProblem(); - if(P && P->getProcessorMotion()->id() == this->id()) + if(P && (P->getProcessorMotion() == std::dynamic_pointer_cast<IsMotion>( shared_from_this() ) ) ) P->clearProcessorMotion(); } diff --git a/src/processor/processor_diff_drive.cpp b/src/processor/processor_diff_drive.cpp index e8318e8cdd00696ec87dcf9cf5451ca57b98e754..d80f89ccee5cddff4aab89ec3737c5b518463e7e 100644 --- a/src/processor/processor_diff_drive.cpp +++ b/src/processor/processor_diff_drive.cpp @@ -17,13 +17,13 @@ namespace wolf { ProcessorDiffDrive::ProcessorDiffDrive(const ProcessorParamsDiffDrivePtr _params) : - ProcessorOdom2D(_params), + ProcessorOdom2d(_params), params_prc_diff_drv_selfcal_(_params), radians_per_tick_(0.0) // This param needs further initialization. See this->configure(sensor). { - setType("ProcessorDiffDrive"); // overwrite odom2D setting - calib_size_ = 3; // overwrite odom2D setting - unmeasured_perturbation_cov_ = Matrix1d(_params->unmeasured_perturbation_std * _params->unmeasured_perturbation_std); // overwrite odom2D setting + setType("ProcessorDiffDrive"); // overwrite odom2d setting + calib_size_ = 3; // overwrite odom2d setting + unmeasured_perturbation_cov_ = Matrix1d(_params->unmeasured_perturbation_std * _params->unmeasured_perturbation_std); // overwrite odom2d setting } ProcessorDiffDrive::~ProcessorDiffDrive() @@ -36,7 +36,8 @@ void ProcessorDiffDrive::configure(SensorBasePtr _sensor) { assert(_sensor && "Provided sensor is nullptr"); - SensorDiffDriveConstPtr sensor_diff_drive = std::static_pointer_cast<SensorDiffDrive>(_sensor); + SensorDiffDriveConstPtr sensor_diff_drive = std::dynamic_pointer_cast<SensorDiffDrive>(_sensor); + assert(sensor_diff_drive != nullptr && "Sensor is not of type SensorDiffDrive"); radians_per_tick_ = sensor_diff_drive->getRadiansPerTick(); } diff --git a/src/processor/processor_loopclosure.cpp b/src/processor/processor_loopclosure.cpp index 86fb02bf67e309071c9190b839ffcfc638422e22..3517f9e20d5bb55c40ebde25636411c5be02d9cb 100644 --- a/src/processor/processor_loopclosure.cpp +++ b/src/processor/processor_loopclosure.cpp @@ -11,8 +11,8 @@ namespace wolf { -ProcessorLoopClosure::ProcessorLoopClosure(const std::string& _type, ProcessorParamsLoopClosurePtr _params_loop_closure): - ProcessorBase(_type, _params_loop_closure), +ProcessorLoopClosure::ProcessorLoopClosure(const std::string& _type, int _dim, ProcessorParamsLoopClosurePtr _params_loop_closure): + ProcessorBase(_type, _dim, _params_loop_closure), params_loop_closure_(_params_loop_closure) { // diff --git a/src/processor/processor_motion.cpp b/src/processor/processor_motion.cpp index c667b7193bc3b566782351371c7d4f314799a93b..634d1f6d1284997573ef763bd329dcdf37cc94d3 100644 --- a/src/processor/processor_motion.cpp +++ b/src/processor/processor_motion.cpp @@ -1,15 +1,20 @@ + + #include "core/processor/processor_motion.h" + + namespace wolf { ProcessorMotion::ProcessorMotion(const std::string& _type, + int _dim, SizeEigen _state_size, SizeEigen _delta_size, SizeEigen _delta_cov_size, SizeEigen _data_size, SizeEigen _calib_size, ProcessorParamsMotionPtr _params_motion) : - ProcessorBase(_type, _params_motion), + ProcessorBase(_type, _dim, _params_motion), params_motion_(_params_motion), processing_step_(RUNNING_WITHOUT_PACK), x_size_(_state_size), @@ -361,10 +366,13 @@ bool ProcessorMotion::getState(const TimeStamp& _ts, Eigen::VectorXd& _x) const // Get delta and correct it with new calibration params VectorXd calib_preint = capture_motion->getCalibrationPreint(); Motion motion = capture_motion->getBuffer().getMotion(_ts); - + VectorXd delta_step = motion.jacobian_calib_ * (calib - calib_preint); VectorXd delta = capture_motion->correctDelta( motion.delta_integr_, delta_step); + // ensure proper size of the provided reference + _x.resize( getProblem()->getFrameStructureSize() ); + // Compose on top of origin state using the buffered time stamp, not the query time stamp double dt = motion.ts_ - capture_motion->getBuffer().get().front().ts_; statePlusDelta(state_0, delta, dt, _x); @@ -613,7 +621,7 @@ PackKeyFramePtr ProcessorMotion::computeProcessingStep() void ProcessorMotion::setProblem(ProblemPtr _problem) { - if (_problem == nullptr || _problem == this->getProblem()) + if (_problem == nullptr or _problem == this->getProblem()) return; NodeBase::setProblem(_problem); diff --git a/src/processor/processor_odom_2D.cpp b/src/processor/processor_odom_2d.cpp similarity index 80% rename from src/processor/processor_odom_2D.cpp rename to src/processor/processor_odom_2d.cpp index 5ad5e732d52937857a50e4ee3c4826ebfcf4f6d8..c986ebf7cf9cd7fb83df1417ea19c42beed66c74 100644 --- a/src/processor/processor_odom_2D.cpp +++ b/src/processor/processor_odom_2d.cpp @@ -1,21 +1,27 @@ -#include "core/processor/processor_odom_2D.h" +#include "core/processor/processor_odom_2d.h" +#include "core/sensor/sensor_odom_2d.h" #include "core/math/covariance.h" namespace wolf { -ProcessorOdom2D::ProcessorOdom2D(ProcessorParamsOdom2DPtr _params) : - ProcessorMotion("ProcessorOdom2D", 3, 3, 3, 2, 0, _params), - params_odom_2D_(_params) +ProcessorOdom2d::ProcessorOdom2d(ProcessorParamsOdom2dPtr _params) : + ProcessorMotion("ProcessorOdom2d", 2, 3, 3, 3, 2, 0, _params), + params_odom_2d_(_params) { unmeasured_perturbation_cov_ = _params->unmeasured_perturbation_std * _params->unmeasured_perturbation_std * Matrix3d::Identity(); } -ProcessorOdom2D::~ProcessorOdom2D() +ProcessorOdom2d::~ProcessorOdom2d() { } -void ProcessorOdom2D::computeCurrentDelta(const Eigen::VectorXd& _data, const Eigen::MatrixXd& _data_cov, +void ProcessorOdom2d::configure(SensorBasePtr _sensor) +{ + auto sensor_ = std::dynamic_pointer_cast<SensorOdom2d>(_sensor); + assert(sensor_ != nullptr && "Sensor is not of type SensorOdom2d"); +} +void ProcessorOdom2d::computeCurrentDelta(const Eigen::VectorXd& _data, const Eigen::MatrixXd& _data_cov, const Eigen::VectorXd& _calib, const double _dt, Eigen::VectorXd& _delta, Eigen::MatrixXd& _delta_cov, Eigen::MatrixXd& _jacobian_calib) const { @@ -45,19 +51,19 @@ void ProcessorOdom2D::computeCurrentDelta(const Eigen::VectorXd& _data, const Ei _delta_cov = J_delta_data * _data_cov * J_delta_data.transpose() + unmeasured_perturbation_cov_; } -void ProcessorOdom2D::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen::VectorXd& _delta2, const double _Dt2, +void ProcessorOdom2d::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen::VectorXd& _delta2, const double _Dt2, Eigen::VectorXd& _delta1_plus_delta2) const { assert(_delta1.size() == delta_size_ && "Wrong _delta1 vector size"); assert(_delta2.size() == delta_size_ && "Wrong _delta2 vector size"); assert(_delta1_plus_delta2.size() == delta_size_ && "Wrong _delta1_plus_delta2 vector size"); - // This is just a frame composition in 2D + // This is just a frame composition in 2d _delta1_plus_delta2.head<2>() = _delta1.head<2>() + Eigen::Rotation2Dd(_delta1(2)).matrix() * _delta2.head<2>(); _delta1_plus_delta2(2) = pi2pi(_delta1(2) + _delta2(2)); } -void ProcessorOdom2D::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen::VectorXd& _delta2, const double _Dt2, +void ProcessorOdom2d::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen::VectorXd& _delta2, const double _Dt2, Eigen::VectorXd& _delta1_plus_delta2, Eigen::MatrixXd& _jacobian1, Eigen::MatrixXd& _jacobian2) const { @@ -69,7 +75,7 @@ void ProcessorOdom2D::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen assert(_jacobian2.rows() == delta_cov_size_ && "Wrong _jacobian2 size"); assert(_jacobian2.cols() == delta_cov_size_ && "Wrong _jacobian2 size"); - // This is just a frame composition in 2D + // This is just a frame composition in 2d _delta1_plus_delta2.head<2>() = _delta1.head<2>() + Eigen::Rotation2Dd(_delta1(2)).matrix() * _delta2.head<2>(); _delta1_plus_delta2(2) = pi2pi(_delta1(2) + _delta2(2)); @@ -83,38 +89,38 @@ void ProcessorOdom2D::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen _jacobian2.topLeftCorner<2, 2>() = Eigen::Rotation2Dd(_delta1(2)).matrix(); } -void ProcessorOdom2D::statePlusDelta(const Eigen::VectorXd& _x, const Eigen::VectorXd& _delta, const double _Dt, +void ProcessorOdom2d::statePlusDelta(const Eigen::VectorXd& _x, const Eigen::VectorXd& _delta, const double _Dt, Eigen::VectorXd& _x_plus_delta) const { assert(_x.size() == x_size_ && "Wrong _x vector size"); assert(_x_plus_delta.size() == x_size_ && "Wrong _x_plus_delta vector size"); - // This is just a frame composition in 2D + // This is just a frame composition in 2d _x_plus_delta.head<2>() = _x.head<2>() + Eigen::Rotation2Dd(_x(2)).matrix() * _delta.head<2>(); _x_plus_delta(2) = pi2pi(_x(2) + _delta(2)); } -bool ProcessorOdom2D::voteForKeyFrame() const +bool ProcessorOdom2d::voteForKeyFrame() const { // Distance criterion - if (getBuffer().get().back().delta_integr_.head<2>().norm() > params_odom_2D_->dist_traveled) + if (getBuffer().get().back().delta_integr_.head<2>().norm() > params_odom_2d_->dist_traveled) { WOLF_DEBUG("PM", id(), " ", getType(), " votes per distance"); return true; } - if (getBuffer().get().back().delta_integr_.tail<1>().norm() > params_odom_2D_->angle_turned) + if (getBuffer().get().back().delta_integr_.tail<1>().norm() > params_odom_2d_->angle_turned) { WOLF_DEBUG("PM", id(), " ", getType(), " votes per angle"); return true; } // Uncertainty criterion - if (getBuffer().get().back().delta_integr_cov_.determinant() > params_odom_2D_->cov_det) + if (getBuffer().get().back().delta_integr_cov_.determinant() > params_odom_2d_->cov_det) { WOLF_DEBUG("PM", id(), " ", getType(), " votes per state covariance"); return true; } // Time criterion - if (getBuffer().get().back().ts_.get() - origin_ptr_->getFrame()->getTimeStamp().get() > params_odom_2D_->max_time_span) + if (getBuffer().get().back().ts_.get() - origin_ptr_->getFrame()->getTimeStamp().get() > params_odom_2d_->max_time_span) { WOLF_DEBUG("PM", id(), " ", getType(), " votes per time"); return true; @@ -122,7 +128,7 @@ bool ProcessorOdom2D::voteForKeyFrame() const return false; } -CaptureMotionPtr ProcessorOdom2D::emplaceCapture(const FrameBasePtr& _frame_own, +CaptureMotionPtr ProcessorOdom2d::emplaceCapture(const FrameBasePtr& _frame_own, const SensorBasePtr& _sensor, const TimeStamp& _ts, const VectorXd& _data, @@ -131,16 +137,16 @@ CaptureMotionPtr ProcessorOdom2D::emplaceCapture(const FrameBasePtr& _frame_own, const VectorXd& _calib_preint, const CaptureBasePtr& _capture_origin_ptr) { - auto cap_motion = CaptureBase::emplace<CaptureOdom2D>(_frame_own, _ts, _sensor, _data, _data_cov, _capture_origin_ptr); + auto cap_motion = CaptureBase::emplace<CaptureOdom2d>(_frame_own, _ts, _sensor, _data, _data_cov, _capture_origin_ptr); cap_motion->setCalibration(_calib); cap_motion->setCalibrationPreint(_calib_preint); return cap_motion; } -FactorBasePtr ProcessorOdom2D::emplaceFactor(FeatureBasePtr _feature, CaptureBasePtr _capture_origin) +FactorBasePtr ProcessorOdom2d::emplaceFactor(FeatureBasePtr _feature, CaptureBasePtr _capture_origin) { - auto fac_odom = FactorBase::emplace<FactorOdom2D>(_feature, + auto fac_odom = FactorBase::emplace<FactorOdom2d>(_feature, _feature, _capture_origin->getFrame(), shared_from_this(), @@ -148,13 +154,13 @@ FactorBasePtr ProcessorOdom2D::emplaceFactor(FeatureBasePtr _feature, CaptureBas return fac_odom; } -FeatureBasePtr ProcessorOdom2D::emplaceFeature(CaptureMotionPtr _capture_motion) +FeatureBasePtr ProcessorOdom2d::emplaceFeature(CaptureMotionPtr _capture_motion) { Eigen::MatrixXd covariance = _capture_motion->getBuffer().get().back().delta_integr_cov_; makePosDef(covariance); FeatureBasePtr key_feature_ptr = FeatureBase::emplace<FeatureBase>(_capture_motion, - "ProcessorOdom2D", + "ProcessorOdom2d", _capture_motion->getBuffer().get().back().delta_integr_, covariance); return key_feature_ptr; @@ -167,6 +173,6 @@ FeatureBasePtr ProcessorOdom2D::emplaceFeature(CaptureMotionPtr _capture_motion) // Register in the ProcessorFactory #include "core/processor/processor_factory.h" namespace wolf { -WOLF_REGISTER_PROCESSOR("ProcessorOdom2D", ProcessorOdom2D); -WOLF_REGISTER_PROCESSOR_AUTO("ProcessorOdom2D", ProcessorOdom2D); +WOLF_REGISTER_PROCESSOR("ProcessorOdom2d", ProcessorOdom2d); +WOLF_REGISTER_PROCESSOR_AUTO("ProcessorOdom2d", ProcessorOdom2d); } // namespace wolf diff --git a/src/processor/processor_odom_3D.cpp b/src/processor/processor_odom_3d.cpp similarity index 86% rename from src/processor/processor_odom_3D.cpp rename to src/processor/processor_odom_3d.cpp index f0241f7e1ce62ee203948fb6f37394b4bcd4e3ce..967031e9ccd1a68fcee41567be0f7dbf7523ef2c 100644 --- a/src/processor/processor_odom_3D.cpp +++ b/src/processor/processor_odom_3d.cpp @@ -1,10 +1,10 @@ -#include "core/processor/processor_odom_3D.h" +#include "core/processor/processor_odom_3d.h" namespace wolf { -ProcessorOdom3D::ProcessorOdom3D(ProcessorParamsOdom3DPtr _params) : - ProcessorMotion("ProcessorOdom3D", 7, 7, 6, 6, 0, _params), - params_odom_3D_ (_params), +ProcessorOdom3d::ProcessorOdom3d(ProcessorParamsOdom3dPtr _params) : + ProcessorMotion("ProcessorOdom3d", 3, 7, 7, 6, 6, 0, _params), + params_odom_3d_ (_params), k_disp_to_disp_ (0), k_disp_to_rot_ (0), k_rot_to_rot_ (0), @@ -14,17 +14,17 @@ ProcessorOdom3D::ProcessorOdom3D(ProcessorParamsOdom3DPtr _params) : // } -ProcessorOdom3D::~ProcessorOdom3D() +ProcessorOdom3d::~ProcessorOdom3d() { } -void ProcessorOdom3D::configure(SensorBasePtr _sensor) +void ProcessorOdom3d::configure(SensorBasePtr _sensor) { assert (_sensor && "Trying to configure processor with a sensor but provided sensor is nullptr."); + auto sen_ptr = std::dynamic_pointer_cast<SensorOdom3d>(_sensor); + assert(sen_ptr != nullptr && "Sensor is not of type SensorOdom3d"); - SensorOdom3DPtr sen_ptr = std::static_pointer_cast<SensorOdom3D>(_sensor); - - // we steal the parameters from the provided odom3D sensor. + // we steal the parameters from the provided odom3d sensor. k_disp_to_disp_ = sen_ptr->getDispVarToDispNoiseFactor(); k_disp_to_rot_ = sen_ptr->getDispVarToRotNoiseFactor(); k_rot_to_rot_ = sen_ptr->getRotVarToRotNoiseFactor(); @@ -32,7 +32,7 @@ void ProcessorOdom3D::configure(SensorBasePtr _sensor) min_rot_var_ = sen_ptr->getMinRotVar(); } -void ProcessorOdom3D::computeCurrentDelta(const Eigen::VectorXd& _data, +void ProcessorOdom3d::computeCurrentDelta(const Eigen::VectorXd& _data, const Eigen::MatrixXd& _data_cov, const Eigen::VectorXd& _calib, const double _dt, @@ -40,7 +40,7 @@ void ProcessorOdom3D::computeCurrentDelta(const Eigen::VectorXd& _data, Eigen::MatrixXd& _delta_cov, Eigen::MatrixXd& _jacobian_calib) const { - assert((_data.size() == 6 || _data.size() == 7) && "Wrong data size. Must be 6 or 7 for 3D."); + assert((_data.size() == 6 || _data.size() == 7) && "Wrong data size. Must be 6 or 7 for 3d."); double disp, rot; // displacement and rotation of this motion step if (_data.size() == (long int)6) { @@ -81,7 +81,7 @@ void ProcessorOdom3D::computeCurrentDelta(const Eigen::VectorXd& _data, _delta_cov = data_cov; } -void ProcessorOdom3D::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen::VectorXd& _delta2, const double _Dt2, +void ProcessorOdom3d::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen::VectorXd& _delta2, const double _Dt2, Eigen::VectorXd& _delta1_plus_delta2, Eigen::MatrixXd& _jacobian1, Eigen::MatrixXd& _jacobian2) const { @@ -130,7 +130,7 @@ void ProcessorOdom3D::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen dq_out = dq1 * dq2; } -void ProcessorOdom3D::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen::VectorXd& _delta2, const double _Dt2, +void ProcessorOdom3d::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen::VectorXd& _delta2, const double _Dt2, Eigen::VectorXd& _delta1_plus_delta2) const { assert(_delta1.size() == delta_size_ && "Wrong _delta1 vector size"); @@ -149,9 +149,9 @@ void ProcessorOdom3D::deltaPlusDelta(const Eigen::VectorXd& _delta1, const Eigen dq_out = dq1 * dq2; } -void ProcessorOdom3D::statePlusDelta(const Eigen::VectorXd& _x, const Eigen::VectorXd& _delta, const double _Dt, +void ProcessorOdom3d::statePlusDelta(const Eigen::VectorXd& _x, const Eigen::VectorXd& _delta, const double _Dt, Eigen::VectorXd& _x_plus_delta) const -{ +{ assert(_x.size() >= x_size_ && "Wrong _x vector size"); //we need a state vector which size is at least x_size_ assert(_delta.size() == delta_size_ && "Wrong _delta vector size"); assert(_x_plus_delta.size() >= x_size_ && "Wrong _x_plus_delta vector size"); @@ -170,7 +170,7 @@ void ProcessorOdom3D::statePlusDelta(const Eigen::VectorXd& _x, const Eigen::Vec -bool ProcessorOdom3D::voteForKeyFrame() const +bool ProcessorOdom3d::voteForKeyFrame() const { //WOLF_DEBUG( "Time span : " , getBuffer().get().back().ts_ - getBuffer().get().front().ts_ ); //WOLF_DEBUG( " last ts : ", getBuffer().get().back().ts_); @@ -179,27 +179,27 @@ bool ProcessorOdom3D::voteForKeyFrame() const //WOLF_DEBUG( "DistTraveled: " , delta_integrated_.head(3).norm() ); //WOLF_DEBUG( "AngleTurned : " , 2.0 * acos(delta_integrated_(6)) ); // time span - if (getBuffer().get().back().ts_ - getBuffer().get().front().ts_ > params_odom_3D_->max_time_span) + if (getBuffer().get().back().ts_ - getBuffer().get().front().ts_ > params_odom_3d_->max_time_span) { WOLF_DEBUG( "PM: vote: time span" ); return true; } // buffer length - if (getBuffer().get().size() > params_odom_3D_->max_buff_length) + if (getBuffer().get().size() > params_odom_3d_->max_buff_length) { WOLF_DEBUG( "PM: vote: buffer size" ); return true; } // distance traveled double dist = getMotion().delta_integr_.head(3).norm(); - if (dist > params_odom_3D_->dist_traveled) + if (dist > params_odom_3d_->dist_traveled) { WOLF_DEBUG( "PM: vote: distance traveled" ); return true; } // angle turned double angle = q2v(Quaterniond(getMotion().delta_integr_.data()+3)).norm(); // 2.0 * acos(getMotion().delta_integr_(6)); - if (angle > params_odom_3D_->angle_turned) + if (angle > params_odom_3d_->angle_turned) { WOLF_DEBUG( "PM: vote: angle turned" ); return true; @@ -208,7 +208,7 @@ bool ProcessorOdom3D::voteForKeyFrame() const return false; } -CaptureMotionPtr ProcessorOdom3D::emplaceCapture(const FrameBasePtr& _frame_own, +CaptureMotionPtr ProcessorOdom3d::emplaceCapture(const FrameBasePtr& _frame_own, const SensorBasePtr& _sensor, const TimeStamp& _ts, const VectorXd& _data, @@ -217,25 +217,25 @@ CaptureMotionPtr ProcessorOdom3D::emplaceCapture(const FrameBasePtr& _frame_own, const VectorXd& _calib_preint, const CaptureBasePtr& _capture_origin) { - auto cap_motion = CaptureBase::emplace<CaptureOdom3D>(_frame_own, _ts, _sensor, _data, _data_cov, _capture_origin); + auto cap_motion = CaptureBase::emplace<CaptureOdom3d>(_frame_own, _ts, _sensor, _data, _data_cov, _capture_origin); cap_motion->setCalibration(_calib); cap_motion->setCalibrationPreint(_calib_preint); return cap_motion; } -FeatureBasePtr ProcessorOdom3D::emplaceFeature(CaptureMotionPtr _capture_motion) +FeatureBasePtr ProcessorOdom3d::emplaceFeature(CaptureMotionPtr _capture_motion) { FeatureBasePtr key_feature_ptr = FeatureBase::emplace<FeatureBase>(_capture_motion, - "ProcessorOdom3D", + "ProcessorOdom3d", _capture_motion->getBuffer().get().back().delta_integr_, _capture_motion->getBuffer().get().back().delta_integr_cov_); return key_feature_ptr; } -FactorBasePtr ProcessorOdom3D::emplaceFactor(FeatureBasePtr _feature_motion, CaptureBasePtr _capture_origin) +FactorBasePtr ProcessorOdom3d::emplaceFactor(FeatureBasePtr _feature_motion, CaptureBasePtr _capture_origin) { - auto fac_odom = FactorBase::emplace<FactorOdom3D>(_feature_motion, + auto fac_odom = FactorBase::emplace<FactorOdom3d>(_feature_motion, _feature_motion, _capture_origin->getFrame(), shared_from_this(), @@ -249,6 +249,6 @@ FactorBasePtr ProcessorOdom3D::emplaceFactor(FeatureBasePtr _feature_motion, Cap // Register in the SensorFactory #include "core/processor/processor_factory.h" namespace wolf { -WOLF_REGISTER_PROCESSOR("ProcessorOdom3D", ProcessorOdom3D); -WOLF_REGISTER_PROCESSOR_AUTO("ProcessorOdom3D", ProcessorOdom3D); +WOLF_REGISTER_PROCESSOR("ProcessorOdom3d", ProcessorOdom3d); +WOLF_REGISTER_PROCESSOR_AUTO("ProcessorOdom3d", ProcessorOdom3d); } // namespace wolf diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp index 227f819941fb886e657cb03c0f0cf1422218738b..56d5ae4ae45ed40962274292328076087da7fb9f 100644 --- a/src/processor/processor_tracker.cpp +++ b/src/processor/processor_tracker.cpp @@ -15,8 +15,9 @@ namespace wolf { ProcessorTracker::ProcessorTracker(const std::string& _type, + int _dim, ProcessorParamsTrackerPtr _params_tracker) : - ProcessorBase(_type, _params_tracker), + ProcessorBase(_type, _dim, _params_tracker), params_tracker_(_params_tracker), processing_step_(FIRST_TIME_WITHOUT_PACK), origin_ptr_(nullptr), diff --git a/src/processor/processor_tracker_feature.cpp b/src/processor/processor_tracker_feature.cpp index d6ce9c065e8c0611f6e1190acf1fe4555d83cdf6..211a1aba12b12ecfb10afea00041cf82e07493be 100644 --- a/src/processor/processor_tracker_feature.cpp +++ b/src/processor/processor_tracker_feature.cpp @@ -11,8 +11,9 @@ namespace wolf { ProcessorTrackerFeature::ProcessorTrackerFeature(const std::string& _type, + int _dim, ProcessorParamsTrackerFeaturePtr _params_tracker_feature) : - ProcessorTracker(_type, _params_tracker_feature), + ProcessorTracker(_type, _dim, _params_tracker_feature), params_tracker_feature_(_params_tracker_feature) { } diff --git a/src/processor/processor_tracker_landmark.cpp b/src/processor/processor_tracker_landmark.cpp index c0114ace1a52790c72c084f3133ced6c3f94acb8..7035dd38de2fcfb177deef2f4ed30d28fcdd92cf 100644 --- a/src/processor/processor_tracker_landmark.cpp +++ b/src/processor/processor_tracker_landmark.cpp @@ -15,7 +15,7 @@ namespace wolf ProcessorTrackerLandmark::ProcessorTrackerLandmark(const std::string& _type, ProcessorParamsTrackerLandmarkPtr _params_tracker_landmark) : - ProcessorTracker(_type, _params_tracker_landmark), + ProcessorTracker(_type, 0, _params_tracker_landmark), params_tracker_landmark_(_params_tracker_landmark) { // diff --git a/src/sensor/sensor_odom_2D.cpp b/src/sensor/sensor_odom_2D.cpp deleted file mode 100644 index 626b96a86c3957cc8f9dcacf536152d1f28376dd..0000000000000000000000000000000000000000 --- a/src/sensor/sensor_odom_2D.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "core/sensor/sensor_odom_2D.h" -#include "core/state_block/state_block.h" -#include "core/state_block/state_angle.h" - -namespace wolf { - -SensorOdom2D::SensorOdom2D(Eigen::VectorXd _extrinsics, const ParamsSensorOdom2D& _intrinsics) : - SensorBase("SensorOdom2D", std::make_shared<StateBlock>(_extrinsics.head(2), true), std::make_shared<StateAngle>(_extrinsics(2), true), nullptr, 2), - k_disp_to_disp_(_intrinsics.k_disp_to_disp), - k_rot_to_rot_(_intrinsics.k_rot_to_rot) -{ - assert(_extrinsics.size() == 3 && "Wrong extrinsics vector size! Should be 3 for 2D."); - // -} - -SensorOdom2D::SensorOdom2D(Eigen::VectorXd _extrinsics, ParamsSensorOdom2DPtr _intrinsics) : - SensorOdom2D(_extrinsics, *_intrinsics) -{ - // -} - -SensorOdom2D::~SensorOdom2D() -{ - // -} - -double SensorOdom2D::getDispVarToDispNoiseFactor() const -{ - return k_disp_to_disp_; -} - -double SensorOdom2D::getRotVarToRotNoiseFactor() const -{ - return k_rot_to_rot_; -} - -} - -// Register in the SensorFactory -#include "core/sensor/sensor_factory.h" -namespace wolf { -WOLF_REGISTER_SENSOR("SensorOdom2D", SensorOdom2D); -WOLF_REGISTER_SENSOR_AUTO("SensorOdom2D", SensorOdom2D); -} // namespace wolf diff --git a/src/sensor/sensor_odom_2d.cpp b/src/sensor/sensor_odom_2d.cpp new file mode 100644 index 0000000000000000000000000000000000000000..57af930f6724980d49209aaf1ece6b6762556adc --- /dev/null +++ b/src/sensor/sensor_odom_2d.cpp @@ -0,0 +1,44 @@ +#include "core/sensor/sensor_odom_2d.h" +#include "core/state_block/state_block.h" +#include "core/state_block/state_angle.h" + +namespace wolf { + +SensorOdom2d::SensorOdom2d(Eigen::VectorXd _extrinsics, const ParamsSensorOdom2d& _intrinsics) : + SensorBase("SensorOdom2d", std::make_shared<StateBlock>(_extrinsics.head(2), true), std::make_shared<StateAngle>(_extrinsics(2), true), nullptr, 2), + k_disp_to_disp_(_intrinsics.k_disp_to_disp), + k_rot_to_rot_(_intrinsics.k_rot_to_rot) +{ + assert(_extrinsics.size() == 3 && "Wrong extrinsics vector size! Should be 3 for 2d."); + // +} + +SensorOdom2d::SensorOdom2d(Eigen::VectorXd _extrinsics, ParamsSensorOdom2dPtr _intrinsics) : + SensorOdom2d(_extrinsics, *_intrinsics) +{ + // +} + +SensorOdom2d::~SensorOdom2d() +{ + // +} + +double SensorOdom2d::getDispVarToDispNoiseFactor() const +{ + return k_disp_to_disp_; +} + +double SensorOdom2d::getRotVarToRotNoiseFactor() const +{ + return k_rot_to_rot_; +} + +} + +// Register in the SensorFactory +#include "core/sensor/sensor_factory.h" +namespace wolf { +WOLF_REGISTER_SENSOR("SensorOdom2d", SensorOdom2d); +WOLF_REGISTER_SENSOR_AUTO("SensorOdom2d", SensorOdom2d); +} // namespace wolf diff --git a/src/sensor/sensor_odom_3D.cpp b/src/sensor/sensor_odom_3d.cpp similarity index 64% rename from src/sensor/sensor_odom_3D.cpp rename to src/sensor/sensor_odom_3d.cpp index 181e9326631c21409b35dd0232773576aca5c72c..a79995b85e11a3c248be1f19d4c69514cd6483d8 100644 --- a/src/sensor/sensor_odom_3D.cpp +++ b/src/sensor/sensor_odom_3d.cpp @@ -1,38 +1,38 @@ /** - * \file sensor_odom_3D.cpp + * \file sensor_odom_3d.cpp * * Created on: Oct 7, 2016 * \author: jsola */ -#include "core/sensor/sensor_odom_3D.h" +#include "core/sensor/sensor_odom_3d.h" #include "core/state_block/state_block.h" #include "core/state_block/state_quaternion.h" namespace wolf { -SensorOdom3D::SensorOdom3D(const Eigen::VectorXd& _extrinsics_pq, const ParamsSensorOdom3D& _intrinsics) : - SensorBase("SensorOdom3D", std::make_shared<StateBlock>(_extrinsics_pq.head(3), true), std::make_shared<StateQuaternion>(_extrinsics_pq.tail(4), true), nullptr, 6), +SensorOdom3d::SensorOdom3d(const Eigen::VectorXd& _extrinsics_pq, const ParamsSensorOdom3d& _intrinsics) : + SensorBase("SensorOdom3d", std::make_shared<StateBlock>(_extrinsics_pq.head(3), true), std::make_shared<StateQuaternion>(_extrinsics_pq.tail(4), true), nullptr, 6), k_disp_to_disp_(_intrinsics.k_disp_to_disp), k_disp_to_rot_(_intrinsics.k_disp_to_rot), k_rot_to_rot_(_intrinsics.k_rot_to_rot), min_disp_var_(_intrinsics.min_disp_var), min_rot_var_(_intrinsics.min_rot_var) { - assert(_extrinsics_pq.size() == 7 && "Bad extrinsics vector size! Should be 7 for 3D."); + assert(_extrinsics_pq.size() == 7 && "Bad extrinsics vector size! Should be 7 for 3d."); noise_cov_ = (Eigen::Vector6d() << min_disp_var_, min_disp_var_, min_disp_var_, min_rot_var_, min_rot_var_, min_rot_var_).finished().asDiagonal(); setNoiseCov(noise_cov_); // sets also noise_std_ } -SensorOdom3D::SensorOdom3D(const Eigen::VectorXd& _extrinsics_pq, ParamsSensorOdom3DPtr _intrinsics) : - SensorOdom3D(_extrinsics_pq, *_intrinsics) +SensorOdom3d::SensorOdom3d(const Eigen::VectorXd& _extrinsics_pq, ParamsSensorOdom3dPtr _intrinsics) : + SensorOdom3d(_extrinsics_pq, *_intrinsics) { // } -SensorOdom3D::~SensorOdom3D() +SensorOdom3d::~SensorOdom3d() { // } @@ -42,6 +42,6 @@ SensorOdom3D::~SensorOdom3D() // Register in the SensorFactory #include "core/sensor/sensor_factory.h" namespace wolf { -WOLF_REGISTER_SENSOR("SensorOdom3D", SensorOdom3D); -WOLF_REGISTER_SENSOR_AUTO("SensorOdom3D", SensorOdom3D); +WOLF_REGISTER_SENSOR("SensorOdom3d", SensorOdom3d); +WOLF_REGISTER_SENSOR_AUTO("SensorOdom3d", SensorOdom3d); } diff --git a/src/solver/solver_manager.cpp b/src/solver/solver_manager.cpp index 0d47cd191f51c51126d38a591fea7de3614f53ae..6532dfc6a2b95d43451e00f8fad4797e7c53edf9 100644 --- a/src/solver/solver_manager.cpp +++ b/src/solver/solver_manager.cpp @@ -50,7 +50,7 @@ void SolverManager::update() } else { - WOLF_DEBUG("Tried to add an already added !"); + WOLF_DEBUG("Tried to add a StateBlock that was already added !"); } } else diff --git a/src/solver_suitesparse/solver_manager.cpp b/src/solver_suitesparse/solver_manager.cpp index 805307fcd4ba78aee0b7d73ceba8a700c67a59cf..908a2f4aabcddc90248ab99261c7d5824c54c826 100644 --- a/src/solver_suitesparse/solver_manager.cpp +++ b/src/solver_suitesparse/solver_manager.cpp @@ -94,10 +94,10 @@ void SolverManager::addStateUnit(StateBlockPtr _st_ptr) ceres_problem_->AddParameterBlock(_st_ptr->get(), ((StateBlockPtr)_st_ptr)->BLOCK_SIZE, nullptr); break; } - case ST_POINT_1D: + case ST_POINT_1d: { //std::cout << "No Local Parametrization to be added" << std::endl; - ceres_problem_->AddParameterBlock(_st_ptr->get(), ((StatePoint1D*)_st_ptr)->BLOCK_SIZE, nullptr); + ceres_problem_->AddParameterBlock(_st_ptr->get(), ((StatePoint1d*)_st_ptr)->BLOCK_SIZE, nullptr); break; } case ST_VECTOR: @@ -106,7 +106,7 @@ void SolverManager::addStateUnit(StateBlockPtr _st_ptr) ceres_problem_->AddParameterBlock(_st_ptr->get(), ((StateBlockPtr)_st_ptr)->BLOCK_SIZE, nullptr); break; } - case ST_POINT_3D: + case ST_POINT_3d: { //std::cout << "No Local Parametrization to be added" << std::endl; ceres_problem_->AddParameterBlock(_st_ptr->get(), ((StateBlockPtr)_st_ptr)->BLOCK_SIZE, nullptr); @@ -152,10 +152,10 @@ ceres::CostFunction* SolverManager::createCostFunction(FactorBasePtr _corrPtr) switch (_corrPtr->getFactorType()) { - case FAC_GPS_FIX_2D: + case FAC_GPS_FIX_2d: { - FactorGPS2D* specific_ptr = (FactorGPS2D*)(_corrPtr); - return new ceres::AutoDiffCostFunction<FactorGPS2D, + FactorGPS2d* specific_ptr = (FactorGPS2d*)(_corrPtr); + return new ceres::AutoDiffCostFunction<FactorGPS2d, specific_ptr->residualSize, specific_ptr->block0Size, specific_ptr->block1Size, @@ -169,10 +169,10 @@ ceres::CostFunction* SolverManager::createCostFunction(FactorBasePtr _corrPtr) specific_ptr->block9Size>(specific_ptr); break; } - case FAC_ODOM_2D_COMPLEX_ANGLE: + case FAC_ODOM_2d_COMPLEX_ANGLE: { - FactorOdom2DComplexAngle* specific_ptr = (FactorOdom2DComplexAngle*)(_corrPtr); - return new ceres::AutoDiffCostFunction<FactorOdom2DComplexAngle, + FactorOdom2dComplexAngle* specific_ptr = (FactorOdom2dComplexAngle*)(_corrPtr); + return new ceres::AutoDiffCostFunction<FactorOdom2dComplexAngle, specific_ptr->residualSize, specific_ptr->block0Size, specific_ptr->block1Size, @@ -186,10 +186,10 @@ ceres::CostFunction* SolverManager::createCostFunction(FactorBasePtr _corrPtr) specific_ptr->block9Size>(specific_ptr); break; } - case FAC_ODOM_2D: + case FAC_ODOM_2d: { - FactorOdom2D* specific_ptr = (FactorOdom2D*)(_corrPtr); - return new ceres::AutoDiffCostFunction<FactorOdom2D, + FactorOdom2d* specific_ptr = (FactorOdom2d*)(_corrPtr); + return new ceres::AutoDiffCostFunction<FactorOdom2d, specific_ptr->residualSize, specific_ptr->block0Size, specific_ptr->block1Size, @@ -203,10 +203,10 @@ ceres::CostFunction* SolverManager::createCostFunction(FactorBasePtr _corrPtr) specific_ptr->block9Size>(specific_ptr); break; } - case FAC_CORNER_2D: + case FAC_CORNER_2d: { - FactorCorner2D* specific_ptr = (FactorCorner2D*)(_corrPtr); - return new ceres::AutoDiffCostFunction<FactorCorner2D, + FactorCorner2d* specific_ptr = (FactorCorner2d*)(_corrPtr); + return new ceres::AutoDiffCostFunction<FactorCorner2d, specific_ptr->residualSize, specific_ptr->block0Size, specific_ptr->block1Size, diff --git a/src/state_block/has_state_blocks.cpp b/src/state_block/has_state_blocks.cpp index b90e9188c1e1cefbec01f02ca33c99da6511bf89..83cf44b26bdfcad7e415633ef6d8fe783564a75c 100644 --- a/src/state_block/has_state_blocks.cpp +++ b/src/state_block/has_state_blocks.cpp @@ -4,6 +4,20 @@ namespace wolf { +StateBlockPtr HasStateBlocks::addStateBlock(const std::string& _sb_type, const StateBlockPtr& _sb, ProblemPtr _problem) +{ + assert(state_block_map_.count(_sb_type) == 0 && "Trying to add a state block with an existing type! Use setStateBlock instead."); + state_block_map_.emplace(_sb_type, _sb); + if (!isInStructure(_sb_type)) + appendToStructure(_sb_type); + + // conditionally register to problem + if(_problem) + _problem->notifyStateBlock(_sb, ADD); + + return _sb; +} + void HasStateBlocks::registerNewStateBlocks(ProblemPtr _problem) const { if (_problem != nullptr) @@ -30,5 +44,14 @@ void HasStateBlocks::removeStateBlocks(ProblemPtr _problem) } } +void HasStateBlocks::perturb(double amplitude) +{ + for (const auto& pair_key_sb : state_block_map_) + { + auto& sb = pair_key_sb.second; + if (!sb->isFixed()) + sb->perturb(amplitude); + } +} } diff --git a/src/state_block/state_block.cpp b/src/state_block/state_block.cpp index f582ae97787b4a3df8d1e98177385427580a90c0..783a56a5e8cb52fe0ae79e2ad14ca4b50976a48c 100644 --- a/src/state_block/state_block.cpp +++ b/src/state_block/state_block.cpp @@ -36,4 +36,22 @@ void StateBlock::setFixed(bool _fixed) // _problem_ptr->removeStateBlock(shared_from_this()); //} +void StateBlock::perturb(double amplitude) +{ + using namespace Eigen; + VectorXd perturbation(VectorXd::Random(getLocalSize()) * amplitude); + if (local_param_ptr_ == nullptr) + state_ += perturbation; + else + { + VectorXd state_perturbed(getSize()); + // Note: LocalParametrizationBase::plus() works with Eigen::Map only. Build all necessary maps: + Map<const VectorXd> state_map(state_.data(), getSize()); + Map<const VectorXd> perturbation_map(perturbation.data(), getLocalSize()); + Map<VectorXd> state_perturbed_map(state_perturbed.data(), getSize()); + local_param_ptr_->plus(state_map, perturbation_map, state_perturbed_map); + state_ = state_perturbed; + } +} + } diff --git a/src/yaml/processor_odom_3D_yaml.cpp b/src/yaml/processor_odom_3d_yaml.cpp similarity index 75% rename from src/yaml/processor_odom_3D_yaml.cpp rename to src/yaml/processor_odom_3d_yaml.cpp index ef18be90644eac4aeed4c085a83a203b95ab685e..1047ba5fd2482ab1f89c5a7256eb54b86f6181d6 100644 --- a/src/yaml/processor_odom_3D_yaml.cpp +++ b/src/yaml/processor_odom_3d_yaml.cpp @@ -1,5 +1,5 @@ /** - * \file processor_odom_3D_yaml.cpp + * \file processor_odom_3d_yaml.cpp * * Created on: Oct 25, 2016 * \author: jsola @@ -9,7 +9,7 @@ #include "core/yaml/yaml_conversion.h" // wolf -#include "core/processor/processor_odom_3D.h" +#include "core/processor/processor_odom_3d.h" #include "core/common/factory.h" // yaml-cpp library @@ -20,13 +20,13 @@ namespace wolf namespace { -static ProcessorParamsBasePtr createProcessorOdom3DParams(const std::string & _filename_dot_yaml) +static ProcessorParamsBasePtr createProcessorOdom3dParams(const std::string & _filename_dot_yaml) { YAML::Node config = YAML::LoadFile(_filename_dot_yaml); - if (config["type"].as<std::string>() == "ProcessorOdom3D") + if (config["type"].as<std::string>() == "ProcessorOdom3d") { - ProcessorParamsOdom3DPtr params = std::make_shared<ProcessorParamsOdom3D>(); + ProcessorParamsOdom3dPtr params = std::make_shared<ProcessorParamsOdom3d>(); params->time_tolerance = config["time_tolerance"] .as<double>(); params->unmeasured_perturbation_std = config["unmeasured_perturbation_std"] .as<double>(); @@ -48,7 +48,7 @@ static ProcessorParamsBasePtr createProcessorOdom3DParams(const std::string & _f } // Register in the SensorFactory -const bool WOLF_UNUSED registered_prc_odom_3D = ProcessorParamsFactory::get().registerCreator("ProcessorOdom3D", createProcessorOdom3DParams); +const bool WOLF_UNUSED registered_prc_odom_3d = ProcessorParamsFactory::get().registerCreator("ProcessorOdom3d", createProcessorOdom3dParams); } // namespace [unnamed] diff --git a/src/yaml/sensor_odom_2D_yaml.cpp b/src/yaml/sensor_odom_2d_yaml.cpp similarity index 62% rename from src/yaml/sensor_odom_2D_yaml.cpp rename to src/yaml/sensor_odom_2d_yaml.cpp index f157c221b223ecd813613b12c3f9460980af264a..d59cd4decfb77338a0b3bb4ba17c607e03f847c1 100644 --- a/src/yaml/sensor_odom_2D_yaml.cpp +++ b/src/yaml/sensor_odom_2d_yaml.cpp @@ -1,5 +1,5 @@ /** - * \file sensor_odom_2D_yaml.cpp + * \file sensor_odom_2d_yaml.cpp * * Created on: Aug 3, 2019 * \author: jsola @@ -11,7 +11,7 @@ #include "core/yaml/yaml_conversion.h" // wolf -#include "core/sensor/sensor_odom_2D.h" +#include "core/sensor/sensor_odom_2d.h" // yaml-cpp library #include <yaml-cpp/yaml.h> @@ -21,13 +21,13 @@ namespace wolf namespace { -static ParamsSensorBasePtr createParamsSensorOdom2D(const std::string & _filename_dot_yaml) +static ParamsSensorBasePtr createParamsSensorOdom2d(const std::string & _filename_dot_yaml) { YAML::Node config = YAML::LoadFile(_filename_dot_yaml); - if (config["type"].as<std::string>() == "SensorOdom2D") + if (config["type"].as<std::string>() == "SensorOdom2d") { - auto params = std::make_shared<ParamsSensorOdom2D>(); + auto params = std::make_shared<ParamsSensorOdom2d>(); params->k_disp_to_disp = config["k_disp_to_disp"] .as<double>(); params->k_rot_to_rot = config["k_rot_to_rot"] .as<double>(); @@ -40,7 +40,7 @@ static ParamsSensorBasePtr createParamsSensorOdom2D(const std::string & _filenam } // Register in the SensorFactory -const bool WOLF_UNUSED registered_odom_2D_intr = ParamsSensorFactory::get().registerCreator("SensorOdom2D", createParamsSensorOdom2D); +const bool WOLF_UNUSED registered_odom_2d_intr = ParamsSensorFactory::get().registerCreator("SensorOdom2d", createParamsSensorOdom2d); } // namespace [unnamed] diff --git a/src/yaml/sensor_odom_3D_yaml.cpp b/src/yaml/sensor_odom_3d_yaml.cpp similarity index 69% rename from src/yaml/sensor_odom_3D_yaml.cpp rename to src/yaml/sensor_odom_3d_yaml.cpp index 61abfae1056ff03eed1421ef3221062c2c875281..e437bedcbf00257068bfea07830caa9f8224e7c9 100644 --- a/src/yaml/sensor_odom_3D_yaml.cpp +++ b/src/yaml/sensor_odom_3d_yaml.cpp @@ -1,5 +1,5 @@ /** - * \file sensor_odom_3D_yaml.cpp + * \file sensor_odom_3d_yaml.cpp * * Created on: Oct 25, 2016 * \author: jsola @@ -9,7 +9,7 @@ #include "core/yaml/yaml_conversion.h" // wolf -#include "core/sensor/sensor_odom_3D.h" +#include "core/sensor/sensor_odom_3d.h" #include "core/common/factory.h" // yaml-cpp library @@ -20,13 +20,13 @@ namespace wolf namespace { -static ParamsSensorBasePtr createParamsSensorOdom3D(const std::string & _filename_dot_yaml) +static ParamsSensorBasePtr createParamsSensorOdom3d(const std::string & _filename_dot_yaml) { YAML::Node config = YAML::LoadFile(_filename_dot_yaml); - if (config["type"].as<std::string>() == "SensorOdom3D") + if (config["type"].as<std::string>() == "SensorOdom3d") { - ParamsSensorOdom3DPtr params = std::make_shared<ParamsSensorOdom3D>(); + ParamsSensorOdom3dPtr params = std::make_shared<ParamsSensorOdom3d>(); params->k_disp_to_disp = config["k_disp_to_disp"] .as<double>(); params->k_disp_to_rot = config["k_disp_to_rot"] .as<double>(); @@ -42,7 +42,7 @@ static ParamsSensorBasePtr createParamsSensorOdom3D(const std::string & _filenam } // Register in the SensorFactory -const bool WOLF_UNUSED registered_odom_3D_intr = ParamsSensorFactory::get().registerCreator("SensorOdom3D", createParamsSensorOdom3D); +const bool WOLF_UNUSED registered_odom_3d_intr = ParamsSensorFactory::get().registerCreator("SensorOdom3d", createParamsSensorOdom3d); } // namespace [unnamed] diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 79fc2c60a55ef6b0c9df2700e47adafcf27c6d23..d32d5c6216c857ad703c34aa1a10f4b29d6c4dc0 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -79,6 +79,10 @@ target_link_libraries(gtest_feature_base ${PROJECT_NAME}) wolf_add_gtest(gtest_frame_base gtest_frame_base.cpp) target_link_libraries(gtest_frame_base ${PROJECT_NAME}) +# HasStateBlocks classes test +wolf_add_gtest(gtest_has_state_blocks gtest_has_state_blocks.cpp) +target_link_libraries(gtest_has_state_blocks ${PROJECT_NAME}) + # LocalParametrizationXxx classes test wolf_add_gtest(gtest_local_param gtest_local_param.cpp) target_link_libraries(gtest_local_param ${PROJECT_NAME}) @@ -133,6 +137,10 @@ target_link_libraries(gtest_shared_from_this ${PROJECT_NAME}) wolf_add_gtest(gtest_solver_manager gtest_solver_manager.cpp) target_link_libraries(gtest_solver_manager ${PROJECT_NAME}) +# StateBlock class test +wolf_add_gtest(gtest_state_block gtest_state_block.cpp) +target_link_libraries(gtest_state_block ${PROJECT_NAME}) + # TimeStamp class test wolf_add_gtest(gtest_time_stamp gtest_time_stamp.cpp) target_link_libraries(gtest_time_stamp ${PROJECT_NAME}) @@ -157,25 +165,25 @@ ENDIF(Ceres_FOUND) wolf_add_gtest(gtest_factor_absolute gtest_factor_absolute.cpp) target_link_libraries(gtest_factor_absolute ${PROJECT_NAME}) -# FactorAutodiffDistance3D test -wolf_add_gtest(gtest_factor_autodiff_distance_3D gtest_factor_autodiff_distance_3D.cpp) -target_link_libraries(gtest_factor_autodiff_distance_3D ${PROJECT_NAME}) +# FactorAutodiffDistance3d test +wolf_add_gtest(gtest_factor_autodiff_distance_3d gtest_factor_autodiff_distance_3d.cpp) +target_link_libraries(gtest_factor_autodiff_distance_3d ${PROJECT_NAME}) -# FactorOdom3D class test +# FactorOdom3d class test wolf_add_gtest(gtest_factor_diff_drive gtest_factor_diff_drive.cpp) target_link_libraries(gtest_factor_diff_drive ${PROJECT_NAME}) -# FactorOdom3D class test -wolf_add_gtest(gtest_factor_odom_3D gtest_factor_odom_3D.cpp) -target_link_libraries(gtest_factor_odom_3D ${PROJECT_NAME}) +# FactorOdom3d class test +wolf_add_gtest(gtest_factor_odom_3d gtest_factor_odom_3d.cpp) +target_link_libraries(gtest_factor_odom_3d ${PROJECT_NAME}) -# FactorPose2D class test -wolf_add_gtest(gtest_factor_pose_2D gtest_factor_pose_2D.cpp) -target_link_libraries(gtest_factor_pose_2D ${PROJECT_NAME}) +# FactorPose2d class test +wolf_add_gtest(gtest_factor_pose_2d gtest_factor_pose_2d.cpp) +target_link_libraries(gtest_factor_pose_2d ${PROJECT_NAME}) -# FactorPose3D class test -wolf_add_gtest(gtest_factor_pose_3D gtest_factor_pose_3D.cpp) -target_link_libraries(gtest_factor_pose_3D ${PROJECT_NAME}) +# FactorPose3d class test +wolf_add_gtest(gtest_factor_pose_3d gtest_factor_pose_3d.cpp) +target_link_libraries(gtest_factor_pose_3d ${PROJECT_NAME}) # MakePosDef function test wolf_add_gtest(gtest_make_posdef gtest_make_posdef.cpp) @@ -198,16 +206,16 @@ wolf_add_gtest(gtest_processor_loopclosure gtest_processor_loopclosure.cpp) target_link_libraries(gtest_processor_loopclosure ${PROJECT_NAME}) # ProcessorFrameNearestNeighborFilter class test -# wolf_add_gtest(gtest_processor_frame_nearest_neighbor_filter_2D gtest_processor_frame_nearest_neighbor_filter_2D.cpp) -# target_link_libraries(gtest_processor_frame_nearest_neighbor_filter_2D ${PROJECT_NAME}) +# wolf_add_gtest(gtest_processor_frame_nearest_neighbor_filter_2d gtest_processor_frame_nearest_neighbor_filter_2d.cpp) +# target_link_libraries(gtest_processor_frame_nearest_neighbor_filter_2d ${PROJECT_NAME}) -# ProcessorMotion in 2D -wolf_add_gtest(gtest_odom_2D gtest_odom_2D.cpp) -target_link_libraries(gtest_odom_2D ${PROJECT_NAME}) +# ProcessorMotion in 2d +wolf_add_gtest(gtest_odom_2d gtest_odom_2d.cpp) +target_link_libraries(gtest_odom_2d ${PROJECT_NAME}) -# ProcessorOdom3D class test -wolf_add_gtest(gtest_processor_odom_3D gtest_processor_odom_3D.cpp) -target_link_libraries(gtest_processor_odom_3D ${PROJECT_NAME}) +# ProcessorOdom3d class test +wolf_add_gtest(gtest_processor_odom_3d gtest_processor_odom_3d.cpp) +target_link_libraries(gtest_processor_odom_3d ${PROJECT_NAME}) # ProcessorTrackerFeatureDummy class test wolf_add_gtest(gtest_processor_tracker_feature_dummy gtest_processor_tracker_feature_dummy.cpp) diff --git a/test/dummy/processor_tracker_feature_dummy.h b/test/dummy/processor_tracker_feature_dummy.h index 4f5205d152ad4b0916d5c4968e754eb8da84c023..3328edf08c0234d6b587680b9b215bc91a7ae43f 100644 --- a/test/dummy/processor_tracker_feature_dummy.h +++ b/test/dummy/processor_tracker_feature_dummy.h @@ -110,7 +110,7 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature }; inline ProcessorTrackerFeatureDummy::ProcessorTrackerFeatureDummy(ProcessorParamsTrackerFeatureDummyPtr _params_tracker_feature_dummy) : - ProcessorTrackerFeature("ProcessorTrackerFeatureDummy", _params_tracker_feature_dummy), + ProcessorTrackerFeature("ProcessorTrackerFeatureDummy", 0, _params_tracker_feature_dummy), params_tracker_feature_dummy_(_params_tracker_feature_dummy) { // diff --git a/test/gtest_ceres_manager.cpp b/test/gtest_ceres_manager.cpp index 4ac66fb4b90181dde9a369c1be7f8b9e46e03c76..7ead2b8f801602e664cae1e2ec4249f21ef916a5 100644 --- a/test/gtest_ceres_manager.cpp +++ b/test/gtest_ceres_manager.cpp @@ -12,7 +12,7 @@ #include "core/sensor/sensor_base.h" #include "core/state_block/state_block.h" #include "core/capture/capture_void.h" -#include "core/factor/factor_pose_2D.h" +#include "core/factor/factor_pose_2d.h" #include "core/factor/factor_quaternion_absolute.h" #include "core/solver/solver_manager.h" #include "core/ceres_wrapper/ceres_manager.h" @@ -320,8 +320,8 @@ TEST(CeresManager, AddFactor) // Create (and add) factor point 2d FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f,f,nullptr,false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f,f,nullptr,false); // update solver ceres_manager_ptr->update(); @@ -342,8 +342,8 @@ TEST(CeresManager, DoubleAddFactor) // Create (and add) factor point 2d FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f,f,nullptr,false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f,f,nullptr,false); // add factor again P->notifyFactor(c,ADD); @@ -367,8 +367,8 @@ TEST(CeresManager, RemoveFactor) // Create (and add) factor point 2d FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f,f,nullptr,false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f,f,nullptr,false); // update solver ceres_manager_ptr->update(); @@ -395,8 +395,8 @@ TEST(CeresManager, AddRemoveFactor) // Create (and add) factor point 2d FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f,f,nullptr,false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f,f,nullptr,false); // remove factor P->notifyFactor(c,REMOVE); @@ -422,8 +422,8 @@ TEST(CeresManager, DoubleRemoveFactor) // Create (and add) factor point 2d FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f,f,nullptr,false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f,f,nullptr,false); // update solver ceres_manager_ptr->update(); @@ -549,7 +549,7 @@ TEST(CeresManager, FactorsRemoveLocalParam) // Create (and add) 2 factors quaternion FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); FactorQuaternionAbsolutePtr c1 = FactorBase::emplace<FactorQuaternionAbsolute>(f, F->getO(),nullptr,false); FactorQuaternionAbsolutePtr c2 = FactorBase::emplace<FactorQuaternionAbsolute>(f, F->getO(),nullptr,false); @@ -591,7 +591,7 @@ TEST(CeresManager, FactorsUpdateLocalParam) // Create (and add) 2 factors quaternion FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); FactorQuaternionAbsolutePtr c1 = FactorBase::emplace<FactorQuaternionAbsolute>(f, F->getO(),nullptr,false); FactorQuaternionAbsolutePtr c2 = FactorBase::emplace<FactorQuaternionAbsolute>(f, F->getO(),nullptr,false); diff --git a/test/gtest_emplace.cpp b/test/gtest_emplace.cpp index e2def5779a6d2dab385df5cbfb599fbd3c7a944c..e60531daf9ab855e03b074384452d8e61c78d52a 100644 --- a/test/gtest_emplace.cpp +++ b/test/gtest_emplace.cpp @@ -10,11 +10,11 @@ #include "core/problem/problem.h" #include "core/sensor/sensor_base.h" -#include "core/sensor/sensor_odom_2D.h" -#include "core/sensor/sensor_odom_3D.h" -#include "core/processor/processor_odom_3D.h" -#include "core/processor/processor_odom_2D.h" -#include "core/feature/feature_odom_2D.h" +#include "core/sensor/sensor_odom_2d.h" +#include "core/sensor/sensor_odom_3d.h" +#include "core/processor/processor_odom_3d.h" +#include "core/processor/processor_odom_2d.h" +#include "core/feature/feature_odom_2d.h" #include "dummy/processor_tracker_feature_dummy.h" #include <iostream> @@ -48,16 +48,16 @@ TEST(Emplace, Frame) TEST(Emplace, Processor) { - ProblemPtr P = Problem::create("POV", 3); + ProblemPtr P = Problem::create("PO", 2); auto sen = SensorBase::emplace<SensorBase>(P->getHardware(), "Dummy", nullptr, nullptr, nullptr, 2, false); - auto prc = ProcessorOdom2D::emplace<ProcessorOdom2D>(sen, std::make_shared<ProcessorParamsOdom2D>()); + auto prc = ProcessorOdom2d::emplace<ProcessorOdom2d>(sen, std::make_shared<ProcessorParamsOdom2d>()); ASSERT_EQ(P, P->getHardware()->getSensorList().front()->getProcessorList().front()->getSensor()->getProblem()); ASSERT_EQ(sen, sen->getProcessorList().front()->getSensor()); ASSERT_EQ(prc, sen->getProcessorList().front()); SensorBasePtr sen2 = SensorBase::emplace<SensorBase>(P->getHardware(), "Dummy", nullptr, nullptr, nullptr, 2, false); - ProcessorOdom2DPtr prc2 = ProcessorOdom2D::emplace<ProcessorOdom2D>(sen2, std::make_shared<ProcessorParamsOdom2D>()); + ProcessorOdom2dPtr prc2 = ProcessorOdom2d::emplace<ProcessorOdom2d>(sen2, std::make_shared<ProcessorParamsOdom2d>()); ASSERT_EQ(sen2, sen2->getProcessorList().front()->getSensor()); ASSERT_EQ(prc2, sen2->getProcessorList().front()); } @@ -107,11 +107,11 @@ TEST(Emplace, Factor) ASSERT_EQ(P, P->getTrajectory()->getFrameList().front()->getCaptureList().front()->getProblem()); ASSERT_EQ(frm, frm->getCaptureList().front()->getFrame()); auto cov = Eigen::MatrixXd::Identity(2,2); - auto ftr = FeatureBase::emplace<FeatureOdom2D>(cpt, Eigen::VectorXd(2), cov); + auto ftr = FeatureBase::emplace<FeatureOdom2d>(cpt, Eigen::VectorXd(2), cov); ASSERT_EQ(P, P->getTrajectory()->getFrameList().front()->getCaptureList().front()->getFeatureList().front()->getCapture()->getFrame()->getTrajectory()->getProblem()); ASSERT_EQ(P, P->getTrajectory()->getFrameList().front()->getCaptureList().front()->getFeatureList().front()->getProblem()); ASSERT_EQ(cpt, cpt->getFeatureList().front()->getCapture()); - auto cnt = FactorBase::emplace<FactorOdom2D>(ftr, ftr, frm, nullptr, false); + auto cnt = FactorBase::emplace<FactorOdom2d>(ftr, ftr, frm, nullptr, false); ASSERT_NE(nullptr, ftr->getFactorList().front().get()); } @@ -120,15 +120,15 @@ TEST(Emplace, EmplaceDerived) ProblemPtr P = Problem::create("POV", 3); auto frm = FrameBase::emplace<FrameBase>(P->getTrajectory(), KEY, TimeStamp(0), std::make_shared<StateBlock>(2,true), std::make_shared<StateBlock>(2,true)); - auto sen = SensorBase::emplace<SensorOdom2D>(P->getHardware(), Eigen::VectorXd(3), ParamsSensorOdom2D()); + auto sen = SensorBase::emplace<SensorOdom2d>(P->getHardware(), Eigen::VectorXd(3), ParamsSensorOdom2d()); auto cov = Eigen::MatrixXd::Identity(2,2); - auto cpt = CaptureBase::emplace<CaptureOdom2D>(frm, TimeStamp(0), sen, Eigen::VectorXd(2), cov, nullptr); + auto cpt = CaptureBase::emplace<CaptureOdom2d>(frm, TimeStamp(0), sen, Eigen::VectorXd(2), cov, nullptr); auto m = Eigen::Matrix<double,9,6>(); for(int i = 0; i < 9; i++) for(int j = 0; j < 6; j++) m(i,j) = 1; - auto ftr = FeatureBase::emplace<FeatureOdom2D>(cpt, Eigen::VectorXd(2), cov); + auto ftr = FeatureBase::emplace<FeatureOdom2d>(cpt, Eigen::VectorXd(2), cov); ASSERT_EQ(sen, P->getHardware()->getSensorList().front()); ASSERT_EQ(P, P->getTrajectory()->getFrameList().front()->getCaptureList().front()->getFeatureList().front()->getProblem()); } @@ -144,10 +144,10 @@ TEST(Emplace, ReturnDerived) auto frm = FrameBase::emplace<FrameBase>(P->getTrajectory(), KEY, TimeStamp(0), std::make_shared<StateBlock>(2,true), std::make_shared<StateBlock>(2,true)); auto cpt = CaptureBase::emplace<CaptureBase>(frm, "Dummy", TimeStamp(0), nullptr, nullptr, nullptr, nullptr); auto cov = Eigen::MatrixXd::Identity(2,2); - auto ftr = FeatureBase::emplace<FeatureOdom2D>(cpt, Eigen::VectorXd(2), cov); - auto cnt = FactorBase::emplace<FactorOdom2D>(ftr, ftr, frm, nullptr, false); + auto ftr = FeatureBase::emplace<FeatureOdom2d>(cpt, Eigen::VectorXd(2), cov); + auto cnt = FactorBase::emplace<FactorOdom2d>(ftr, ftr, frm, nullptr, false); - FactorOdom2DPtr fac = FactorBase::emplace<FactorOdom2D>(ftr, ftr, frm, nullptr, false); + FactorOdom2dPtr fac = FactorBase::emplace<FactorOdom2d>(ftr, ftr, frm, nullptr, false); } int main(int argc, char **argv) diff --git a/test/gtest_factor_autodiff.cpp b/test/gtest_factor_autodiff.cpp index d03a9d3a5c728682d0cdef0b609ebb52edeff394..993908461d6b37cae1b24d8701a3612d4dc9c432 100644 --- a/test/gtest_factor_autodiff.cpp +++ b/test/gtest_factor_autodiff.cpp @@ -7,11 +7,11 @@ #include "core/utils/utils_gtest.h" -#include "core/sensor/sensor_odom_2D.h" +#include "core/sensor/sensor_odom_2d.h" #include "core/capture/capture_void.h" -#include "core/feature/feature_odom_2D.h" -#include "core/factor/factor_odom_2D.h" -#include "core/factor/factor_odom_2D_analytic.h" +#include "core/feature/feature_odom_2d.h" +#include "core/factor/factor_odom_2d.h" +#include "core/factor/factor_odom_2d_analytic.h" #include "core/factor/factor_autodiff.h" using namespace wolf; @@ -23,19 +23,19 @@ TEST(CaptureAutodiff, ConstructorOdom2d) FrameBasePtr fr2_ptr(std::make_shared<FrameBase>(TimeStamp(0), std::make_shared<StateBlock>(2), std::make_shared<StateBlock>(1))); // SENSOR - ParamsSensorOdom2D intrinsics_odo; + ParamsSensorOdom2d intrinsics_odo; intrinsics_odo.k_disp_to_disp = 0.1; intrinsics_odo.k_rot_to_rot = 0.1; - SensorOdom2DPtr sensor_ptr = std::make_shared<SensorOdom2D>(Vector3d::Zero(), intrinsics_odo); + SensorOdom2dPtr sensor_ptr = std::make_shared<SensorOdom2d>(Vector3d::Zero(), intrinsics_odo); // CAPTURE auto capture_ptr = CaptureBase::emplace<CaptureVoid>(fr2_ptr, TimeStamp(0), sensor_ptr); // FEATURE - auto feature_ptr = FeatureBase::emplace<FeatureOdom2D>(capture_ptr, Eigen::Vector3d::Zero(), Eigen::Matrix3d::Identity()); + auto feature_ptr = FeatureBase::emplace<FeatureOdom2d>(capture_ptr, Eigen::Vector3d::Zero(), Eigen::Matrix3d::Identity()); // FACTOR - auto factor_ptr = FactorBase::emplace<FactorOdom2D>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); + auto factor_ptr = FactorBase::emplace<FactorOdom2d>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); ASSERT_TRUE(factor_ptr->getFeature()); ASSERT_TRUE(factor_ptr->getFeature()->getCapture()); @@ -54,10 +54,10 @@ TEST(CaptureAutodiff, ResidualOdom2d) FrameBasePtr fr2_ptr(std::make_shared<FrameBase>(TimeStamp(0), std::make_shared<StateBlock>(f2_pose.head<2>()), std::make_shared<StateBlock>(f2_pose.tail<1>()))); // SENSOR - ParamsSensorOdom2D intrinsics_odo; + ParamsSensorOdom2d intrinsics_odo; intrinsics_odo.k_disp_to_disp = 0.1; intrinsics_odo.k_rot_to_rot = 0.1; - SensorOdom2DPtr sensor_ptr = std::make_shared<SensorOdom2D>(Vector3d::Zero(), intrinsics_odo); + SensorOdom2dPtr sensor_ptr = std::make_shared<SensorOdom2d>(Vector3d::Zero(), intrinsics_odo); // CAPTURE auto capture_ptr = CaptureBase::emplace<CaptureVoid>(fr2_ptr, TimeStamp(0), sensor_ptr); @@ -66,10 +66,10 @@ TEST(CaptureAutodiff, ResidualOdom2d) // FEATURE Eigen::Vector3d d; d << -1, -4, M_PI/2; - auto feature_ptr = FeatureBase::emplace<FeatureOdom2D>(capture_ptr, d, Eigen::Matrix3d::Identity()); + auto feature_ptr = FeatureBase::emplace<FeatureOdom2d>(capture_ptr, d, Eigen::Matrix3d::Identity()); // FACTOR - auto factor_ptr = FactorBase::emplace<FactorOdom2D>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); + auto factor_ptr = FactorBase::emplace<FactorOdom2d>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); // EVALUATE @@ -98,10 +98,10 @@ TEST(CaptureAutodiff, JacobianOdom2d) FrameBasePtr fr2_ptr(std::make_shared<FrameBase>(TimeStamp(0), std::make_shared<StateBlock>(f2_pose.head<2>()), std::make_shared<StateBlock>(f2_pose.tail<1>()))); // SENSOR - ParamsSensorOdom2D intrinsics_odo; + ParamsSensorOdom2d intrinsics_odo; intrinsics_odo.k_disp_to_disp = 0.1; intrinsics_odo.k_rot_to_rot = 0.1; - SensorOdom2DPtr sensor_ptr = std::make_shared<SensorOdom2D>(Vector3d::Zero(), intrinsics_odo); + SensorOdom2dPtr sensor_ptr = std::make_shared<SensorOdom2d>(Vector3d::Zero(), intrinsics_odo); // CAPTURE auto capture_ptr = CaptureBase::emplace<CaptureVoid>(fr2_ptr, TimeStamp(0), sensor_ptr); @@ -109,10 +109,10 @@ TEST(CaptureAutodiff, JacobianOdom2d) // FEATURE Eigen::Vector3d d; d << -1, -4, M_PI/2; - auto feature_ptr = FeatureBase::emplace<FeatureOdom2D>(capture_ptr, d, Eigen::Matrix3d::Identity()); + auto feature_ptr = FeatureBase::emplace<FeatureOdom2d>(capture_ptr, d, Eigen::Matrix3d::Identity()); // FACTOR - auto factor_ptr = FactorBase::emplace<FactorOdom2D>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); + auto factor_ptr = FactorBase::emplace<FactorOdom2d>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); // COMPUTE JACOBIANS @@ -176,10 +176,10 @@ TEST(CaptureAutodiff, AutodiffVsAnalytic) FrameBasePtr fr2_ptr(std::make_shared<FrameBase>(TimeStamp(0), std::make_shared<StateBlock>(f2_pose.head<2>()), std::make_shared<StateBlock>(f2_pose.tail<1>()))); // SENSOR - ParamsSensorOdom2D intrinsics_odo; + ParamsSensorOdom2d intrinsics_odo; intrinsics_odo.k_disp_to_disp = 0.1; intrinsics_odo.k_rot_to_rot = 0.1; - SensorOdom2DPtr sensor_ptr = std::make_shared<SensorOdom2D>(Vector3d::Zero(), intrinsics_odo); + SensorOdom2dPtr sensor_ptr = std::make_shared<SensorOdom2d>(Vector3d::Zero(), intrinsics_odo); // CAPTURE auto capture_ptr = CaptureBase::emplace<CaptureVoid>(fr2_ptr, TimeStamp(0), sensor_ptr); @@ -187,11 +187,11 @@ TEST(CaptureAutodiff, AutodiffVsAnalytic) // FEATURE Eigen::Vector3d d; d << -1, -4, M_PI/2; - auto feature_ptr = FeatureBase::emplace<FeatureOdom2D>(capture_ptr, d, Eigen::Matrix3d::Identity()); + auto feature_ptr = FeatureBase::emplace<FeatureOdom2d>(capture_ptr, d, Eigen::Matrix3d::Identity()); // FACTOR - auto fac_autodiff_ptr = FactorBase::emplace<FactorOdom2D>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); - auto fac_analytic_ptr = FactorBase::emplace<FactorOdom2DAnalytic>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); + auto fac_autodiff_ptr = FactorBase::emplace<FactorOdom2d>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); + auto fac_analytic_ptr = FactorBase::emplace<FactorOdom2dAnalytic>(feature_ptr, feature_ptr, fr1_ptr, nullptr, false); // COMPUTE JACOBIANS diff --git a/test/gtest_factor_autodiff_distance_3D.cpp b/test/gtest_factor_autodiff_distance_3d.cpp similarity index 85% rename from test/gtest_factor_autodiff_distance_3D.cpp rename to test/gtest_factor_autodiff_distance_3d.cpp index 0e4bf7a2dd6729fee7cdef688b261af3ba3f4a95..985e25a23de5f1c6b137d1b477bb9a22b219fb2a 100644 --- a/test/gtest_factor_autodiff_distance_3D.cpp +++ b/test/gtest_factor_autodiff_distance_3d.cpp @@ -1,11 +1,11 @@ /** - * \file gtest_factor_autodiff_distance_3D.cpp + * \file gtest_factor_autodiff_distance_3d.cpp * * Created on: Apr 10, 2018 * \author: jsola */ -#include "core/factor/factor_autodiff_distance_3D.h" +#include "core/factor/factor_autodiff_distance_3d.h" #include "core/problem/problem.h" #include "core/utils/logging.h" #include "core/ceres_wrapper/ceres_manager.h" @@ -16,7 +16,7 @@ using namespace wolf; using namespace Eigen; -class FactorAutodiffDistance3D_Test : public testing::Test +class FactorAutodiffDistance3d_Test : public testing::Test { public: Vector3d pos1, pos2; @@ -28,7 +28,7 @@ class FactorAutodiffDistance3D_Test : public testing::Test FrameBasePtr F1, F2; CaptureBasePtr C2; FeatureBasePtr f2; - FactorAutodiffDistance3DPtr c2; + FactorAutodiffDistance3dPtr c2; Vector1d dist; Matrix1d dist_cov; @@ -60,13 +60,13 @@ class FactorAutodiffDistance3D_Test : public testing::Test F2 = problem->emplaceFrame (KEY, pose2, 2.0); C2 = CaptureBase::emplace<CaptureBase>(F2, "Base", 1.0); f2 = FeatureBase::emplace<FeatureBase>(C2, "Dist", dist, dist_cov); - c2 = FactorBase::emplace<FactorAutodiffDistance3D>(f2, f2, F1, nullptr, false, FAC_ACTIVE); + c2 = FactorBase::emplace<FactorAutodiffDistance3d>(f2, f2, F1, nullptr, false, FAC_ACTIVE); } }; -TEST_F(FactorAutodiffDistance3D_Test, ground_truth) +TEST_F(FactorAutodiffDistance3d_Test, ground_truth) { double res; @@ -75,7 +75,7 @@ TEST_F(FactorAutodiffDistance3D_Test, ground_truth) ASSERT_NEAR(res, 0.0, 1e-5); } -TEST_F(FactorAutodiffDistance3D_Test, expected_residual) +TEST_F(FactorAutodiffDistance3d_Test, expected_residual) { double measurement = 1.400; @@ -89,7 +89,7 @@ TEST_F(FactorAutodiffDistance3D_Test, expected_residual) ASSERT_NEAR(res, res_expected, 1e-5); } -TEST_F(FactorAutodiffDistance3D_Test, solve) +TEST_F(FactorAutodiffDistance3d_Test, solve) { double measurement = 1.400; f2->setMeasurement(Vector1d(measurement)); diff --git a/test/gtest_factor_odom_3D.cpp b/test/gtest_factor_odom_3d.cpp similarity index 86% rename from test/gtest_factor_odom_3D.cpp rename to test/gtest_factor_odom_3d.cpp index d1b88599bfee17681e8e8187f6ed4eac982b40e1..1315118016ebe3319a04e07b37d0d8438b714ebe 100644 --- a/test/gtest_factor_odom_3D.cpp +++ b/test/gtest_factor_odom_3d.cpp @@ -1,5 +1,5 @@ /** - * \file gtest_factor_odom_3D.cpp + * \file gtest_factor_odom_3d.cpp * * Created on: Mar 30, 2017 * \author: jsola @@ -7,7 +7,7 @@ #include "core/utils/utils_gtest.h" -#include "core/factor/factor_odom_3D.h" +#include "core/factor/factor_odom_3d.h" #include "core/capture/capture_motion.h" #include "core/ceres_wrapper/ceres_manager.h" @@ -41,23 +41,23 @@ FrameBasePtr frm0 = problem_ptr->emplaceFrame(KEY, problem_ptr->zeroState(), Tim FrameBasePtr frm1 = problem_ptr->emplaceFrame(KEY, delta, TimeStamp(1)); // Capture, feature and factor from frm1 to frm0 -auto cap1 = CaptureBase::emplace<CaptureMotion>(frm1, "CaptureOdom3D", 1, nullptr, delta, 7, 6, nullptr); -auto fea1 = FeatureBase::emplace<FeatureBase>(cap1, "FeatureOdom3D", delta, data_cov); -FactorOdom3DPtr ctr1 = FactorBase::emplace<FactorOdom3D>(fea1, fea1, frm0, nullptr, false); // create and add +auto cap1 = CaptureBase::emplace<CaptureMotion>(frm1, "CaptureOdom3d", 1, nullptr, delta, 7, 6, nullptr); +auto fea1 = FeatureBase::emplace<FeatureBase>(cap1, "FeatureOdom3d", delta, data_cov); +FactorOdom3dPtr ctr1 = FactorBase::emplace<FactorOdom3d>(fea1, fea1, frm0, nullptr, false); // create and add //////////////////////////////////////////////////////// -TEST(FactorOdom3D, check_tree) +TEST(FactorOdom3d, check_tree) { ASSERT_TRUE(problem_ptr->check(0)); } -TEST(FactorOdom3D, expectation) +TEST(FactorOdom3d, expectation) { ASSERT_MATRIX_APPROX(ctr1->expectation() , delta, 1e-6); } -TEST(FactorOdom3D, fix_0_solve) +TEST(FactorOdom3d, fix_0_solve) { // Fix frame 0, perturb frm1 @@ -72,7 +72,7 @@ TEST(FactorOdom3D, fix_0_solve) } -TEST(FactorOdom3D, fix_1_solve) +TEST(FactorOdom3d, fix_1_solve) { // Fix frame 1, perturb frm0 frm0->unfix(); diff --git a/test/gtest_factor_pose_2D.cpp b/test/gtest_factor_pose_2d.cpp similarity index 85% rename from test/gtest_factor_pose_2D.cpp rename to test/gtest_factor_pose_2d.cpp index 71c7b7d5ba9169be5c433f714be1d7c97f44bcb8..5d9cb7f406beef3b95ce1da4add8f2041a20c685 100644 --- a/test/gtest_factor_pose_2D.cpp +++ b/test/gtest_factor_pose_2d.cpp @@ -1,11 +1,11 @@ /** - * \file gtest_factor_pose_2D.cpp + * \file gtest_factor_pose_2d.cpp * * Created on: Mar 30, 2017 * \author: jsola */ -#include "core/factor/factor_pose_2D.h" +#include "core/factor/factor_pose_2d.h" #include "core/utils/utils_gtest.h" #include "core/capture/capture_motion.h" @@ -33,13 +33,13 @@ CeresManager ceres_mgr(problem); FrameBasePtr frm0 = problem->emplaceFrame(KEY, problem->zeroState(), TimeStamp(0)); // Capture, feature and factor from frm1 to frm0 -auto cap0 = CaptureBase::emplace<CaptureMotion>(frm0, "CaptureOdom2D", 0, nullptr, pose, 3, 3, nullptr); -auto fea0 = FeatureBase::emplace<FeatureBase>(cap0, "FeatureOdom2D", pose, data_cov); -auto ctr0 = FactorBase::emplace<FactorPose2D>(fea0, fea0, nullptr, false); +auto cap0 = CaptureBase::emplace<CaptureMotion>(frm0, "CaptureOdom2d", 0, nullptr, pose, 3, 3, nullptr); +auto fea0 = FeatureBase::emplace<FeatureBase>(cap0, "FeatureOdom2d", pose, data_cov); +auto ctr0 = FactorBase::emplace<FactorPose2d>(fea0, fea0, nullptr, false); //////////////////////////////////////////////////////// -TEST(FactorPose2D, check_tree) +TEST(FactorPose2d, check_tree) { ASSERT_TRUE(problem->check(0)); } @@ -49,7 +49,7 @@ TEST(FactorPose2D, check_tree) // ASSERT_EIGEN_APPROX(ctr0->expectation() , delta); //} -TEST(FactorPose2D, solve) +TEST(FactorPose2d, solve) { // Fix frame 0, perturb frm1 diff --git a/test/gtest_factor_pose_3D.cpp b/test/gtest_factor_pose_3d.cpp similarity index 84% rename from test/gtest_factor_pose_3D.cpp rename to test/gtest_factor_pose_3d.cpp index d0a6258a01f834b05c91771986740baa2a65b743..9eeb5dfc14bbc6b185c598a8a17489a44794206e 100644 --- a/test/gtest_factor_pose_3D.cpp +++ b/test/gtest_factor_pose_3d.cpp @@ -1,11 +1,11 @@ /** - * \file gtest_factor_fix_3D.cpp + * \file gtest_factor_fix_3d.cpp * * Created on: Mar 30, 2017 * \author: jsola */ -#include "core/factor/factor_pose_3D.h" +#include "core/factor/factor_pose_3d.h" #include "core/utils/utils_gtest.h" #include "core/capture/capture_motion.h" @@ -39,23 +39,23 @@ CeresManager ceres_mgr(problem); FrameBasePtr frm0 = problem->emplaceFrame(KEY, problem->zeroState(), TimeStamp(0)); // Capture, feature and factor -auto cap0 = CaptureBase::emplace<CaptureMotion>(frm0, "CaptureOdom3D", 0, nullptr, pose7, 7, 6, nullptr); -auto fea0 = FeatureBase::emplace<FeatureBase>(cap0, "FeatureOdom3D", pose7, data_cov); -FactorPose3DPtr ctr0 = FactorBase::emplace<FactorPose3D>(fea0, fea0, nullptr, false); +auto cap0 = CaptureBase::emplace<CaptureMotion>(frm0, "CaptureOdom3d", 0, nullptr, pose7, 7, 6, nullptr); +auto fea0 = FeatureBase::emplace<FeatureBase>(cap0, "FeatureOdom3d", pose7, data_cov); +FactorPose3dPtr ctr0 = FactorBase::emplace<FactorPose3d>(fea0, fea0, nullptr, false); //////////////////////////////////////////////////////// -TEST(FactorPose3D, check_tree) +TEST(FactorPose3d, check_tree) { ASSERT_TRUE(problem->check(0)); } -//TEST(FactorFix3D, expectation) +//TEST(FactorFix3d, expectation) //{ // ASSERT_EIGEN_APPROX(ctr0->expectation() , delta); //} -TEST(FactorPose3D, solve) +TEST(FactorPose3d, solve) { // Fix frame 0, perturb frm1 diff --git a/test/gtest_frame_base.cpp b/test/gtest_frame_base.cpp index e37ef4935c3deb1e2c1e4449a6b7a294ea9a000a..77fa1ace2c4bf876b0c318fe79dc476688e92af0 100644 --- a/test/gtest_frame_base.cpp +++ b/test/gtest_frame_base.cpp @@ -9,9 +9,9 @@ #include "core/utils/logging.h" #include "core/frame/frame_base.h" -#include "core/sensor/sensor_odom_2D.h" -#include "core/processor/processor_odom_2D.h" -#include "core/factor/factor_odom_2D.h" +#include "core/sensor/sensor_odom_2d.h" +#include "core/processor/processor_odom_2d.h" +#include "core/factor/factor_odom_2d.h" #include "core/capture/capture_motion.h" #include <iostream> @@ -53,7 +53,7 @@ TEST(FrameBase, LinksBasic) ASSERT_FALSE(F->getProblem()); // ASSERT_THROW(f->getPreviousFrame(), std::runtime_error); // protected by assert() // ASSERT_EQ(f->getStatus(), ST_ESTIMATED); // protected - SensorOdom2DPtr S = make_shared<SensorOdom2D>(Vector3d::Zero(), ParamsSensorOdom2D()); + SensorOdom2dPtr S = make_shared<SensorOdom2d>(Vector3d::Zero(), ParamsSensorOdom2d()); ASSERT_FALSE(F->getCaptureOf(S)); ASSERT_TRUE(F->getCaptureList().empty()); ASSERT_TRUE(F->getConstrainedByList().empty()); @@ -65,16 +65,16 @@ TEST(FrameBase, LinksToTree) // Problem with 2 frames and one motion factor between them ProblemPtr P = Problem::create("PO", 2); TrajectoryBasePtr T = P->getTrajectory(); - ParamsSensorOdom2D intrinsics_odo; + ParamsSensorOdom2d intrinsics_odo; intrinsics_odo.k_disp_to_disp = 1; intrinsics_odo.k_rot_to_rot = 1; - auto S = SensorBase::emplace<SensorOdom2D>(P->getHardware(), Vector3d::Zero(), intrinsics_odo); + auto S = SensorBase::emplace<SensorOdom2d>(P->getHardware(), Vector3d::Zero(), intrinsics_odo); auto F1 = FrameBase::emplace<FrameBase>(T, 1, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); auto F2 = FrameBase::emplace<FrameBase>(T, 1, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); auto C = CaptureBase::emplace<CaptureMotion>(F1, "CaptureMotion", 1, S, Vector3d::Zero(), 3, 3, nullptr); - auto p = ProcessorBase::emplace<ProcessorOdom2D>(S, std::make_shared<ProcessorParamsOdom2D>()); + auto p = ProcessorBase::emplace<ProcessorOdom2d>(S, std::make_shared<ProcessorParamsOdom2d>()); auto f = FeatureBase::emplace<FeatureBase>(C, "f", Vector1d(1), Matrix<double,1,1>::Identity()*.01); - auto c = FactorBase::emplace<FactorOdom2D>(f, f, F2, p, false); + auto c = FactorBase::emplace<FactorOdom2d>(f, f, F2, p, false); //TODO: WARNING! I dropped this comprovations since the emplacing operation is now atomic. ASSERT_FALSE(F2->getConstrainedByList().empty()); @@ -120,7 +120,7 @@ TEST(FrameBase, LinksToTree) #include "core/state_block/state_quaternion.h" TEST(FrameBase, GetSetState) { - // Create PQV_3D state blocks + // Create PQV_3d state blocks StateBlockPtr sbp = make_shared<StateBlock>(3); StateBlockPtr sbv = make_shared<StateBlock>(3); StateQuaternionPtr sbq = make_shared<StateQuaternion>(); diff --git a/test/gtest_has_state_blocks.cpp b/test/gtest_has_state_blocks.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d8b46e9b721fa4f9947138eee2655ed3ad25bff0 --- /dev/null +++ b/test/gtest_has_state_blocks.cpp @@ -0,0 +1,171 @@ +/** + * \file gtest_has_state_blocks.cpp + * + * Created on: Mar 24, 2020 + * \author: jsola + */ + + +#include "core/utils/utils_gtest.h" + +#include "core/frame/frame_base.h" +#include "core/sensor/sensor_base.h" +#include "core/landmark/landmark_base.h" +#include "core/state_block/state_quaternion.h" +#include "core/ceres_wrapper/ceres_manager.h" + +using namespace wolf; + +class HasStateBlocksTest : public testing::Test +{ + + public: + + ProblemPtr problem; + SensorBasePtr S0, S1; + FrameBasePtr F0, F1; + CaptureBasePtr C0, C1; + LandmarkBasePtr L0, L1; + StateBlockPtr sbp0, sbv0, sbp1, sbv1; + StateQuaternionPtr sbo0, sbo1; + + + virtual void SetUp() + { + problem = Problem::create("POV", 3); + + sbp0 = std::make_shared<StateBlock>(3); // size 3 + sbo0 = std::make_shared<StateQuaternion>(); + sbv0 = std::make_shared<StateBlock>(3); // size 3 + sbp1 = std::make_shared<StateBlock>(3); // size 3 + sbo1 = std::make_shared<StateQuaternion>(); + sbv1 = std::make_shared<StateBlock>(3); // size 3 + + F0 = std::make_shared<FrameBase>(0.0, sbp0, sbo0); // non KF + F1 = std::make_shared<FrameBase>(1.0, nullptr); // non KF + + } + virtual void TearDown(){} + +}; + + +TEST_F(HasStateBlocksTest, Notifications_setKey_add) +{ + Notification n; + ASSERT_FALSE(problem->getStateBlockNotification(sbp0, n)); + + F0->link(problem->getTrajectory()); + + ASSERT_FALSE(problem->getStateBlockNotification(sbp0, n)); + + F0->setKey(); + + ASSERT_TRUE(problem->getStateBlockNotification(sbp0, n)); + ASSERT_EQ(n, ADD); +} + +TEST_F(HasStateBlocksTest, Notifications_add_makeKF) +{ + Notification n; + + // First add SB, than make KF + + ASSERT_FALSE(problem->getStateBlockNotification(sbp0, n)); + + F0->link(problem->getTrajectory()); + + ASSERT_FALSE(problem->getStateBlockNotification(sbp0, n)); + + ASSERT_FALSE(problem->getStateBlockNotification(sbv0, n)); + + F0->addStateBlock("V", sbv0); + + ASSERT_FALSE(problem->getStateBlockNotification(sbv0, n)); + + F0->setKey(); + + ASSERT_TRUE(problem->getStateBlockNotification(sbp0, n)); + ASSERT_EQ(n, ADD); + + ASSERT_TRUE(problem->getStateBlockNotification(sbv0, n)); + ASSERT_EQ(n, ADD); + +} + +TEST_F(HasStateBlocksTest, Notifications_makeKF_add) +{ + Notification n; + + // first make KF, then add SB + + F1->link(problem->getTrajectory()); + F1->setKey(); + + F1->addStateBlock("P", sbp1); + + ASSERT_TRUE(problem->getStateBlockNotification(sbp1, n)); + ASSERT_EQ(n, ADD); + + // add another SB + + ASSERT_FALSE(problem->getStateBlockNotification(sbv1, n)); + + F1->addStateBlock("V", sbv1); + + ASSERT_TRUE(problem->getStateBlockNotification(sbv1, n)); + ASSERT_EQ(n, ADD); + +} + +TEST_F(HasStateBlocksTest, Add_solve_notify_solve_add) +{ + + CeresManagerPtr solver = std::make_shared<CeresManager>(problem); + + + Notification n; + + // Add SB, make KF + + ASSERT_FALSE(problem->getStateBlockNotification(sbp0, n)); + + F0->link(problem->getTrajectory()); + F0->addStateBlock("V", sbv0); + F0->setKey(); + + ASSERT_TRUE(problem->getStateBlockNotification(sbv0, n)); + ASSERT_EQ(n, ADD); + + // solve. This will clear all notifications + + std::string report = solver->solve(SolverManager::ReportVerbosity::FULL); + + ASSERT_FALSE(problem->getStateBlockNotification(sbv0, n)); + + // Notify again the same SB + + problem->notifyStateBlock(sbv0, ADD); + + ASSERT_TRUE(problem->getStateBlockNotification(sbv0, n)); + ASSERT_EQ(n, ADD); + + // solve again + + report = solver->solve(SolverManager::ReportVerbosity::FULL); + + ASSERT_FALSE(problem->getStateBlockNotification(sbv0, n)); + + // Add again the same SB. This should crash + + ASSERT_DEATH( F0->addStateBlock("V", sbv0) , "" ); + +} + +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); +//::testing::GTEST_FLAG(filter) = "TestGroup.DummyTestExample"; + return RUN_ALL_TESTS(); +} + diff --git a/test/gtest_map_yaml.cpp b/test/gtest_map_yaml.cpp index b738e5e77a3d8926f4c22b6c5b2c7e8d25d4965a..dd3f75031499911304c36a1e8a4f5fa9f7c10e04 100644 --- a/test/gtest_map_yaml.cpp +++ b/test/gtest_map_yaml.cpp @@ -18,7 +18,7 @@ #include <iostream> using namespace wolf; -TEST(MapYaml, save_2D) +TEST(MapYaml, save_2d) { ProblemPtr problem = Problem::create("PO", 2); @@ -44,17 +44,17 @@ TEST(MapYaml, save_2D) std::string map_path = wolf_root + "/test/yaml"; // Check Problem functions - std::string filename = map_path + "/map_2D_problem.yaml"; + std::string filename = map_path + "/map_2d_problem.yaml"; std::cout << "Saving map to file: " << filename << std::endl; - problem->saveMap(filename, "2D map saved from Problem::saveMap()"); + problem->saveMap(filename, "2d map saved from Problem::saveMap()"); // Check Map functions - filename = map_path + "/map_2D_map.yaml"; + filename = map_path + "/map_2d_map.yaml"; std::cout << "Saving map to file: " << filename << std::endl; - problem->getMap()->save(filename, "2D map saved from Map::save()"); + problem->getMap()->save(filename, "2d map saved from Map::save()"); } -TEST(MapYaml, load_2D) +TEST(MapYaml, load_2d) { ProblemPtr problem = Problem::create("PO", 2); @@ -62,7 +62,7 @@ TEST(MapYaml, load_2D) std::string map_path = wolf_root + "/test/yaml"; // Check Problem functions - std::string filename = map_path + "/map_2D_problem.yaml"; + std::string filename = map_path + "/map_2d_problem.yaml"; std::cout << "Loading map to file: " << filename << std::endl; problem->loadMap(filename); @@ -106,7 +106,7 @@ TEST(MapYaml, load_2D) ASSERT_TRUE(problem->getMap()->getLandmarkList().empty()); // Check Map functions - filename = map_path + "/map_2D_map.yaml"; + filename = map_path + "/map_2d_map.yaml"; std::cout << "Loading map to file: " << filename << std::endl; problem->getMap()->load(filename); @@ -141,7 +141,7 @@ TEST(MapYaml, load_2D) } } } -TEST(MapYaml, save_3D) +TEST(MapYaml, save_3d) { ProblemPtr problem = Problem::create("PO", 3); @@ -167,17 +167,17 @@ TEST(MapYaml, save_3D) std::string map_path = wolf_root + "/test/yaml"; // Check Problem functions - std::string filename = map_path + "/map_3D_problem.yaml"; + std::string filename = map_path + "/map_3d_problem.yaml"; std::cout << "Saving map to file: " << filename << std::endl; - problem->saveMap(filename, "3D map saved from Problem::saveMap()"); + problem->saveMap(filename, "3d map saved from Problem::saveMap()"); // Check Map functions - filename = map_path + "/map_3D_map.yaml"; + filename = map_path + "/map_3d_map.yaml"; std::cout << "Saving map to file: " << filename << std::endl; - problem->getMap()->save(filename, "3D map saved from Map::save()"); + problem->getMap()->save(filename, "3d map saved from Map::save()"); } -TEST(MapYaml, load_3D) +TEST(MapYaml, load_3d) { ProblemPtr problem = Problem::create("PO", 3); @@ -185,7 +185,7 @@ TEST(MapYaml, load_3D) std::string map_path = wolf_root + "/test/yaml"; // Check Problem functions - std::string filename = map_path + "/map_3D_problem.yaml"; + std::string filename = map_path + "/map_3d_problem.yaml"; std::cout << "Loading map to file: " << filename << std::endl; problem->loadMap(filename); @@ -231,7 +231,7 @@ TEST(MapYaml, load_3D) ASSERT_TRUE(problem->getMap()->getLandmarkList().empty()); // Check Map functions - filename = map_path + "/map_3D_map.yaml"; + filename = map_path + "/map_3d_map.yaml"; std::cout << "Loading map to file: " << filename << std::endl; problem->getMap()->load(filename); @@ -274,13 +274,13 @@ TEST(MapYaml, remove_map_files) std::string wolf_root = _WOLF_ROOT_DIR; std::string map_path = wolf_root + "/test/yaml"; - std::string filename = map_path + "/map_2D_problem.yaml"; + std::string filename = map_path + "/map_2d_problem.yaml"; ASSERT_TRUE(std::remove(filename.c_str()) == 0); - filename = map_path + "/map_2D_map.yaml"; + filename = map_path + "/map_2d_map.yaml"; ASSERT_TRUE(std::remove(filename.c_str()) == 0); - filename = map_path + "/map_3D_problem.yaml"; + filename = map_path + "/map_3d_problem.yaml"; ASSERT_TRUE(std::remove(filename.c_str()) == 0); - filename = map_path + "/map_3D_map.yaml"; + filename = map_path + "/map_3d_map.yaml"; ASSERT_TRUE(std::remove(filename.c_str()) == 0); } diff --git a/test/gtest_odom_2D.cpp b/test/gtest_odom_2d.cpp similarity index 88% rename from test/gtest_odom_2D.cpp rename to test/gtest_odom_2d.cpp index 8679baccf74f02221917063f91cb685af48f3566..1176783c855954afba8bf5e0a7566fb37ecbc8b5 100644 --- a/test/gtest_odom_2D.cpp +++ b/test/gtest_odom_2d.cpp @@ -1,5 +1,5 @@ /** - * \file test_odom_2D.cpp + * \file test_odom_2d.cpp * * Created on: Mar 15, 2016 * \author: jsola @@ -8,10 +8,10 @@ #include "core/utils/utils_gtest.h" // Classes under test -#include "core/sensor/sensor_odom_2D.h" -#include "core/processor/processor_odom_2D.h" -#include "core/factor/factor_odom_2D.h" -#include "core/capture/capture_odom_2D.h" +#include "core/sensor/sensor_odom_2d.h" +#include "core/processor/processor_odom_2d.h" +#include "core/factor/factor_odom_2d.h" +#include "core/capture/capture_odom_2d.h" // Wolf includes #include "core/state_block/state_block.h" @@ -100,7 +100,7 @@ void show(const ProblemPtr& problem) } } -TEST(Odom2D, FactorFix_and_FactorOdom2D) +TEST(Odom2d, FactorFix_and_FactorOdom2d) { using std::cout; using std::endl; @@ -113,7 +113,7 @@ TEST(Odom2D, FactorFix_and_FactorOdom2D) // | // GND // `absolute` is made with FactorFix - // `motion` is made with FactorOdom2D + // `motion` is made with FactorOdom2d std::cout << std::setprecision(4); @@ -133,16 +133,16 @@ TEST(Odom2D, FactorFix_and_FactorOdom2D) // KF1 and motion from KF0 t += dt; FrameBasePtr F1 = Pr->emplaceFrame(KEY, Vector3d::Zero(), t); - auto C1 = CaptureBase::emplace<CaptureBase>(F1, "CaptureOdom2D", t); - auto f1 = FeatureBase::emplace<FeatureBase>(C1, "FeatureOdom2D", delta, delta_cov); - auto c1 = FactorBase::emplace<FactorOdom2D>(f1, f1, F0, nullptr, false); + auto C1 = CaptureBase::emplace<CaptureBase>(F1, "CaptureOdom2d", t); + auto f1 = FeatureBase::emplace<FeatureBase>(C1, "FeatureOdom2d", delta, delta_cov); + auto c1 = FactorBase::emplace<FactorOdom2d>(f1, f1, F0, nullptr, false); // KF2 and motion from KF1 t += dt; FrameBasePtr F2 = Pr->emplaceFrame(KEY, Vector3d::Zero(), t); - auto C2 = CaptureBase::emplace<CaptureBase>(F2, "CaptureOdom2D", t); - auto f2 = FeatureBase::emplace<FeatureBase>(C2, "FeatureOdom2D", delta, delta_cov); - auto c2 = FactorBase::emplace<FactorOdom2D>(f2, f2, F1, nullptr, false); + auto C2 = CaptureBase::emplace<CaptureBase>(F2, "CaptureOdom2d", t); + auto f2 = FeatureBase::emplace<FeatureBase>(C2, "FeatureOdom2d", delta, delta_cov); + auto c2 = FactorBase::emplace<FactorOdom2d>(f2, f2, F1, nullptr, false); ASSERT_TRUE(Pr->check(0)); @@ -170,15 +170,15 @@ TEST(Odom2D, FactorFix_and_FactorOdom2D) ASSERT_TRUE(Pr->getFrameCovariance(F1, P1_solver)); ASSERT_TRUE(Pr->getFrameCovariance(F2, P2_solver)); - ASSERT_POSE2D_APPROX(F0->getState(), Vector3d(0,0,0), 1e-6); + ASSERT_POSE2d_APPROX(F0->getState(), Vector3d(0,0,0), 1e-6); ASSERT_MATRIX_APPROX(P0_solver, P0, 1e-6); - ASSERT_POSE2D_APPROX(F1->getState(), Vector3d(2,0,0), 1e-6); + ASSERT_POSE2d_APPROX(F1->getState(), Vector3d(2,0,0), 1e-6); ASSERT_MATRIX_APPROX(P1_solver, P1, 1e-6); - ASSERT_POSE2D_APPROX(F2->getState(), Vector3d(4,0,0), 1e-6); + ASSERT_POSE2d_APPROX(F2->getState(), Vector3d(4,0,0), 1e-6); ASSERT_MATRIX_APPROX(P2_solver, P2, 1e-6); } -TEST(Odom2D, VoteForKfAndSolve) +TEST(Odom2d, VoteForKfAndSolve) { std::string wolf_root = _WOLF_ROOT_DIR; @@ -196,8 +196,8 @@ TEST(Odom2D, VoteForKfAndSolve) // Create Wolf tree nodes ProblemPtr problem = Problem::create("PO", 2); - SensorBasePtr sensor_odom2d = problem->installSensor("SensorOdom2D", "odom", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2D.yaml"); - ProcessorParamsOdom2DPtr params(std::make_shared<ProcessorParamsOdom2D>()); + SensorBasePtr sensor_odom2d = problem->installSensor("SensorOdom2d", "odom", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + ProcessorParamsOdom2dPtr params(std::make_shared<ProcessorParamsOdom2d>()); params->voting_active = true; params->dist_traveled = 100; params->angle_turned = 6.28; @@ -205,8 +205,8 @@ TEST(Odom2D, VoteForKfAndSolve) params->cov_det = 100; params->unmeasured_perturbation_std = 0.00; Matrix3d unmeasured_cov = params->unmeasured_perturbation_std*params->unmeasured_perturbation_std*Matrix3d::Identity(); - ProcessorBasePtr prc_base = problem->installProcessor("ProcessorOdom2D", "odom", sensor_odom2d, params); - ProcessorOdom2DPtr processor_odom2d = std::static_pointer_cast<ProcessorOdom2D>(prc_base); + ProcessorBasePtr prc_base = problem->installProcessor("ProcessorOdom2d", "odom", sensor_odom2d, params); + ProcessorOdom2dPtr processor_odom2d = std::static_pointer_cast<ProcessorOdom2d>(prc_base); // NOTE: We integrate and create KFs as follows: @@ -242,7 +242,7 @@ TEST(Odom2D, VoteForKfAndSolve) t += dt; // Capture to use as container for all incoming data - CaptureMotionPtr capture = std::make_shared<CaptureOdom2D>(t, sensor_odom2d, data, data_cov, nullptr); + CaptureMotionPtr capture = std::make_shared<CaptureOdom2d>(t, sensor_odom2d, data, data_cov, nullptr); for (int n=1; n<=N; n++) { @@ -273,7 +273,7 @@ TEST(Odom2D, VoteForKfAndSolve) WOLF_DEBUG("wolf delta: ", processor_odom2d->getMotion().delta_integr_.transpose()); WOLF_DEBUG("test delta: ", integrated_delta .transpose()); - ASSERT_POSE2D_APPROX(processor_odom2d->getMotion().delta_integr_, integrated_delta, 1e-6); + ASSERT_POSE2d_APPROX(processor_odom2d->getMotion().delta_integr_, integrated_delta, 1e-6); ASSERT_MATRIX_APPROX(odom2d_delta_cov, integrated_delta_cov, 1e-6); // Integrate pose @@ -282,7 +282,7 @@ TEST(Odom2D, VoteForKfAndSolve) integrated_pose = plus(integrated_pose, data); integrated_cov = Jx * integrated_cov * Jx.transpose() + Ju * data_cov * Ju.transpose() + unmeasured_cov; - ASSERT_POSE2D_APPROX(processor_odom2d->getCurrentState(), integrated_pose, 1e-6); + ASSERT_POSE2d_APPROX(processor_odom2d->getCurrentState(), integrated_pose, 1e-6); integrated_pose_vector.push_back(integrated_pose); integrated_cov_vector.push_back(integrated_cov); @@ -302,14 +302,14 @@ TEST(Odom2D, VoteForKfAndSolve) { if (!F->isKey()) break; - ASSERT_POSE2D_APPROX(F->getState(), integrated_pose_vector[n] , 1e-6); + ASSERT_POSE2d_APPROX(F->getState(), integrated_pose_vector[n] , 1e-6); ASSERT_TRUE (F->getCovariance(computed_cov)); ASSERT_MATRIX_APPROX(computed_cov , integrated_cov_vector[n] , 1e-6); n += 3; } } -TEST(Odom2D, KF_callback) +TEST(Odom2d, KF_callback) { using std::cout; using std::endl; @@ -336,16 +336,16 @@ TEST(Odom2D, KF_callback) // Create Wolf tree nodes ProblemPtr problem = Problem::create("PO", 2); - SensorBasePtr sensor_odom2d = problem->installSensor("SensorOdom2D", "odom", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2D.yaml"); - ProcessorParamsOdom2DPtr params(std::make_shared<ProcessorParamsOdom2D>()); + SensorBasePtr sensor_odom2d = problem->installSensor("SensorOdom2d", "odom", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + ProcessorParamsOdom2dPtr params(std::make_shared<ProcessorParamsOdom2d>()); params->dist_traveled = 100; params->angle_turned = 6.28; params->max_time_span = 100; params->cov_det = 100; params->unmeasured_perturbation_std = 0.000001; Matrix3d unmeasured_cov = params->unmeasured_perturbation_std*params->unmeasured_perturbation_std*Matrix3d::Identity(); - ProcessorBasePtr prc_base = problem->installProcessor("ProcessorOdom2D", "odom", sensor_odom2d, params); - ProcessorOdom2DPtr processor_odom2d = std::static_pointer_cast<ProcessorOdom2D>(prc_base); + ProcessorBasePtr prc_base = problem->installProcessor("ProcessorOdom2d", "odom", sensor_odom2d, params); + ProcessorOdom2dPtr processor_odom2d = std::static_pointer_cast<ProcessorOdom2d>(prc_base); processor_odom2d->setTimeTolerance(dt/2); // Ceres wrapper @@ -371,7 +371,7 @@ TEST(Odom2D, KF_callback) // std::cout << "\nIntegrating data..." << std::endl; // Capture to use as container for all incoming data - auto capture = std::make_shared<CaptureOdom2D>(t, sensor_odom2d, data, data_cov, nullptr); + auto capture = std::make_shared<CaptureOdom2d>(t, sensor_odom2d, data, data_cov, nullptr); std::cout << "t: " << t << std::endl; for (int n=1; n<=N; n++) @@ -424,7 +424,7 @@ TEST(Odom2D, KF_callback) processor_odom2d->keyFrameCallback(keyframe_2, dt/2); ASSERT_TRUE(problem->check(0)); t += dt; - capture = std::make_shared<CaptureOdom2D>(t, sensor_odom2d, data, data_cov, nullptr); + capture = std::make_shared<CaptureOdom2d>(t, sensor_odom2d, data, data_cov, nullptr); capture->process(); ASSERT_TRUE(problem->check(0)); @@ -436,7 +436,7 @@ TEST(Odom2D, KF_callback) // std::cout << report << std::endl; ceres_manager.computeCovariances(SolverManager::CovarianceBlocksToBeComputed::ALL_MARGINALS); - ASSERT_POSE2D_APPROX(problem->getLastKeyFrame()->getState() , integrated_pose_vector[n_split], 1e-6); + ASSERT_POSE2d_APPROX(problem->getLastKeyFrame()->getState() , integrated_pose_vector[n_split], 1e-6); MatrixXd computed_cov; ASSERT_TRUE(problem->getLastKeyFrameCovariance(computed_cov)); ASSERT_MATRIX_APPROX(computed_cov, integrated_cov_vector [n_split], 1e-6); @@ -456,7 +456,7 @@ TEST(Odom2D, KF_callback) processor_odom2d->keyFrameCallback(keyframe_1, dt/2); ASSERT_TRUE(problem->check(0)); t += dt; - capture = std::make_shared<CaptureOdom2D>(t, sensor_odom2d, data, data_cov, nullptr); + capture = std::make_shared<CaptureOdom2d>(t, sensor_odom2d, data, data_cov, nullptr); capture->process(); ASSERT_TRUE(problem->check(0)); @@ -477,13 +477,13 @@ TEST(Odom2D, KF_callback) // check the split KF MatrixXd KF1_cov; ASSERT_TRUE(problem->getFrameCovariance(keyframe_1, KF1_cov)); - ASSERT_POSE2D_APPROX(keyframe_1->getState(), integrated_pose_vector[m_split], 1e-6); + ASSERT_POSE2d_APPROX(keyframe_1->getState(), integrated_pose_vector[m_split], 1e-6); ASSERT_MATRIX_APPROX(KF1_cov, integrated_cov_vector [m_split], 1e-6); // check other KF in the future of the split KF MatrixXd KF2_cov; ASSERT_TRUE(problem->getFrameCovariance(keyframe_2, KF2_cov)); - ASSERT_POSE2D_APPROX(problem->getLastKeyFrame()->getState(), integrated_pose_vector[n_split], 1e-6); + ASSERT_POSE2d_APPROX(problem->getLastKeyFrame()->getState(), integrated_pose_vector[n_split], 1e-6); ASSERT_MATRIX_APPROX(KF2_cov, integrated_cov_vector [n_split], 1e-6); // Check full trajectory @@ -493,14 +493,14 @@ TEST(Odom2D, KF_callback) t += dt; WOLF_DEBUG(" estimated(", t, ") = ", problem->getState(t).transpose()); WOLF_DEBUG("ground truth(", t, ") = ", integrated_pose_vector[n].transpose()); - ASSERT_POSE2D_APPROX(problem->getState(t), integrated_pose_vector[n], 1e-6); + ASSERT_POSE2d_APPROX(problem->getState(t), integrated_pose_vector[n], 1e-6); } } int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); -// testing::GTEST_FLAG(filter) = "Odom2D.VoteForKfAndSolve"; +// testing::GTEST_FLAG(filter) = "Odom2d.VoteForKfAndSolve"; return RUN_ALL_TESTS(); } diff --git a/test/gtest_pack_KF_buffer.cpp b/test/gtest_pack_KF_buffer.cpp index 48302e8dd7543a6d20259ddce519800b5d4e9c3d..3862e263cb747b443e77ef113e9d85efa529f3a5 100644 --- a/test/gtest_pack_KF_buffer.cpp +++ b/test/gtest_pack_KF_buffer.cpp @@ -7,8 +7,8 @@ //Wolf #include "core/utils/utils_gtest.h" -#include "core/processor/processor_odom_2D.h" -#include "core/sensor/sensor_odom_2D.h" +#include "core/processor/processor_odom_2d.h" +#include "core/sensor/sensor_odom_2d.h" #include "dummy/processor_tracker_feature_dummy.h" #include "core/capture/capture_void.h" diff --git a/test/gtest_param_prior.cpp b/test/gtest_param_prior.cpp index 2c5bcbf1852a48baff40d2cf2f9464aa9157f906..6faf7e424fe24d64bdad85c64c05e0df490da426 100644 --- a/test/gtest_param_prior.cpp +++ b/test/gtest_param_prior.cpp @@ -10,7 +10,7 @@ #include "core/problem/problem.h" #include "core/ceres_wrapper/ceres_manager.h" -#include "core/sensor/sensor_odom_3D.h" +#include "core/sensor/sensor_odom_3d.h" #include <iostream> @@ -22,7 +22,7 @@ Eigen::Vector7d initial_extrinsics((Eigen::Vector7d() << 1, 2, 3, 1, 0, 0, 0).fi Eigen::Vector7d prior_extrinsics((Eigen::Vector7d() << 10, 20, 30, 0, 0, 0, 1).finished()); Eigen::Vector7d prior2_extrinsics((Eigen::Vector7d() << 100, 200, 300, 0, 0, 0, 1).finished()); -SensorOdom3DPtr odom_sensor_ptr_ = std::static_pointer_cast<SensorOdom3D>(problem_ptr->installSensor("SensorOdom3D", "odometer", initial_extrinsics, std::make_shared<ParamsSensorOdom3D>())); +SensorOdom3dPtr odom_sensor_ptr_ = std::static_pointer_cast<SensorOdom3d>(problem_ptr->installSensor("SensorOdom3d", "odometer", initial_extrinsics, std::make_shared<ParamsSensorOdom3d>())); TEST(ParameterPrior, initial_extrinsics) { diff --git a/test/gtest_parser_yaml.cpp b/test/gtest_parser_yaml.cpp index d464c1120e6830c9912d0f16472c53f74b4f9bac..c8702619bc5150eb688bcb7dccfa11f71ab909e5 100644 --- a/test/gtest_parser_yaml.cpp +++ b/test/gtest_parser_yaml.cpp @@ -35,7 +35,7 @@ TEST(ParserYAML, FollowFile) EXPECT_EQ(params[processor_prefix + "my_proc_test/max_buff_length"], "100"); EXPECT_EQ(params[processor_prefix + "my_proc_test/voting_active"], "false"); } -TEST(ParserYAML, FollowOdom3D) +TEST(ParserYAML, FollowOdom3d) { auto parser = ParserYAML("test/yaml/params1.yaml", wolf_root); auto params = parser.getParams(); diff --git a/test/gtest_problem.cpp b/test/gtest_problem.cpp index 1b74256d81808822dd1de31eed99e83098511c4d..e0ba9a42a17936b62ec329c1fb022052d5ae6c30 100644 --- a/test/gtest_problem.cpp +++ b/test/gtest_problem.cpp @@ -10,12 +10,17 @@ #include "core/problem/problem.h" #include "core/sensor/sensor_base.h" -#include "core/sensor/sensor_odom_2D.h" -#include "core/sensor/sensor_odom_3D.h" -#include "core/processor/processor_odom_3D.h" +#include "core/sensor/sensor_odom_2d.h" +#include "core/sensor/sensor_odom_3d.h" +#include "core/processor/processor_odom_3d.h" #include "dummy/processor_tracker_feature_dummy.h" #include "core/solver/solver_manager.h" +#include "core/sensor/sensor_diff_drive.h" +#include "core/processor/processor_diff_drive.h" +#include "core/capture/capture_diff_drive.h" +#include "core/state_block/state_quaternion.h" + #include <iostream> using namespace wolf; @@ -92,10 +97,10 @@ TEST(Problem, Processor) ASSERT_FALSE(P->getProcessorMotion()); // add a motion sensor and processor - auto Sm = SensorBase::emplace<SensorOdom3D>(P->getHardware(), (Eigen::Vector7d()<<0,0,0, 0,0,0,1).finished(), ParamsSensorOdom3D()); + auto Sm = SensorBase::emplace<SensorOdom3d>(P->getHardware(), (Eigen::Vector7d()<<0,0,0, 0,0,0,1).finished(), ParamsSensorOdom3d()); // add motion processor - auto Pm = ProcessorBase::emplace<ProcessorOdom3D>(Sm, std::make_shared<ProcessorParamsOdom3D>()); + auto Pm = ProcessorBase::emplace<ProcessorOdom3d>(Sm, std::make_shared<ProcessorParamsOdom3d>()); // check motion processor IS NOT by emplace ASSERT_EQ(P->getProcessorMotion(), Pm); @@ -107,7 +112,7 @@ TEST(Problem, Installers) ProblemPtr P = Problem::create("PO", 3); Eigen::Vector7d xs; - SensorBasePtr S = P->installSensor ("SensorOdom3D", "odometer", xs, wolf_root + "/test/yaml/sensor_odom_3D.yaml"); + SensorBasePtr S = P->installSensor ("SensorOdom3d", "odometer", xs, wolf_root + "/test/yaml/sensor_odom_3d.yaml"); // install processor tracker (dummy installation under an Odometry sensor -- it's OK for this test) auto pt = P->installProcessor("ProcessorTrackerFeatureDummy", "dummy", "odometer"); @@ -116,16 +121,16 @@ TEST(Problem, Installers) ASSERT_FALSE(P->getProcessorMotion()); // install processor motion - ProcessorBasePtr pm = P->installProcessor("ProcessorOdom3D", "odom integrator", "odometer", wolf_root + "/test/yaml/processor_odom_3D.yaml"); + ProcessorBasePtr pm = P->installProcessor("ProcessorOdom3d", "odom integrator", "odometer", wolf_root + "/test/yaml/processor_odom_3d.yaml"); // check motion processor is set ASSERT_TRUE(P->getProcessorMotion()); // check motion processor is correct - ASSERT_EQ(P->getProcessorMotion(), pm); + ASSERT_EQ(std::dynamic_pointer_cast<ProcessorMotion>(P->getProcessorMotion()), pm); } -TEST(Problem, SetOrigin_PO_2D) +TEST(Problem, SetOrigin_PO_2d) { ProblemPtr P = Problem::create("PO", 2); TimeStamp t0(0); @@ -162,7 +167,7 @@ TEST(Problem, SetOrigin_PO_2D) // P->print(4,1,1,1); } -TEST(Problem, SetOrigin_PO_3D) +TEST(Problem, SetOrigin_PO_3d) { ProblemPtr P = Problem::create("PO", 3); TimeStamp t0(0); @@ -207,13 +212,13 @@ TEST(Problem, emplaceFrame_factory) FrameBasePtr f1 = P->emplaceFrame("PO", 3, KEY, VectorXd(7), TimeStamp(1.0)); FrameBasePtr f2 = P->emplaceFrame("POV", 3, KEY, VectorXd(10), TimeStamp(2.0)); - // std::cout << "f0: type PO 2D? " << f0->getType() << std::endl; - // std::cout << "f1: type PO 3D? " << f1->getType() << std::endl; - // std::cout << "f2: type POV 3D? " << f2->getType() << std::endl; + // std::cout << "f0: type PO 2d? " << f0->getType() << std::endl; + // std::cout << "f1: type PO 3d? " << f1->getType() << std::endl; + // std::cout << "f2: type POV 3d? " << f2->getType() << std::endl; - ASSERT_EQ(f0->getType().compare("PO 2D"), 0); - ASSERT_EQ(f1->getType().compare("PO 3D"), 0); - ASSERT_EQ(f2->getType().compare("POV 3D"), 0); + ASSERT_EQ(f0->getType().compare("PO 2d"), 0); + ASSERT_EQ(f1->getType().compare("PO 3d"), 0); + ASSERT_EQ(f2->getType().compare("POV 3d"), 0); // check that all frames are effectively in the trajectory ASSERT_EQ(P->getTrajectory()->getFrameList().size(), (SizeStd) 3); @@ -233,15 +238,15 @@ TEST(Problem, StateBlocks) Eigen::Vector3d xs2d; // 2 state blocks, fixed - SensorBasePtr Sm = P->installSensor ("SensorOdom3D", "odometer",xs3d, wolf_root + "/test/yaml/sensor_odom_3D.yaml"); + SensorBasePtr Sm = P->installSensor ("SensorOdom3d", "odometer",xs3d, wolf_root + "/test/yaml/sensor_odom_3d.yaml"); ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) 2); // // 2 state blocks, fixed -// SensorBasePtr St = P->installSensor ("SensorOdom2D", "other odometer", xs2d, ""); +// SensorBasePtr St = P->installSensor ("SensorOdom2d", "other odometer", xs2d, ""); // ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) (2 + 2)); auto pt = P->installProcessor("ProcessorTrackerFeatureDummy", "dummy", "odometer"); - auto pm = P->installProcessor("ProcessorOdom3D", "odom integrator", "odometer", wolf_root + "/test/yaml/processor_odom_3D.yaml"); + auto pm = P->installProcessor("ProcessorOdom3d", "odom integrator", "odometer", wolf_root + "/test/yaml/processor_odom_3d.yaml"); // 2 state blocks, estimated auto KF = P->emplaceFrame("PO", 3, KEY, xs3d, 0); @@ -287,8 +292,9 @@ TEST(Problem, Covariances) Eigen::Vector7d xs3d; Eigen::Vector3d xs2d; - SensorBasePtr Sm = P->installSensor ("SensorOdom3D", "odometer", xs3d, wolf_root + "/test/yaml/sensor_odom_3D.yaml"); - SensorBasePtr St = P->installSensor ("SensorOdom2D", "other odometer", xs2d, wolf_root + "/test/yaml/sensor_odom_2D.yaml"); + SensorBasePtr Sm = P->installSensor ("SensorOdom3d", "odometer", xs3d, wolf_root + "/test/yaml/sensor_odom_3d.yaml"); + // SensorBasePtr St = P->installSensor ("SensorOdom2d", "other odometer", xs2d, wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + SensorBasePtr St = P->installSensor ("SensorOdom3d", "other odometer", xs3d, wolf_root + "/test/yaml/sensor_odom_3d.yaml"); ProcessorParamsTrackerFeaturePtr params = std::make_shared<ProcessorParamsTrackerFeature>(); params->time_tolerance = 0.1; @@ -296,7 +302,7 @@ TEST(Problem, Covariances) params->min_features_for_keyframe = 10; auto pt = P->installProcessor("ProcessorTrackerFeatureDummy", "dummy", Sm, params); - auto pm = P->installProcessor("ProcessorOdom3D", "odom integrator", "other odometer", wolf_root + "/test/yaml/processor_odom_3D.yaml"); + auto pm = P->installProcessor("ProcessorOdom3d", "odom integrator", "other odometer", wolf_root + "/test/yaml/processor_odom_3d.yaml"); // 4 state blocks, estimated St->unfixExtrinsics(); @@ -317,6 +323,96 @@ TEST(Problem, Covariances) } +TEST(Problem, perturb) +{ + auto problem = Problem::create("PO", 2); + + // make a sensor first + auto intr = std::make_shared<ParamsSensorDiffDrive>(); + intr->radius_left = 1.0; + intr->radius_right = 1.0; + intr->wheel_separation = 1.0; + intr->ticks_per_wheel_revolution = 100; + Vector3d extr(0,0,0); + auto sensor = std::static_pointer_cast<SensorDiffDrive>(problem->installSensor("SensorDiffDrive", "sensor diff drive", extr, intr)); + sensor->setStateBlockDynamic("I", true); + + Vector3d pose; pose << 0,0,0; + + int i = 0; + for (TimeStamp t = 0.0; t < 2.0; t += 1.0) + { + auto F = problem->emplaceFrame(KEY, pose, t); + if (i==0) F->fix(); + + for (int j = 0; j< 2 ; j++) + { + auto sb = std::make_shared<StateBlock>(Vector3d(1,1,1)); + auto cap = CaptureBase::emplace<CaptureBase>(F, "CaptureBase", t, sensor, nullptr, nullptr, sb); + } + i++; + } + + for (int l = 0; l < 2; l++) + { + auto sb1 = std::make_shared<StateBlock>(Vector2d(1,2)); + auto sb2 = std::make_shared<StateBlock>(Vector1d(3)); + auto L = LandmarkBase::emplace<LandmarkBase>(problem->getMap(), "LandmarkBase", sb1, sb2); + if (l==0) L->fix(); + } + + /// PRINT, PERTURB, AND PRINT AGAIN + problem->print(2,0,1,1); + + problem->perturb(0.2); + + problem->print(2,0,1,1); + + + //// CHECK ALL STATE BLOCKS /// + + double prec = 1e-2; + + for (auto S : problem->getHardware()->getSensorList()) + { + ASSERT_TRUE (S->getP()->getState().isApprox(Vector2d(0,0), prec) ); + ASSERT_TRUE (S->getO()->getState().isApprox(Vector1d(0), prec) ); + ASSERT_FALSE(S->getIntrinsic()->getState().isApprox(Vector3d(1,1,1), prec) ); + } + + for (auto F : problem->getTrajectory()->getFrameList()) + { + if (F->isFixed()) // fixed + { + ASSERT_TRUE (F->getP()->getState().isApprox(Vector2d(0,0), prec) ); + ASSERT_TRUE (F->getO()->getState().isApprox(Vector1d(0), prec) ); + } + else + { + ASSERT_FALSE(F->getP()->getState().isApprox(Vector2d(0,0), prec) ); + ASSERT_FALSE(F->getO()->getState().isApprox(Vector1d(0), prec) ); + } + for (auto C : F->getCaptureList()) + { + // all are estimated + ASSERT_FALSE(C->getSensorIntrinsic()->getState().isApprox(Vector3d(1,1,1), prec) ); + } + } + for (auto L : problem->getMap()->getLandmarkList()) + { + if ( L->isFixed() ) // fixed + { + ASSERT_TRUE (L->getP()->getState().isApprox(Vector2d(1,2), prec) ); + ASSERT_TRUE (L->getO()->getState().isApprox(Vector1d(3), prec) ); + } + else + { + ASSERT_FALSE(L->getP()->getState().isApprox(Vector2d(1,2), prec) ); + ASSERT_FALSE(L->getO()->getState().isApprox(Vector1d(3), prec) ); + } + } +} + int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); diff --git a/test/gtest_processor_base.cpp b/test/gtest_processor_base.cpp index 2aef08f59cfcb594a34dce910a9f7f54eb389671..1933da8599234e61c534e9f05008710ac4396661 100644 --- a/test/gtest_processor_base.cpp +++ b/test/gtest_processor_base.cpp @@ -8,8 +8,8 @@ //Wolf #include "core/utils/utils_gtest.h" -#include "core/processor/processor_odom_2D.h" -#include "core/sensor/sensor_odom_2D.h" +#include "core/processor/processor_odom_2d.h" +#include "core/sensor/sensor_odom_2d.h" #include "dummy/processor_tracker_feature_dummy.h" #include "core/capture/capture_void.h" @@ -31,6 +31,41 @@ WOLF_REGISTER_PROCESSOR("TRACKER FEATURE DUMMY", ProcessorTrackerFeatureDummy) } // namespace wolf +TEST(ProcessorBase, IsMotion) +{ + using namespace wolf; + using std::shared_ptr; + using std::make_shared; + using std::static_pointer_cast; + using Eigen::Vector2d; + + std::string wolf_root = _WOLF_ROOT_DIR; + + double dt = 0.01; + + // Wolf problem + ProblemPtr problem = Problem::create("PO", 2); + + // Install tracker (sensor and processor) + auto sens_trk = SensorBase::emplace<SensorBase>(problem->getHardware(), + "SensorDummy", + nullptr, + nullptr, + nullptr, + 2); + auto proc_trk = problem->installProcessor("ProcessorTrackerFeatureDummy", "dummy", sens_trk); + + // Install odometer (sensor and processor) + SensorBasePtr sens_odo = problem->installSensor("SensorOdom2d", "odometer", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + ProcessorParamsOdom2dPtr proc_odo_params = make_shared<ProcessorParamsOdom2d>(); + proc_odo_params->time_tolerance = dt/2; + ProcessorBasePtr proc_odo = problem->installProcessor("ProcessorOdom2d", "odom processor", sens_odo, proc_odo_params); + + ASSERT_FALSE(proc_trk->isMotion()); + ASSERT_TRUE (proc_odo->isMotion()); +} + + TEST(ProcessorBase, KeyFrameCallback) { @@ -49,17 +84,17 @@ TEST(ProcessorBase, KeyFrameCallback) // Install tracker (sensor and processor) auto sens_trk = SensorBase::emplace<SensorBase>(problem->getHardware(), - "SensorOdom2D", + "SensorOdom2d", std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(1)), std::make_shared<StateBlock>(Eigen::VectorXd::Zero(2)), 2); auto proc_trk = problem->installProcessor("ProcessorTrackerFeatureDummy", "dummy", sens_trk); // Install odometer (sensor and processor) - SensorBasePtr sens_odo = problem->installSensor("SensorOdom2D", "odometer", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2D.yaml"); - ProcessorParamsOdom2DPtr proc_odo_params = make_shared<ProcessorParamsOdom2D>(); + SensorBasePtr sens_odo = problem->installSensor("SensorOdom2d", "odometer", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + ProcessorParamsOdom2dPtr proc_odo_params = make_shared<ProcessorParamsOdom2d>(); proc_odo_params->time_tolerance = dt/2; - ProcessorBasePtr proc_odo = problem->installProcessor("ProcessorOdom2D", "odom processor", sens_odo, proc_odo_params); + ProcessorBasePtr proc_odo = problem->installProcessor("ProcessorOdom2d", "odom processor", sens_odo, proc_odo_params); std::cout << "sensor & processor created and added to wolf problem" << std::endl; @@ -71,7 +106,7 @@ TEST(ProcessorBase, KeyFrameCallback) Matrix3d P = Matrix3d::Identity() * 0.1; problem->setPrior(x, P, t, dt/2); // KF1 - CaptureOdom2DPtr capt_odo = make_shared<CaptureOdom2D>(t, sens_odo, Vector2d(0.5,0)); + CaptureOdom2dPtr capt_odo = make_shared<CaptureOdom2d>(t, sens_odo, Vector2d(0.5,0)); // Track CaptureVoidPtr capt_trk(make_shared<CaptureVoid>(t, sens_trk)); @@ -93,7 +128,7 @@ TEST(ProcessorBase, KeyFrameCallback) // problem->print(4,1,1,0); // Only odom creating KFs - ASSERT_TRUE( problem->getLastKeyFrame()->getType().compare("PO 2D")==0 ); + ASSERT_TRUE( problem->getLastKeyFrame()->getType().compare("PO 2d")==0 ); } } diff --git a/test/gtest_processor_loopclosure.cpp b/test/gtest_processor_loopclosure.cpp index 01ead38abbb2e208964ca0957625a8dfd9a22eac..d00fb93407ab75bb150a576bc434640f1c75fe12 100644 --- a/test/gtest_processor_loopclosure.cpp +++ b/test/gtest_processor_loopclosure.cpp @@ -24,7 +24,7 @@ private: public: ProcessorLoopClosureDummy(ProcessorParamsLoopClosurePtr _params_loop_closure, bool& factor_created): - ProcessorLoopClosure("LOOP CLOSURE DUMMY", _params_loop_closure), + ProcessorLoopClosure("LOOP CLOSURE DUMMY", 0, _params_loop_closure), factor_created(&factor_created){}; std::pair<FrameBasePtr,CaptureBasePtr> public_selectPairKC(){ return selectPairKC();}; diff --git a/test/gtest_processor_motion.cpp b/test/gtest_processor_motion.cpp index 3689babf376af854b35f9c836f9b4e804c2504e9..076118ba3d7836dbf61cdb2ed1d38d81d46b9084 100644 --- a/test/gtest_processor_motion.cpp +++ b/test/gtest_processor_motion.cpp @@ -10,49 +10,49 @@ #include "core/common/wolf.h" #include "core/utils/logging.h" -#include "core/sensor/sensor_odom_2D.h" -#include "core/processor/processor_odom_2D.h" +#include "core/sensor/sensor_odom_2d.h" +#include "core/processor/processor_odom_2d.h" #include "core/ceres_wrapper/ceres_manager.h" using namespace Eigen; using namespace wolf; using std::static_pointer_cast; -class ProcessorOdom2DPublic : public ProcessorOdom2D +class ProcessorOdom2dPublic : public ProcessorOdom2d { public: - ProcessorOdom2DPublic(ProcessorParamsOdom2DPtr params) : ProcessorOdom2D(params) + ProcessorOdom2dPublic(ProcessorParamsOdom2dPtr params) : ProcessorOdom2d(params) { // } - virtual ~ProcessorOdom2DPublic(){} + virtual ~ProcessorOdom2dPublic(){} void splitBuffer(const wolf::CaptureMotionPtr& capture_source, TimeStamp ts_split, const FrameBasePtr& keyframe_target, const wolf::CaptureMotionPtr& capture_target) { - ProcessorOdom2D::splitBuffer(capture_source, + ProcessorOdom2d::splitBuffer(capture_source, ts_split, keyframe_target, capture_target); } }; -WOLF_PTR_TYPEDEFS(ProcessorOdom2DPublic); +WOLF_PTR_TYPEDEFS(ProcessorOdom2dPublic); class ProcessorMotion_test : public testing::Test{ public: double dt; ProblemPtr problem; - SensorOdom2DPtr sensor; - ProcessorOdom2DPublicPtr processor; + SensorOdom2dPtr sensor; + ProcessorOdom2dPublicPtr processor; CaptureMotionPtr capture; Vector2d data; Matrix2d data_cov; // ProcessorMotion_test() : -// ProcessorOdom2D(std::make_shared<ProcessorParamsOdom2D>()), +// ProcessorOdom2d(std::make_shared<ProcessorParamsOdom2d>()), // dt(0) // { } @@ -62,16 +62,16 @@ class ProcessorMotion_test : public testing::Test{ dt = 1.0; problem = Problem::create("PO", 2); - sensor = static_pointer_cast<SensorOdom2D>(problem->installSensor("SensorOdom2D", "odom", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2D.yaml")); - ProcessorParamsOdom2DPtr params(std::make_shared<ProcessorParamsOdom2D>()); + sensor = static_pointer_cast<SensorOdom2d>(problem->installSensor("SensorOdom2d", "odom", Vector3d(0,0,0), wolf_root + "/test/yaml/sensor_odom_2d.yaml")); + ProcessorParamsOdom2dPtr params(std::make_shared<ProcessorParamsOdom2d>()); params->time_tolerance = 0.25; params->dist_traveled = 100; params->angle_turned = 6.28; params->max_time_span = 2.5*dt; // force KF at every third process() params->cov_det = 100; params->unmeasured_perturbation_std = 0.001; - processor = ProcessorBase::emplace<ProcessorOdom2DPublic>(sensor, params); - capture = std::make_shared<CaptureMotion>("CaptureOdom2D", 0.0, sensor, data, data_cov, 3, 3, nullptr); + processor = ProcessorBase::emplace<ProcessorOdom2dPublic>(sensor, params); + capture = std::make_shared<CaptureMotion>("CaptureOdom2d", 0.0, sensor, data, data_cov, 3, 3, nullptr); Vector3d x0; x0 << 0, 0, 0; Matrix3d P0; P0.setIdentity(); @@ -142,7 +142,7 @@ TEST_F(ProcessorMotion_test, splitBuffer) FrameBasePtr F_target = problem->emplaceFrame(KEY, t_target); CaptureMotionPtr C_source = std::dynamic_pointer_cast<CaptureMotion>(processor->getLast()); CaptureMotionPtr C_target = CaptureBase::emplace<CaptureMotion>(F_target, - "ODOM 2D", + "ODOM 2d", t_target, sensor, data, diff --git a/test/gtest_processor_odom_3D.cpp b/test/gtest_processor_odom_3d.cpp similarity index 85% rename from test/gtest_processor_odom_3D.cpp rename to test/gtest_processor_odom_3d.cpp index c683105f70502a30fbadf15dbe40203388a4f44b..24e5e875ea0b5775747c7325239884a586f0a0c4 100644 --- a/test/gtest_processor_odom_3D.cpp +++ b/test/gtest_processor_odom_3d.cpp @@ -1,5 +1,5 @@ /** - * \file gtest_odom_3D.cpp + * \file gtest_odom_3d.cpp * * Created on: Nov 11, 2016 * \author: jsola @@ -10,7 +10,7 @@ #include "core/common/wolf.h" #include "core/utils/logging.h" -#include "core/processor/processor_odom_3D.h" +#include "core/processor/processor_odom_3d.h" #include <iostream> @@ -38,12 +38,12 @@ using namespace Eigen; using namespace std; using namespace wolf; -/** Gain access to members of ProcessorOdom3D +/** Gain access to members of ProcessorOdom3d */ -class ProcessorOdom3DTest : public ProcessorOdom3D +class ProcessorOdom3dTest : public ProcessorOdom3d { public: - ProcessorOdom3DTest(); + ProcessorOdom3dTest(); // getters :-D !! double& kdd() {return k_disp_to_disp_;} @@ -52,16 +52,16 @@ class ProcessorOdom3DTest : public ProcessorOdom3D double& dvar_min() {return min_disp_var_;} double& rvar_min() {return min_rot_var_;} }; -ProcessorOdom3DTest::ProcessorOdom3DTest() : ProcessorOdom3D(std::make_shared<ProcessorParamsOdom3D>()) +ProcessorOdom3dTest::ProcessorOdom3dTest() : ProcessorOdom3d(std::make_shared<ProcessorParamsOdom3d>()) { dvar_min() = 0.5; rvar_min() = 0.25; } -TEST(ProcessorOdom3D, computeCurrentDelta) +TEST(ProcessorOdom3d, computeCurrentDelta) { // One instance of the processor to test - ProcessorOdom3DTest prc; + ProcessorOdom3dTest prc; // input data Vector6d data; data.setRandom(); @@ -98,9 +98,9 @@ TEST(ProcessorOdom3D, computeCurrentDelta) } -TEST(ProcessorOdom3D, deltaPlusDelta) +TEST(ProcessorOdom3d, deltaPlusDelta) { - ProcessorOdom3DTest prc; + ProcessorOdom3dTest prc; VectorXd D(7); D.setRandom(); D.tail<4>().normalize(); VectorXd d(7); d.setRandom(); d *= 1; d.tail<4>().normalize(); @@ -112,7 +112,7 @@ TEST(ProcessorOdom3D, deltaPlusDelta) D_int_check.head<3>() = D.head<3>() + Quaterniond(D.data()+3) * d.head<3>(); D_int_check.tail<4>() = (Quaterniond(D.data()+3) * Quaterniond(d.data()+3)).coeffs(); - double dt = 1; // dummy, not used in Odom3D + double dt = 1; // dummy, not used in Odom3d VectorXd D_int(7); @@ -123,9 +123,9 @@ TEST(ProcessorOdom3D, deltaPlusDelta) // << "\ncheck: " << D_int_check.transpose(); } -TEST(ProcessorOdom3D, deltaPlusDelta_Jac) +TEST(ProcessorOdom3d, deltaPlusDelta_Jac) { - std::shared_ptr<ProcessorOdom3DTest> prc_ptr = std::make_shared<ProcessorOdom3DTest>(); + std::shared_ptr<ProcessorOdom3dTest> prc_ptr = std::make_shared<ProcessorOdom3dTest>(); VectorXd D(7); D.setRandom(); D.tail<4>().normalize(); VectorXd d(7); d.setRandom(); d *= 1; d.tail<4>().normalize(); diff --git a/test/gtest_processor_tracker_feature_dummy.cpp b/test/gtest_processor_tracker_feature_dummy.cpp index 8e1b0d8c7f6c6a16fbe4648dc035ee65c6c845b5..c8bf458bbcdc5058862accd76beedcb13b1d011f 100644 --- a/test/gtest_processor_tracker_feature_dummy.cpp +++ b/test/gtest_processor_tracker_feature_dummy.cpp @@ -82,7 +82,7 @@ class ProcessorTrackerFeatureDummyTest : public testing::Test problem = Problem::create("PO", 2); // Install camera - sensor = problem->installSensor("SensorOdom2D", "auxiliar sensor", (Eigen::Vector3d() << 0,0,0).finished(), std::make_shared<ParamsSensorBase>()); + sensor = problem->installSensor("SensorOdom2d", "auxiliar sensor", (Eigen::Vector3d() << 0,0,0).finished(), std::make_shared<ParamsSensorBase>()); // Install processor params = std::make_shared<ProcessorParamsTrackerFeatureDummy>(); diff --git a/test/gtest_processor_tracker_landmark_dummy.cpp b/test/gtest_processor_tracker_landmark_dummy.cpp index b397a512415c6643985c57ac551bceb6e5400994..a75ba7ffb962509468343f66e894a1b527610c04 100644 --- a/test/gtest_processor_tracker_landmark_dummy.cpp +++ b/test/gtest_processor_tracker_landmark_dummy.cpp @@ -100,7 +100,7 @@ class ProcessorTrackerLandmarkDummyTest : public testing::Test problem = Problem::create("PO", 2); // Install camera - sensor = problem->installSensor("SensorOdom2D", "auxiliar sensor", (Eigen::Vector3d() << 0,0,0).finished(), std::make_shared<ParamsSensorBase>()); + sensor = problem->installSensor("SensorOdom2d", "auxiliar sensor", (Eigen::Vector3d() << 0,0,0).finished(), std::make_shared<ParamsSensorBase>()); // Install processor params = std::make_shared<ProcessorParamsTrackerLandmarkDummy>(); diff --git a/test/gtest_rotation.cpp b/test/gtest_rotation.cpp index d370d52874b269d0828b34524a10947694806f52..a8a0efd094462347f379bf4507d8dfa38e591038 100644 --- a/test/gtest_rotation.cpp +++ b/test/gtest_rotation.cpp @@ -687,6 +687,30 @@ TEST(Conversions, q2R_R2q) ASSERT_MATRIX_APPROX(R, qq_R.matrix(), wolf::Constants::EPS); } +TEST(Conversions, R2q_norm_of_q) +{ + Isometry3d T = Translation3d(1,2,3) * AngleAxisd(M_PI_4, Vector3d(1,2,3).normalized()); + Eigen::Vector4d cqt = R2q(T.linear()).coeffs(); + Eigen::Matrix3d R = T.linear(); + Eigen::Vector4d cqt2 = R2q(R).coeffs(); + std::cout << "cqt: " << cqt.transpose() << std::endl; + std::cout << "cqt2: " << cqt2.transpose() << std::endl; + std::cout << "cqt.norm(): " << cqt.norm() << std::endl; + std::cout << "cqt2.norm(): " << cqt2.norm() << std::endl; + + ASSERT_NEAR(cqt.norm(), 1, 1e-8); + ASSERT_NEAR(cqt2.norm(), 1, 1e-8); + + // Theck T.linear() vs T.rotation() + T.linear().setRandom(); + + Matrix3d TL = T.linear(); + Matrix3d TR = T.rotation(); + + WOLF_INFO("TL = ", TL); + WOLF_INFO("TR = ", TR); +} + TEST(Conversions, e2q_q2e) { Vector3d e, eo; @@ -768,5 +792,6 @@ int main(int argc, char **argv) */ testing::InitGoogleTest(&argc, argv); + ::testing::GTEST_FLAG(filter) = "Conversions.R2q_norm_of_q"; return RUN_ALL_TESTS(); } diff --git a/test/gtest_solver_manager.cpp b/test/gtest_solver_manager.cpp index b9472ba1995d7e60444048942c48f5085fcf253e..640dc71faefcdfcaa937bdc928c904ef618f05d9 100644 --- a/test/gtest_solver_manager.cpp +++ b/test/gtest_solver_manager.cpp @@ -12,7 +12,7 @@ #include "core/sensor/sensor_base.h" #include "core/state_block/state_block.h" #include "core/capture/capture_void.h" -#include "core/factor/factor_pose_2D.h" +#include "core/factor/factor_pose_2d.h" #include "core/solver/solver_manager.h" #include "core/state_block/local_parametrization_base.h" #include "core/state_block/local_parametrization_angle.h" @@ -517,8 +517,8 @@ TEST(SolverManager, AddFactor) // Create (and add) factor point 2d FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f, f, nullptr, false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f, f, nullptr, false); // notification Notification notif; @@ -544,8 +544,8 @@ TEST(SolverManager, RemoveFactor) // Create (and add) factor point 2d FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f, f, nullptr, false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f, f, nullptr, false); // update solver solver_manager_ptr->update(); @@ -578,8 +578,8 @@ TEST(SolverManager, AddRemoveFactor) FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f, f, nullptr, false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f, f, nullptr, false); // notification Notification notif; @@ -613,8 +613,8 @@ TEST(SolverManager, DoubleRemoveFactor) FrameBasePtr F = P->emplaceFrame(KEY, P->zeroState(), TimeStamp(0)); auto C = CaptureBase::emplace<CaptureVoid>(F, 0, nullptr); - auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2D", Vector3d::Zero(), Matrix3d::Identity()); - FactorPose2DPtr c = FactorBase::emplace<FactorPose2D>(f, f, nullptr, false); + auto f = FeatureBase::emplace<FeatureBase>(C, "FeatureOdom2d", Vector3d::Zero(), Matrix3d::Identity()); + FactorPose2dPtr c = FactorBase::emplace<FactorPose2d>(f, f, nullptr, false); // update solver solver_manager_ptr->update(); diff --git a/test/gtest_state_block.cpp b/test/gtest_state_block.cpp new file mode 100644 index 0000000000000000000000000000000000000000..19d9e3cf63623ef275ee5f8fc8111f4e88ece4d1 --- /dev/null +++ b/test/gtest_state_block.cpp @@ -0,0 +1,69 @@ +/* + * gtest_state_block.cpp + * + * Created on: Mar 31, 2020 + * Author: jsola + */ + +#include "core/utils/utils_gtest.h" +#include "core/utils/logging.h" + +#include "core/state_block/state_block.h" +#include "core/state_block/state_quaternion.h" +#include "core/state_block/state_angle.h" + +#include <iostream> + + +using namespace Eigen; +using namespace std; +using namespace wolf; + +TEST(StateBlock, block_perturb) +{ + Vector3d x(10,20,30); + StateBlock sb(x); + + sb.perturb(0.5); + + WOLF_INFO("original ", x.transpose(), ", perturbed = ", sb.getState().transpose()); + + ASSERT_NE(x.norm(), sb.getState().norm()); + ASSERT_MATRIX_APPROX(x , sb.getState() , 0.5 * 4); // 4-sigma test... +} + +TEST(StateBlock, angle_perturb) +{ + Vector1d x(1.0); + StateAngle sb(x(0)); + + sb.perturb(0.1); + + WOLF_INFO("original ", x.transpose(), ", perturbed = ", sb.getState().transpose()); + + ASSERT_NE(x.norm(), sb.getState().norm()); + ASSERT_MATRIX_APPROX(x , sb.getState() , 0.1 * 4); // 4-sigma test... +} + +TEST(StateBlock, quaternion_perturb) +{ + Vector4d x(0.5,0.5,0.5,0.5); + StateQuaternion sb(x); + + sb.perturb(0.01); + + WOLF_INFO("original ", x.transpose(), ", perturbed = ", sb.getState().transpose()); + + ASSERT_LT((sb.getState().transpose() * x).norm() , 1.0); // quaternions are not parallel ==> not equal + ASSERT_MATRIX_APPROX(x , sb.getState() , 0.01 * 4); // 4-sigma test... +} + +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} + + + + diff --git a/test/gtest_yaml_conversions.cpp b/test/gtest_yaml_conversions.cpp index eb42585bd47b6217416d6741a2053bff582f2eda..04acb34ee69f1da8f368966ddef0acaa6c93a7c8 100644 --- a/test/gtest_yaml_conversions.cpp +++ b/test/gtest_yaml_conversions.cpp @@ -16,7 +16,7 @@ using namespace Eigen; using namespace wolf; -TEST(MapYaml, save_2D) +TEST(MapYaml, save_2d) { MatrixXd M23(2,3); MatrixXd M33(3,3); @@ -37,9 +37,9 @@ TEST(MapYaml, save_2D) std::cout << "Dyn-Dyn [[2,3] ,[1, 2, 3, 4, 5, 6] ] = \n" << Mx << std::endl; ASSERT_MATRIX_APPROX(Mx, M23, 1e-12); - Matrix<double, 2, Dynamic> M2D = mat_sized_23.as<Matrix<double, 2, Dynamic>>(); - std::cout << "2-Dyn [[2,3] ,[1, 2, 3, 4, 5, 6] ] = \n" << M2D << std::endl; - ASSERT_MATRIX_APPROX(M2D, M23, 1e-12); + Matrix<double, 2, Dynamic> M2d = mat_sized_23.as<Matrix<double, 2, Dynamic>>(); + std::cout << "2-Dyn [[2,3] ,[1, 2, 3, 4, 5, 6] ] = \n" << M2d << std::endl; + ASSERT_MATRIX_APPROX(M2d, M23, 1e-12); Matrix<double, Dynamic, 3> MD3 = mat_sized_23.as<Matrix<double, Dynamic, 3>>(); std::cout << "Dyn-3 [[2,3] ,[1, 2, 3, 4, 5, 6] ] = \n" << MD3 << std::endl; @@ -49,9 +49,9 @@ TEST(MapYaml, save_2D) std::cout << "3-3 [[3,3] ,[1, 2, 3, 4, 5, 6, 7, 8, 9] ] = \n" << M3 << std::endl; ASSERT_MATRIX_APPROX(M3, M33, 1e-12); - M2D = mat_23.as<Matrix<double, 2, Dynamic>>(); - std::cout << "2-Dyn [1, 2, 3, 4, 5, 6] = \n" << M2D << std::endl; - ASSERT_MATRIX_APPROX(M2D, M23, 1e-12); + M2d = mat_23.as<Matrix<double, 2, Dynamic>>(); + std::cout << "2-Dyn [1, 2, 3, 4, 5, 6] = \n" << M2d << std::endl; + ASSERT_MATRIX_APPROX(M2d, M23, 1e-12); MD3 = mat_23.as<Matrix<double, Dynamic, 3>>(); std::cout << "Dyn-3 [1, 2, 3, 4, 5, 6] = \n" << MD3 << std::endl; diff --git a/test/yaml/params1.yaml b/test/yaml/params1.yaml index 70a379caf099773905033ac7f6f4b0e88d467f3e..de23e1f71055b731663efcc424b05fcebe37f5ea 100644 --- a/test/yaml/params1.yaml +++ b/test/yaml/params1.yaml @@ -4,7 +4,7 @@ config: dimension: 3 sensors: - - type: "ODOM 2D" + type: "ODOM 2d" name: "odom" plugin: "core" intrinsic: @@ -18,7 +18,7 @@ config: plugin: "core" processors: - - type: "ODOM 2D" + type: "ODOM 2d" name: "processor1" sensor_name: "odom" plugin: "core" @@ -28,17 +28,17 @@ config: sensor_name: "rb" plugin: "core" - - type: "ODOM 2D" + type: "ODOM 2d" name: "my_proc_test" sensor_name: "odom" plugin: "core" follow: "test/yaml/params3.1.yaml" - - type: "ODOM 3D" + type: "ODOM 3d" name: "my_proc_odom3d" sensor_name: "odom" plugin: "core" - follow: "test/yaml/processor_odom_3D.yaml" + follow: "test/yaml/processor_odom_3d.yaml" files: - "/home/jcasals/workspace/wip/wolf/lib/libsensor_odo.so" - "/home/jcasals/workspace/wip/wolf/lib/librange_bearing.so" \ No newline at end of file diff --git a/test/yaml/params2.yaml b/test/yaml/params2.yaml index 289488fc0e4ff0bd0d79bf26835ee72875308129..6829e2d53212689e08d8c9b90290abad6d57631b 100644 --- a/test/yaml/params2.yaml +++ b/test/yaml/params2.yaml @@ -4,7 +4,7 @@ config: dimension: 2 sensors: - - type: "ODOM 2D" + type: "ODOM 2d" name: "odom" plugin: "core" intrinsic: @@ -18,7 +18,7 @@ config: plugin: "core" processors: - - type: "ODOM 2D" + type: "ODOM 2d" name: "processor1" sensor_name: "odom" plugin: "core" @@ -32,7 +32,7 @@ config: sensor_name: "rb" plugin: "core" - - type: "ODOM 2D" + 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 ec7006053c7e27d79789630f1cd161a4905aa714..e23b24ea4d148394dc87a1789514f3e1c7e71e75 100644 --- a/test/yaml/params3.yaml +++ b/test/yaml/params3.yaml @@ -4,7 +4,7 @@ config: dimension: 2 sensors: - - type: "ODOM 2D" + type: "ODOM 2d" name: "odom" plugin: "core" intrinsic: @@ -14,7 +14,7 @@ config: pose: [1,2,3] processors: - - type: "ODOM 2D" + type: "ODOM 2d" name: "my_proc_test" plugin: "core" sensor_name: "odom" diff --git a/test/yaml/processor_odom_3D.yaml b/test/yaml/processor_odom_3d.yaml similarity index 86% rename from test/yaml/processor_odom_3D.yaml rename to test/yaml/processor_odom_3d.yaml index 25ef29e83065acfe37cff57babc06b25b3b5d57b..65b00b967a1b3c1ed870f979479db930caf78b5e 100644 --- a/test/yaml/processor_odom_3D.yaml +++ b/test/yaml/processor_odom_3d.yaml @@ -1,4 +1,4 @@ -type: "ProcessorOdom3D" # This must match the KEY used in the SensorFactory. Otherwise it is an error. +type: "ProcessorOdom3d" # This must match the KEY used in the SensorFactory. Otherwise it is an error. time_tolerance: 0.01 # seconds diff --git a/test/yaml/sensor_odom_2D.yaml b/test/yaml/sensor_odom_2d.yaml similarity index 65% rename from test/yaml/sensor_odom_2D.yaml rename to test/yaml/sensor_odom_2d.yaml index 45271b18cfff1235f05d945c6e5f124ff33e064e..0841d40b310d90064de6131e32ccaee189ab104c 100644 --- a/test/yaml/sensor_odom_2D.yaml +++ b/test/yaml/sensor_odom_2d.yaml @@ -1,4 +1,4 @@ -type: "SensorOdom2D" # This must match the KEY used in the SensorFactory. Otherwise it is an error. +type: "SensorOdom2d" # This must match the KEY used in the SensorFactory. Otherwise it is an error. k_disp_to_disp: 0.02 # m^2 / m k_rot_to_rot: 0.01 # rad^2 / rad diff --git a/demos/sensor_odom_3D.yaml b/test/yaml/sensor_odom_3d.yaml similarity index 60% rename from demos/sensor_odom_3D.yaml rename to test/yaml/sensor_odom_3d.yaml index c45adb8ca809770ff3320ec81637e7a7ea556758..58db1c088fbc80339a78ba815fddbaf69674d3b6 100644 --- a/demos/sensor_odom_3D.yaml +++ b/test/yaml/sensor_odom_3d.yaml @@ -1,4 +1,4 @@ -type: "ODOM 3D" # This must match the KEY used in the SensorFactory. Otherwise it is an error. +type: "SensorOdom3d" # This must match the KEY used in the SensorFactory. Otherwise it is an error. k_disp_to_disp: 0.02 # m^2 / m k_disp_to_rot: 0.02 # rad^2 / m diff --git a/wolf_scripts/out b/wolf_scripts/out index 2b7857b6ba924b96ce256a0a7661b7079c429a2a..493b8dbcb5aaec3863d3634eff897e820206f404 100644 --- a/wolf_scripts/out +++ b/wolf_scripts/out @@ -2,7 +2,7 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_wheel_joint_position.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_image.h ================================== -=============================================================== @@ -10,13 +10,13 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_GPS.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_motion.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_GPS_fix.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_image.cpp ================================== #include "capture_image.h" @@ -24,8 +24,8 @@ +====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_GPS.cpp ================================== #include "capture_GPS.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3D.cpp ================================== -#include "capture_odom_3D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3d.cpp ================================== +#include "capture_odom_3d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_velocity.cpp ================================== #include "capture_velocity.h" @@ -39,18 +39,18 @@ +====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_GPS_fix.cpp ================================== #include "capture_GPS_fix.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2D.cpp ================================== -#include "capture_odom_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2d.cpp ================================== +#include "capture_odom_2d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_wheel_joint_position.cpp ================================== #include "capture_wheel_joint_position.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2D.cpp ================================== -#include "capture_laser_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2d.cpp ================================== +#include "capture_laser_2d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_IMU.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_quaternion_absolute.h ================================== -=============================================================== @@ -58,39 +58,39 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_block_absolute.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D_analytic.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d_analytic.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_epipolar.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_fix_bias.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2D_analytic.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2d_analytic.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_trifocal.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_AHP.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_diff_drive.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/core/include/core/frame_base.h ================================== -=============================================================== @@ -134,7 +134,7 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/core/include/core/autoconf_processor_factory.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/core/include/core/wolf.h ================================== -=============================================================== @@ -307,15 +307,15 @@ +====================== /home/jcasals/workspace/wip/wolf/src/core/src/local_parametrization_base.cpp ================================== #include "local_parametrization_base.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_motion.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_IMU.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_GPS_pseudorange.h ================================== -=============================================================== @@ -323,7 +323,7 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_GPS_fix.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_diff_drive.h ================================== -=============================================================== @@ -333,11 +333,11 @@ +====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_GPS_pseudorange.cpp ================================== #include "feature_GPS_pseudorange.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2D.cpp ================================== -#include "feature_odom_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2d.cpp ================================== +#include "feature_odom_2d.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2D.cpp ================================== -#include "feature_polyline_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2d.cpp ================================== +#include "feature_polyline_2d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_diff_drive.cpp ================================== #include "feature_diff_drive.h" @@ -348,16 +348,16 @@ +====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_motion.cpp ================================== #include "feature_motion.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2D.cpp ================================== -#include "feature_corner_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2d.cpp ================================== +#include "feature_corner_2d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_GPS_fix.cpp ================================== #include "feature_GPS_fix.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2D.cpp ================================== -#include "feature_corner_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2d.cpp ================================== +#include "feature_corner_2d.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_container.h ================================== -=============================================================== @@ -365,26 +365,26 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_AHP.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2d.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2D.cpp ================================== -#include "landmark_corner_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2d.cpp ================================== +#include "landmark_corner_2d.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2D.cpp ================================== -#include "landmark_line_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2d.cpp ================================== +#include "landmark_line_2d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_container.cpp ================================== #include "landmark_container.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2D.cpp ================================== -#include "landmark_polyline_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2d.cpp ================================== +#include "landmark_polyline_2d.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3D.cpp ================================== -#include "landmark_point_3D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3d.cpp ================================== +#include "landmark_point_3d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_AHP.cpp ================================== #include "landmark_AHP.h" @@ -395,7 +395,7 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_frame_nearest_neighbor_filter.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_corner.h ================================== -=============================================================== @@ -415,7 +415,7 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_feature_image.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_IMU.h ================================== -=============================================================== @@ -443,11 +443,11 @@ +====================== /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark.cpp ================================== #include "processor_tracker_landmark.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3D.cpp ================================== -#include "processor_odom_3D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3d.cpp ================================== +#include "processor_odom_3d.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2D.cpp ================================== -#include "processor_odom_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2d.cpp ================================== +#include "processor_odom_2d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_image.cpp ================================== #include "processor_tracker_landmark_image.h" @@ -473,11 +473,11 @@ +====================== /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_polyline.cpp ================================== #include "processor_tracker_landmark_polyline.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_IMU.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_GPS_fix.h ================================== -=============================================================== @@ -487,7 +487,7 @@ -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_GPS.h ================================== -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2D.h ================================== ++====================== /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2d.h ================================== -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_diff_drive.cpp ================================== #include "sensor_diff_drive.h" @@ -495,17 +495,17 @@ +====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_GPS.cpp ================================== #include "sensor_GPS.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2D.cpp ================================== -#include "sensor_odom_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2d.cpp ================================== +#include "sensor_odom_2d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_IMU.cpp ================================== #include "sensor_IMU.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3D.cpp ================================== -#include "sensor_odom_3D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3d.cpp ================================== +#include "sensor_odom_3d.h" -=============================================================== -+====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2D.cpp ================================== -#include "sensor_laser_2D.h" ++====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2d.cpp ================================== +#include "sensor_laser_2d.h" -=============================================================== +====================== /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_GPS_fix.cpp ================================== #include "sensor_GPS_fix.h" diff --git a/wolf_scripts/output b/wolf_scripts/output index 565ac41005f746c4bc411e7776ba78adb2c3024a..2652d6fd005dfc9eaad13d4b8bcf7f5e582eb84c 100644 --- a/wolf_scripts/output +++ b/wolf_scripts/output @@ -22,18 +22,18 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_wheel_joint_position.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3d.h ================================== #include <wolf/core/rotations.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_3d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_image.h ================================== ================================================================ @@ -75,18 +75,18 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_GPS.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2d.h ================================== #include <wolf/core/rotations.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_odom_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_motion.h ================================== ================================================================ @@ -116,19 +116,19 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_GPS_fix.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2d.h ================================== #include <wolf/core/capture_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2D.h ================================== -#include <wolf/sensor/sensor_laser_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/capture/include/capture/capture_laser_2d.h ================================== +#include <wolf/sensor/sensor_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_image.cpp ================================== ================================================================ @@ -154,17 +154,17 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_GPS.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_3d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_velocity.cpp ================================== ================================================================ @@ -216,17 +216,17 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_GPS_fix.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_odom_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_wheel_joint_position.cpp ================================== ================================================================ @@ -242,17 +242,17 @@ ======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_wheel_joint_position.cpp ================================== #include <wolf/sensor/sensor_diff_drive.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/capture/src/capture_laser_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_IMU.h ================================== ================================================================ @@ -270,19 +270,19 @@ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_IMU.h ================================== #include <wolf/sensor/sensor_IMU.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d.h ================================== #include <wolf/core/constraint_autodiff.h> #include <wolf/core/frame_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_quaternion_absolute.h ================================== ================================================================ @@ -329,17 +329,17 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_block_absolute.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_2d_analytic.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_epipolar.h ================================== ================================================================ @@ -354,20 +354,20 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_epipolar.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2d.h ================================== #include <wolf/core/wolf.h> #include <wolf/core/constraint_autodiff.h> #include <wolf/core/frame_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_fix_bias.h ================================== #include <wolf/capture/capture_IMU.h> @@ -386,34 +386,34 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_fix_bias.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2d_analytic.h ================================== #include <wolf/core/constraint_analytic.h> #include <wolf/core/landmark_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2D_analytic.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_relative_2d_analytic.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2d.h ================================== #include <wolf/core/constraint_autodiff.h> #include <wolf/core/frame_base.h> #include <wolf/core/rotations.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_trifocal.h ================================== ================================================================ @@ -431,34 +431,34 @@ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_trifocal.h ================================== #include <wolf/sensor/sensor_camera.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2d.h ================================== #include <wolf/core/constraint_autodiff.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2d.h ================================== #include <wolf/feature/feature_GPS_pseudorange.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_2d.h ================================== #include <wolf/sensor/sensor_GPS.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2d.h ================================== #include <wolf/core/constraint_autodiff.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2D.h ================================== -#include <wolf/landmark/landmark_corner_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2d.h ================================== +#include <wolf/landmark/landmark_corner_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_corner_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_AHP.h ================================== ================================================================ @@ -476,47 +476,47 @@ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_AHP.h ================================== #include <wolf/sensor/sensor_camera.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3d.h ================================== #include <wolf/core/constraint_autodiff.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3d.h ================================== #include <wolf/feature/feature_GPS_pseudorange.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_GPS_pseudorange_3d.h ================================== #include <wolf/sensor/sensor_GPS.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3d.h ================================== #include <wolf/core/constraint_autodiff.h> #include <wolf/core/rotations.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3d.h ================================== #include <wolf/core/constraint_autodiff.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_autodiff_distance_3d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_diff_drive.h ================================== #include <wolf/capture/capture_wheel_joint_position.h> @@ -534,50 +534,50 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_diff_drive.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2d.h ================================== #include <wolf/core/constraint_autodiff.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2D.h ================================== -#include <wolf/feature/feature_polyline_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2d.h ================================== +#include <wolf/feature/feature_polyline_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2D.h ================================== -#include <wolf/landmark/landmark_polyline_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2d.h ================================== +#include <wolf/landmark/landmark_polyline_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_to_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2d.h ================================== #include <wolf/core/constraint_autodiff.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2D.h ================================== -#include <wolf/feature/feature_polyline_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2d.h ================================== +#include <wolf/feature/feature_polyline_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2D.h ================================== -#include <wolf/landmark/landmark_polyline_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2d.h ================================== +#include <wolf/landmark/landmark_polyline_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_point_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3d.h ================================== #include <wolf/core/constraint_autodiff.h> #include <wolf/core/frame_base.h> #include <wolf/core/rotations.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/constraint/include/constraint/constraint_pose_3d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/frame_base.h ================================== ================================================================ @@ -630,8 +630,8 @@ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/capture_pose.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/capture_pose.h ================================== -#include <wolf/constraint/constraint_pose_2D.h> -#include <wolf/constraint/constraint_pose_3D.h> +#include <wolf/constraint/constraint_pose_2d.h> +#include <wolf/constraint/constraint_pose_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/capture_pose.h ================================== ================================================================ @@ -798,17 +798,17 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/problem.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/state_homogeneous_3d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/wolf.h ================================== ================================================================ @@ -1073,12 +1073,12 @@ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/processor_factory.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/processor_factory.h ================================== - * #include <wolf/processor/processor_odom_2D.h> // provides ProcessorOdom2D and ProcessorFactory - * #include <wolf/processor/processor_odom_2D.h> + * #include <wolf/processor/processor_odom_2d.h> // provides ProcessorOdom2d and ProcessorFactory + * #include <wolf/processor/processor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/processor_factory.h ================================== - * #include <wolf/sensor/sensor_odom_2D.h> // provides SensorOdom2D and SensorFactory - * #include <wolf/sensor/sensor_odom_2D.h> + * #include <wolf/sensor/sensor_odom_2d.h> // provides SensorOdom2d and SensorFactory + * #include <wolf/sensor/sensor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/core/include/core/local_parametrization_quaternion.h ================================== ================================================================ @@ -1471,7 +1471,7 @@ #include <wolf/capture/capture_IMU.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuPlateform_Offline.cpp ================================== -#include <wolf/constraint/constraint_odom_3D.h> +#include <wolf/constraint/constraint_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuPlateform_Offline.cpp ================================== #include <wolf/core/wolf.h> @@ -1485,17 +1485,17 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuPlateform_Offline.cpp ================================== #include <wolf/processor/processor_IMU.h> -#include <wolf/processor/processor_odom_3D.h> +#include <wolf/processor/processor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuPlateform_Offline.cpp ================================== #include <wolf/sensor/sensor_IMU.h> -#include <wolf/sensor/sensor_odom_3D.h> +#include <wolf/sensor/sensor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_imu.cpp ================================== #include <wolf/capture/capture_IMU.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_imu.cpp ================================== -#include <wolf/constraint/constraint_odom_3D.h> +#include <wolf/constraint/constraint_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_imu.cpp ================================== #include <wolf/core/capture_pose.h> @@ -1618,7 +1618,7 @@ ======================= /home/jcasals/workspace/wip/wolf/src/examples/solver/test_iQR_wolf2.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/solver/test_iQR_wolf2.cpp ================================== -#include <wolf/sensor/sensor_laser_2D.h> +#include <wolf/sensor/sensor_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/solver/test_permutations.cpp ================================== ================================================================ @@ -1842,12 +1842,12 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_ceres_2_lasers_polylines.cpp ================================== #include <wolf/processor/processor_tracker_landmark_polyline.h> -#include <wolf/processor/processor_odom_2D.h> +#include <wolf/processor/processor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_ceres_2_lasers_polylines.cpp ================================== #include <wolf/sensor/sensor_GPS_fix.h> -#include <wolf/sensor/sensor_laser_2D.h> -#include <wolf/sensor/sensor_odom_2D.h> +#include <wolf/sensor/sensor_laser_2d.h> +#include <wolf/sensor/sensor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_imu_no_vote.yaml ================================== ================================================================ @@ -1891,20 +1891,20 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_imu_t1.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2D.cpp ================================== -#include <wolf/capture/capture_laser_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2d.cpp ================================== +#include <wolf/capture/capture_laser_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_capture_laser_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/ACTIVESEARCH.yaml ================================== ================================================================ @@ -1933,7 +1933,7 @@ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_map_yaml.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_map_yaml.cpp ================================== -#include <wolf/landmark/landmark_polyline_2D.h> +#include <wolf/landmark/landmark_polyline_2d.h> #include <wolf/landmark/landmark_AHP.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_map_yaml.cpp ================================== @@ -2047,7 +2047,7 @@ #include <wolf/core/constraint_base.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_sparsification.cpp ================================== -#include <wolf/feature/feature_odom_2D.h> +#include <wolf/feature/feature_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_sparsification.cpp ================================== ================================================================ @@ -2070,12 +2070,12 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_ceres_2_lasers.cpp ================================== #include <wolf/processor/processor_tracker_landmark_corner.h> -#include <wolf/processor/processor_odom_2D.h> +#include <wolf/processor/processor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_ceres_2_lasers.cpp ================================== #include <wolf/sensor/sensor_GPS_fix.h> -#include <wolf/sensor/sensor_laser_2D.h> -#include <wolf/sensor/sensor_odom_2D.h> +#include <wolf/sensor/sensor_laser_2d.h> +#include <wolf/sensor/sensor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_eigen_quaternion.cpp ================================== ================================================================ @@ -2120,7 +2120,7 @@ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_autodiff.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_autodiff.cpp ================================== -#include <wolf/sensor/sensor_laser_2D.h> +#include <wolf/sensor/sensor_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_tracker_ORB.cpp ================================== ================================================================ @@ -2152,13 +2152,13 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_wolf_factories.cpp ================================== #include <wolf/processor/processor_IMU.h> -#include <wolf/processor/processor_odom_2D.h> -#include <wolf/processor/processor_odom_3D.h> +#include <wolf/processor/processor_odom_2d.h> +#include <wolf/processor/processor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_wolf_factories.cpp ================================== #include <wolf/sensor/sensor_GPS_fix.h> #include <wolf/sensor/sensor_camera.h> -#include <wolf/sensor/sensor_odom_2D.h> +#include <wolf/sensor/sensor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_sh_ptr.cpp ================================== ================================================================ @@ -2178,7 +2178,7 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuDock.cpp ================================== #include <wolf/constraint/constraint_fix_bias.h> -#include <wolf/constraint/constraint_pose_3D.h> +#include <wolf/constraint/constraint_pose_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuDock.cpp ================================== #include <wolf/core/wolf.h> @@ -2190,11 +2190,11 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuDock.cpp ================================== #include <wolf/processor/processor_IMU.h> -#include <wolf/processor/processor_odom_3D.h> +#include <wolf/processor/processor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuDock.cpp ================================== #include <wolf/sensor/sensor_IMU.h> -#include <wolf/sensor/sensor_odom_3D.h> +#include <wolf/sensor/sensor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_2_lasers_offline.cpp ================================== ================================================================ @@ -2211,12 +2211,12 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_2_lasers_offline.cpp ================================== #include <wolf/processor/processor_tracker_landmark_corner.h> -#include <wolf/processor/processor_odom_2D.h> +#include <wolf/processor/processor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_2_lasers_offline.cpp ================================== #include <wolf/sensor/sensor_GPS_fix.h> -#include <wolf/sensor/sensor_laser_2D.h> -#include <wolf/sensor/sensor_odom_2D.h> +#include <wolf/sensor/sensor_laser_2d.h> +#include <wolf/sensor/sensor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_yaml_conversions.cpp ================================== ================================================================ @@ -2249,10 +2249,10 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_tracker_landmark_image.cpp ================================== #include <wolf/processor/processor_tracker_landmark_image.h> -#include <wolf/processor/processor_odom_3D.h> +#include <wolf/processor/processor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_tracker_landmark_image.cpp ================================== -#include <wolf/sensor/sensor_odom_3D.h> +#include <wolf/sensor/sensor_odom_3d.h> #include <wolf/sensor/sensor_camera.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_eigen_template.cpp ================================== @@ -2269,33 +2269,33 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_eigen_template.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D_HQ.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d_HQ.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D_HQ.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d_HQ.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D_HQ.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d_HQ.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D_HQ.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d_HQ.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D_HQ.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d_HQ.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D_HQ.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d_HQ.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D_HQ.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d_HQ.yaml ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_matrix_prod.cpp ================================== ================================================================ @@ -2431,11 +2431,11 @@ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_kf_callback.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_kf_callback.cpp ================================== -#include <wolf/processor/processor_odom_2D.h> +#include <wolf/processor/processor_odom_2d.h> #include <wolf/processor/processor_tracker_feature_dummy.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_kf_callback.cpp ================================== -#include <wolf/sensor/sensor_odom_2D.h> +#include <wolf/sensor/sensor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_faramotics_simulation.cpp ================================== ================================================================ @@ -2459,7 +2459,7 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuDock_autoKFs.cpp ================================== #include <wolf/constraint/constraint_fix_bias.h> -#include <wolf/constraint/constraint_pose_3D.h> +#include <wolf/constraint/constraint_pose_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuDock_autoKFs.cpp ================================== #include <wolf/core/wolf.h> @@ -2471,11 +2471,11 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuDock_autoKFs.cpp ================================== #include <wolf/processor/processor_IMU.h> -#include <wolf/processor/processor_odom_3D.h> +#include <wolf/processor/processor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imuDock_autoKFs.cpp ================================== #include <wolf/sensor/sensor_IMU.h> -#include <wolf/sensor/sensor_odom_3D.h> +#include <wolf/sensor/sensor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_analytic_odom_constraint.cpp ================================== ================================================================ @@ -2506,40 +2506,40 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/processor_image_feature.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3D.cpp ================================== -#include <wolf/constraint/constraint_odom_3D.h> +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3d.cpp ================================== +#include <wolf/constraint/constraint_odom_3d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3d.cpp ================================== #include <wolf/capture/capture_IMU.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3d.cpp ================================== #include <wolf/core/problem.h> #include <wolf/core/map_base.h> #include <wolf/core/landmark_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3D.cpp ================================== -#include <wolf/processor/processor_odom_3D.h> +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3d.cpp ================================== +#include <wolf/processor/processor_odom_3d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3D.cpp ================================== -#include <wolf/sensor/sensor_odom_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_odom_3d.cpp ================================== +#include <wolf/sensor/sensor_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_wolf_root.cpp ================================== ================================================================ @@ -2560,7 +2560,7 @@ #include <wolf/capture/capture_IMU.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imu_constrained0.cpp ================================== -#include <wolf/constraint/constraint_odom_3D.h> +#include <wolf/constraint/constraint_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imu_constrained0.cpp ================================== #include <wolf/core/wolf.h> @@ -2574,11 +2574,11 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imu_constrained0.cpp ================================== #include <wolf/processor/processor_IMU.h> -#include <wolf/processor/processor_odom_3D.h> +#include <wolf/processor/processor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_imu_constrained0.cpp ================================== #include <wolf/sensor/sensor_IMU.h> -#include <wolf/sensor/sensor_odom_3D.h> +#include <wolf/sensor/sensor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_AHP.cpp ================================== #include <wolf/capture/capture_image.h> @@ -2600,19 +2600,19 @@ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_constraint_AHP.cpp ================================== #include <wolf/sensor/sensor_camera.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3D.yaml ================================== +======================= /home/jcasals/workspace/wip/wolf/src/examples/sensor_odom_3d.yaml ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/test_processor_imu_jacobians.cpp ================================== #include <wolf/capture/capture_IMU.h> @@ -2715,33 +2715,33 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/examples/vision_utils_active_search.yaml ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2D.h ================================== -#include <wolf/constraint/constraint_odom_2D.h> -#include <wolf/constraint/constraint_odom_2D_analytic.h> +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2d.h ================================== +#include <wolf/constraint/constraint_odom_2d.h> +#include <wolf/constraint/constraint_odom_2d_analytic.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2d.h ================================== #include <wolf/core/feature_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2d.h ================================== #include <wolf/core/feature_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_line_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_motion.h ================================== #include <wolf/capture/capture_motion.h> @@ -2772,18 +2772,18 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_IMU.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2d.h ================================== #include <wolf/core/feature_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_corner_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_GPS_pseudorange.h ================================== ================================================================ @@ -2814,7 +2814,7 @@ ======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_GPS_fix.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_GPS_fix.h ================================== -#include <wolf/constraint/constraint_GPS_2D.h> +#include <wolf/constraint/constraint_GPS_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_GPS_fix.h ================================== #include <wolf/core/feature_base.h> @@ -2825,18 +2825,18 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_GPS_fix.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2d.h ================================== #include <wolf/core/feature_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_polyline_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/include/feature/feature_diff_drive.h ================================== ================================================================ @@ -2875,29 +2875,29 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_GPS_pseudorange.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_polyline_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_diff_drive.cpp ================================== ================================================================ @@ -2935,17 +2935,17 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_motion.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_corner_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_GPS_fix.cpp ================================== ================================================================ @@ -2959,30 +2959,30 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_GPS_fix.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/feature/src/feature_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3d.h ================================== #include <wolf/core/landmark_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_point_3d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_container.h ================================== ================================================================ @@ -3024,69 +3024,69 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_AHP.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2d.h ================================== #include <wolf/core/landmark_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_polyline_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2d.h ================================== #include <wolf/core/landmark_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_corner_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2d.h ================================== #include <wolf/core/landmark_base.h> #include <wolf/core/wolf.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/include/landmark/landmark_line_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_corner_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_line_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_container.cpp ================================== ================================================================ @@ -3101,41 +3101,41 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_container.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2D.cpp ================================== -#include <wolf/constraint/constraint_point_2D.h> -#include <wolf/constraint/constraint_point_to_line_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2d.cpp ================================== +#include <wolf/constraint/constraint_point_2d.h> +#include <wolf/constraint/constraint_point_to_line_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2d.cpp ================================== #include <wolf/core/state_block.h> #include <wolf/core/factory.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2D.cpp ================================== -#include <wolf/feature/feature_polyline_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2d.cpp ================================== +#include <wolf/feature/feature_polyline_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_polyline_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_point_3d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_AHP.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_AHP.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_AHP.cpp ================================== -#include <wolf/core/state_homogeneous_3D.h> +#include <wolf/core/state_homogeneous_3d.h> #include <wolf/core/factory.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/landmark/src/landmark_AHP.cpp ================================== @@ -3187,58 +3187,58 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_frame_nearest_neighbor_filter.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2D.h ================================== -#include <wolf/capture/capture_odom_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2d.h ================================== +#include <wolf/capture/capture_odom_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2D.h ================================== -#include <wolf/constraint/constraint_odom_2D.h> +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2d.h ================================== +#include <wolf/constraint/constraint_odom_2d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2d.h ================================== #include <wolf/core/processor_motion.h> #include <wolf/core/rotations.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_corner.h ================================== -#include <wolf/capture/capture_laser_2D.h> +#include <wolf/capture/capture_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_corner.h ================================== -#include <wolf/constraint/constraint_corner_2D.h> +#include <wolf/constraint/constraint_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_corner.h ================================== #include <wolf/core/state_block.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_corner.h ================================== -#include <wolf/feature/feature_corner_2D.h> +#include <wolf/feature/feature_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_corner.h ================================== -#include <wolf/landmark/landmark_corner_2D.h> +#include <wolf/landmark/landmark_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_corner.h ================================== -#include <wolf/sensor/sensor_laser_2D.h> +#include <wolf/sensor/sensor_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_feature_corner.h ================================== -#include <wolf/capture/capture_laser_2D.h> +#include <wolf/capture/capture_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_feature_corner.h ================================== -#include <wolf/constraint/constraint_corner_2D.h> +#include <wolf/constraint/constraint_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_feature_corner.h ================================== #include <wolf/core/state_block.h> #include <wolf/core/processor_tracker_feature.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_feature_corner.h ================================== -#include <wolf/feature/feature_corner_2D.h> +#include <wolf/feature/feature_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_feature_corner.h ================================== -#include <wolf/landmark/landmark_corner_2D.h> +#include <wolf/landmark/landmark_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_feature_corner.h ================================== -#include <wolf/sensor/sensor_laser_2D.h> +#include <wolf/sensor/sensor_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_capture_holder.h ================================== ================================================================ @@ -3285,23 +3285,23 @@ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_polyline.h ================================== -#include <wolf/capture/capture_laser_2D.h> +#include <wolf/capture/capture_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_polyline.h ================================== -#include <wolf/constraint/constraint_point_2D.h> -#include <wolf/constraint/constraint_point_to_line_2D.h> +#include <wolf/constraint/constraint_point_2d.h> +#include <wolf/constraint/constraint_point_to_line_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_polyline.h ================================== #include <wolf/core/state_block.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_polyline.h ================================== -#include <wolf/feature/feature_polyline_2D.h> +#include <wolf/feature/feature_polyline_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_polyline.h ================================== -#include <wolf/landmark/landmark_polyline_2D.h> +#include <wolf/landmark/landmark_polyline_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_landmark_polyline.h ================================== -#include <wolf/sensor/sensor_laser_2D.h> +#include <wolf/sensor/sensor_laser_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_logging.h ================================== ================================================================ @@ -3349,22 +3349,22 @@ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_tracker_feature_image.h ================================== #include <wolf/sensor/sensor_camera.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3D.h ================================== -#include <wolf/capture/capture_odom_3D.h> +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3d.h ================================== +#include <wolf/capture/capture_odom_3d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3D.h ================================== -#include <wolf/constraint/constraint_odom_3D.h> +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3d.h ================================== +#include <wolf/constraint/constraint_odom_3d.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3d.h ================================== #include <wolf/core/processor_motion.h> #include <wolf/core/rotations.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3D.h ================================== -#include <wolf/sensor/sensor_odom_3D.h> +======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_odom_3d.h ================================== +#include <wolf/sensor/sensor_odom_3d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/include/processor/processor_IMU.h ================================== #include <wolf/capture/capture_IMU.h> @@ -3439,7 +3439,7 @@ #include <wolf/capture/capture_GPS.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_GPS.cpp ================================== -#include <wolf/constraint/constraint_GPS_pseudorange_2D.h> +#include <wolf/constraint/constraint_GPS_pseudorange_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_GPS.cpp ================================== #include <wolf/core/processor_factory.h> @@ -3502,31 +3502,31 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3d.cpp ================================== #include <wolf/core/processor_factory.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2d.cpp ================================== #include <wolf/core/processor_factory.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_odom_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_image.cpp ================================== #include <wolf/capture/capture_image.h> @@ -3555,14 +3555,14 @@ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_dummy.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_dummy.cpp ================================== -#include <wolf/constraint/constraint_corner_2D.h> +#include <wolf/constraint/constraint_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_dummy.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_dummy.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_dummy.cpp ================================== -#include <wolf/landmark/landmark_corner_2D.h> +#include <wolf/landmark/landmark_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_dummy.cpp ================================== ================================================================ @@ -3615,7 +3615,7 @@ #include <wolf/capture/capture_velocity.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_diff_drive.cpp ================================== -#include <wolf/constraint/constraint_odom_2D.h> +#include <wolf/constraint/constraint_odom_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_diff_drive.cpp ================================== #include <wolf/core/rotations.h> @@ -3636,7 +3636,7 @@ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_feature_corner.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_feature_corner.cpp ================================== -#include <wolf/feature/feature_corner_2D.h> +#include <wolf/feature/feature_corner_2d.h> ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_feature_corner.cpp ================================== ================================================================ @@ -3655,18 +3655,18 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/processor/src/processor_tracker_landmark_polyline.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3d.h ================================== #include <wolf/core/sensor_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_3d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_IMU.h ================================== ================================================================ @@ -3681,18 +3681,18 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_IMU.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2d.h ================================== #include <wolf/core/sensor_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_odom_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_GPS_fix.h ================================== ================================================================ @@ -3748,18 +3748,18 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_GPS.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2d.h ================================== #include <wolf/core/sensor_base.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2d.h ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2D.h ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/include/sensor/sensor_laser_2d.h ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_diff_drive.cpp ================================== #include <wolf/capture/capture_motion.h> @@ -3791,20 +3791,20 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_GPS.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2d.cpp ================================== #include <wolf/core/state_block.h> #include <wolf/core/state_angle.h> #include <wolf/core/sensor_factory.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_IMU.cpp ================================== ================================================================ @@ -3821,34 +3821,34 @@ ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_IMU.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3d.cpp ================================== #include <wolf/core/state_block.h> #include <wolf/core/state_quaternion.h> #include <wolf/core/sensor_factory.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_odom_3d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2d.cpp ================================== #include <wolf/core/state_block.h> #include <wolf/core/sensor_factory.h> ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2d.cpp ================================== ================================================================ -======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2D.cpp ================================== +======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_laser_2d.cpp ================================== ================================================================ ======================= /home/jcasals/workspace/wip/wolf/src/sensor/src/sensor_GPS_fix.cpp ================================== ================================================================ diff --git a/wolf_scripts/rename.sh b/wolf_scripts/rename.sh index 27c83e736e3b2b29a0033932f5c134f1bceb8ad0..7d778f475f19523e8cd868c72f0349e4f78dcf30 100755 --- a/wolf_scripts/rename.sh +++ b/wolf_scripts/rename.sh @@ -33,7 +33,7 @@ getTypes () # echo "VVV "$type # sed -rn "s/(Feature|Capture|Landmark|Processor|Factor)(.*)\"${type}\"/\1\2\"${camel_file}\"/p" $file # echo sed -rn "s/(Capture)(.*)\"${type}\"/\1\2\"${camel_file}\"/p" $file - # type="ODOM 3D" + # type="ODOM 3d" matching=$(ag -l "\"${type}\"" --ignore "demos" . | wc -l) if [ $matching -gt "0" ]; then echo ${type}