From c556ede41e215b11bfc56394eca36b400b8cf51d Mon Sep 17 00:00:00 2001 From: Saba Aflaki Date: Thu, 18 Aug 2016 18:04:59 -0400 Subject: [PATCH 1/5] added gui for threshold --- .CMakeLists.txt.swp | Bin 0 -> 16384 bytes CMakeLists.txt | 7 ++++- cfg/thresholdParams.cfg | 16 +++++++++++ include/mcptam/GuiCallBacks.h | 16 +++++++++++ include/mcptam/KeyFrame.h | 1 + src/GuiCallBacks.cpp | 11 ++++++++ src/KeyFrame.cpp | 49 ++++++++++++++++++++++++++++------ src/Main.cpp | 9 ++++++- 8 files changed, 99 insertions(+), 10 deletions(-) create mode 100644 .CMakeLists.txt.swp create mode 100755 cfg/thresholdParams.cfg create mode 100644 include/mcptam/GuiCallBacks.h create mode 100644 src/GuiCallBacks.cpp diff --git a/.CMakeLists.txt.swp b/.CMakeLists.txt.swp new file mode 100644 index 0000000000000000000000000000000000000000..607e592ef608a4476ce81c7136d432bfccfeeedb GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d9bdef..0762357 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,6 +69,10 @@ add_service_files( DIRECTORY srv generate_messages(DEPENDENCIES std_msgs sensor_msgs) +generate_dynamic_reconfigure_options( + cfg/thresholdParams.cfg +) + catkin_package( INCLUDE_DIRS include LIBRARIES ${PROJECT_NAME} $ @@ -110,6 +114,7 @@ set(MCPTAM_FUNCTIONS_LIB_SRC src/EntropyComputation.cpp src/GLWindow2.cpp src/GLWindowMenu.cpp + src/GuiCallBacks.cpp src/KeyFrame.cpp src/KeyFrameViewer.cpp src/Map.cpp @@ -184,7 +189,7 @@ target_link_libraries(mcptam_functions ${MCPTAM_LIBS}) # add executables and link them to the libraries add_executable(mcptam ${MCPTAM_SRC} ) -add_dependencies(mcptam ${PROJECT_NAME}_gencpp) +add_dependencies(mcptam ${PROJECT_NAME}_gencpp ${PROJECT_NAME}_gencfg) target_link_libraries(mcptam ${MCPTAM_LIBS} mcptam_functions) add_executable(mcptam_client ${MCPTAM_CLIENT_SRC}) diff --git a/cfg/thresholdParams.cfg b/cfg/thresholdParams.cfg new file mode 100755 index 0000000..ab898c3 --- /dev/null +++ b/cfg/thresholdParams.cfg @@ -0,0 +1,16 @@ +#!/usr/bin/env python +PACKAGE = "mcptam" + +from dynamic_reconfigure.parameter_generator_catkin import * + +gen = ParameterGenerator() + +# Threshold +thresh = gen.add_group("Threshold", type="collapse", state=False) +thresh.add("level_0", int_t, 0, "Level 0", 10, 5, 40) +thresh.add("level_1", int_t, 0, "Level 1", 15, 5, 40) +thresh.add("level_2", int_t, 0, "Level 2", 15, 5, 40) +thresh.add("level_3", int_t, 0, "Level 3", 10, 5, 40) + + +exit(gen.generate(PACKAGE, "mcptam", "Threshold")) diff --git a/include/mcptam/GuiCallBacks.h b/include/mcptam/GuiCallBacks.h new file mode 100644 index 0000000..1752139 --- /dev/null +++ b/include/mcptam/GuiCallBacks.h @@ -0,0 +1,16 @@ +#ifndef GUI_CALLBACKS_H +#define GUI_CALLBACKS_H + +#include +#include + +int level0 = 10; +int level1 = 15; +int level2 = 15; +int level3 = 10; + +int threshold_state = 0; + +void threshold_gui_callback(mcptam::ThresholdConfig &config, uint32_t level); + +#endif diff --git a/include/mcptam/KeyFrame.h b/include/mcptam/KeyFrame.h index a1dfffe..532efef 100644 --- a/include/mcptam/KeyFrame.h +++ b/include/mcptam/KeyFrame.h @@ -88,6 +88,7 @@ #include #include #include +#include class MapPoint; class SmallBlurryImage; diff --git a/src/GuiCallBacks.cpp b/src/GuiCallBacks.cpp new file mode 100644 index 0000000..f26bec4 --- /dev/null +++ b/src/GuiCallBacks.cpp @@ -0,0 +1,11 @@ +#include + +void threshold_gui_callback(mcptam::ThresholdConfig &config, uint32_t level) +{ + level0 = config.level_0; + level1 = config.level_1; + level2 = config.level_2; + level3 = config.level_3; + + threshold_state = config.groups.thresh.state; +} diff --git a/src/KeyFrame.cpp b/src/KeyFrame.cpp index 936014a..b4cb9a9 100644 --- a/src/KeyFrame.cpp +++ b/src/KeyFrame.cpp @@ -37,6 +37,7 @@ //========================================================================================= #include +#include #include #include #include @@ -346,25 +347,57 @@ std::tuple KeyFrame::MakeKeyFrame_Lite(CVD::Image +#include +#include #include #include #include #include - +#include #include #include @@ -88,6 +90,11 @@ int main(int argc, char** argv) LoadStaticParamsClient(); LoadStaticParamsServer(); + dynamic_reconfigure::Server threshold; + dynamic_reconfigure::Server::CallbackType f; + f = boost::bind(&threshold_gui_callback, _1, _2); + threshold.setCallback(f); + try { System sys; From 2f6c577f7f89c54cb631b55b4e45114b37eee158 Mon Sep 17 00:00:00 2001 From: Saba Aflaki Date: Thu, 18 Aug 2016 18:38:49 -0400 Subject: [PATCH 2/5] added threshold gui compile error solved --- .CMakeLists.txt.swp | Bin 16384 -> 0 bytes cfg/thresholdParams.cfg | 2 +- include/mcptam/GuiCallBacks.h | 12 ++++++------ src/KeyFrame.cpp | 6 ++++++ 4 files changed, 13 insertions(+), 7 deletions(-) delete mode 100644 .CMakeLists.txt.swp diff --git a/.CMakeLists.txt.swp b/.CMakeLists.txt.swp deleted file mode 100644 index 607e592ef608a4476ce81c7136d432bfccfeeedb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/cfg/thresholdParams.cfg b/cfg/thresholdParams.cfg index ab898c3..061ffe1 100755 --- a/cfg/thresholdParams.cfg +++ b/cfg/thresholdParams.cfg @@ -6,7 +6,7 @@ from dynamic_reconfigure.parameter_generator_catkin import * gen = ParameterGenerator() # Threshold -thresh = gen.add_group("Threshold", type="collapse", state=False) +thresh = gen.add_group("THRESH", type="collapse", state=False) thresh.add("level_0", int_t, 0, "Level 0", 10, 5, 40) thresh.add("level_1", int_t, 0, "Level 1", 15, 5, 40) thresh.add("level_2", int_t, 0, "Level 2", 15, 5, 40) diff --git a/include/mcptam/GuiCallBacks.h b/include/mcptam/GuiCallBacks.h index 1752139..e2b35f2 100644 --- a/include/mcptam/GuiCallBacks.h +++ b/include/mcptam/GuiCallBacks.h @@ -4,12 +4,12 @@ #include #include -int level0 = 10; -int level1 = 15; -int level2 = 15; -int level3 = 10; - -int threshold_state = 0; +extern int level0; +extern int level1; +extern int level2; +extern int level3; + +extern int threshold_state; void threshold_gui_callback(mcptam::ThresholdConfig &config, uint32_t level); diff --git a/src/KeyFrame.cpp b/src/KeyFrame.cpp index b4cb9a9..893a8c4 100644 --- a/src/KeyFrame.cpp +++ b/src/KeyFrame.cpp @@ -74,6 +74,12 @@ std::string KeyFrame::ssCandidateCriterion = "percent"; bool KeyFrame::sbAdaptiveThresh = true; int Level::snNumPrev = 2; +int level0 = 10; +int level1 = 15; +int level2 = 15; +int level3 = 10; +int threshold_state = 0; + KeyFrame::KeyFrame(MultiKeyFrame* pMKF, std::string name) : mCamName(name), mpParent(pMKF) { mpSBI = NULL; From 2074a00d73521e0cf4841cb7e303161b83316948 Mon Sep 17 00:00:00 2001 From: Saba Aflaki Date: Thu, 18 Aug 2016 18:59:26 -0400 Subject: [PATCH 3/5] update launch file --- launch/mcptam.launch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/launch/mcptam.launch b/launch/mcptam.launch index 3992f0a..c8e8bba 100644 --- a/launch/mcptam.launch +++ b/launch/mcptam.launch @@ -9,6 +9,8 @@ + + From 0684ae218127511122a25e7ea641e327c373c2d7 Mon Sep 17 00:00:00 2001 From: Saba Aflaki Date: Thu, 18 Aug 2016 20:27:32 -0400 Subject: [PATCH 4/5] add print out statements to test --- src/GuiCallBacks.cpp | 2 ++ src/KeyFrame.cpp | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/GuiCallBacks.cpp b/src/GuiCallBacks.cpp index f26bec4..c107715 100644 --- a/src/GuiCallBacks.cpp +++ b/src/GuiCallBacks.cpp @@ -2,6 +2,8 @@ void threshold_gui_callback(mcptam::ThresholdConfig &config, uint32_t level) { + ROS_ERROR_STREAM("threshold gui callback: state " << config.groups.thresh.state); + level0 = config.level_0; level1 = config.level_1; level2 = config.level_2; diff --git a/src/KeyFrame.cpp b/src/KeyFrame.cpp index 893a8c4..05aa5e9 100644 --- a/src/KeyFrame.cpp +++ b/src/KeyFrame.cpp @@ -358,6 +358,7 @@ std::tuple KeyFrame::MakeKeyFrame_Lite(CVD::Image KeyFrame::MakeKeyFrame_Lite(CVD::Image KeyFrame::MakeKeyFrame_Lite(CVD::Image KeyFrame::MakeKeyFrame_Lite(CVD::Image Date: Fri, 19 Aug 2016 13:17:04 -0400 Subject: [PATCH 5/5] dynamic reconfigure for kf threshold working (kf_adaptive_thresh should be set to false in launch file) --- cfg/thresholdParams.cfg | 2 +- launch/mcptam.launch | 2 +- src/GuiCallBacks.cpp | 2 +- src/KeyFrame.cpp | 13 ++++--- src/System.cpp | 1 + testgui.txt | 83 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 95 insertions(+), 8 deletions(-) create mode 100644 testgui.txt diff --git a/cfg/thresholdParams.cfg b/cfg/thresholdParams.cfg index 061ffe1..6b03246 100755 --- a/cfg/thresholdParams.cfg +++ b/cfg/thresholdParams.cfg @@ -6,7 +6,7 @@ from dynamic_reconfigure.parameter_generator_catkin import * gen = ParameterGenerator() # Threshold -thresh = gen.add_group("THRESH", type="collapse", state=False) +thresh = gen.add_group("THRESH", type="collapse", state=True) thresh.add("level_0", int_t, 0, "Level 0", 10, 5, 40) thresh.add("level_1", int_t, 0, "Level 1", 15, 5, 40) thresh.add("level_2", int_t, 0, "Level 2", 15, 5, 40) diff --git a/launch/mcptam.launch b/launch/mcptam.launch index c8e8bba..09265cd 100644 --- a/launch/mcptam.launch +++ b/launch/mcptam.launch @@ -38,7 +38,7 @@ - + diff --git a/src/GuiCallBacks.cpp b/src/GuiCallBacks.cpp index c107715..e45ac19 100644 --- a/src/GuiCallBacks.cpp +++ b/src/GuiCallBacks.cpp @@ -2,7 +2,7 @@ void threshold_gui_callback(mcptam::ThresholdConfig &config, uint32_t level) { - ROS_ERROR_STREAM("threshold gui callback: state " << config.groups.thresh.state); + //ROS_ERROR_STREAM("threshold gui callback: state " << config.groups.thresh.state); level0 = config.level_0; level1 = config.level_1; diff --git a/src/KeyFrame.cpp b/src/KeyFrame.cpp index 05aa5e9..c60548e 100644 --- a/src/KeyFrame.cpp +++ b/src/KeyFrame.cpp @@ -358,12 +358,13 @@ std::tuple KeyFrame::MakeKeyFrame_Lite(CVD::Image KeyFrame::MakeKeyFrame_Lite(CVD::Image KeyFrame::MakeKeyFrame_Lite(CVD::Image KeyFrame::MakeKeyFrame_Lite(CVD::Image. +[ INFO] [1471566210.921640885]:  +[ INFO] [1471566210.921653723]: Based on Parallel Tracking and Mapping (PTAM) software +[ INFO] [1471566210.921666096]: Copyright 2008 Isis Innovation Limited +[ INFO] [1471566210.921678250]:  +[ INFO] [1471566210.953190727]: VideoSourceMulti: Initializing +[ INFO] [1471566210.954122249]: CameraGroupsParser: Adding camera camera1 to group 0 +[ INFO] [1471566210.954155647]: CameraGroupsParser: Adding camera camera2 to group 0 +[ INFO] [1471566210.954173374]: CameraGroupsParser: Adding camera camera3 to group 0 +[ INFO] [1471566210.954197477]: VideoSourceMulti: Creating camera group from camera1 +[ INFO] [1471566210.954229142]: VideoSourceMulti: Creating camera group from camera2 +[ INFO] [1471566210.954245361]: VideoSourceMulti: Creating camera group from camera3 +[ INFO] [1471566210.972145881]: CameraGroupSubscriber: Loading 3 cameras +[ INFO] [1471566211.039596284]: CameraGroupSubscriber: Waiting for camera info from all cameras +... logging to /home/saba/.ros/log/ebdc81b2-65a1-11e6-bd85-e4b3189fb77b/roslaunch-saba-27379.log +Checking log directory for disk usage. This may take awhile. +Press Ctrl-C to interrupt +Done checking log file disk usage. Usage is <1GB. +]2;/home/saba/catkin_ws/src/mcptam/launch/mcptam.launch +started roslaunch server http://saba:44680/ + +SUMMARY +======== + +CLEAR PARAMETERS + * /mcptam/ + +PARAMETERS + * /mcptam/MKF_BUFFER_CAPACITY: 55 + * /mcptam/USE_CPER: False + * /mcptam/adjuster_recent_min_size: 60 + * /mcptam/cam_group_list: [['camera1', 'cam... + * /mcptam/dynamic_sync: True + * /mcptam/get_pose_separately: False + * /mcptam/headless: False + * /mcptam/image_transport: compressed + * /mcptam/kf_adaptive_thresh: True + * /mcptam/kf_distance_mean_diff_fraction: 0.1 + * /mcptam/level_zero_points: True + * /mcptam/mm_init_cov_thresh: 0.01 + * /mcptam/mm_init_point_max_num: 200 + * /mcptam/mm_init_point_mode: both + * /mcptam/mm_max_scaled_mkf_dist: 0.3 + * /mcptam/mm_outlier_multiplier: 1.1 + * /rosdistro: indigo + * /rosversion: 1.11.20 + +NODES + / + mcptam (mcptam/mcptam) + rqt_reconfigure (rqt_reconfigure/rqt_reconfigure) + world_tf (tf/static_transform_publisher) + +ROS_MASTER_URI=http://localhost:11311 +]2;/home/saba/catkin_ws/src/mcptam/launch/mcptam.launch http://localhost:11311 +core service [/rosout] found +process[rqt_reconfigure-1]: started with pid [27398] +process[mcptam-2]: started with pid [27399] +process[world_tf-3]: started with pid [27400] +[world_tf-3] killing on exit +[mcptam-2] killing on exit +[rqt_reconfigure-1] killing on exit +shutting down processing monitor... +... shutting down processing monitor complete +done