From 9c033e13ed0e19e6cce87a622e67ae6c66db3225 Mon Sep 17 00:00:00 2001 From: Nate Koenig Date: Wed, 10 Jun 2020 06:40:54 -0700 Subject: [PATCH 1/6] Build the connection validator test Signed-off-by: Nate Koenig --- subt_ign/CMakeLists.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/subt_ign/CMakeLists.txt b/subt_ign/CMakeLists.txt index 8bb7541e..5745c4b1 100644 --- a/subt_ign/CMakeLists.txt +++ b/subt_ign/CMakeLists.txt @@ -153,6 +153,30 @@ install(TARGETS ${connection_validator_name} LIBRARY DESTINATION lib RUNTIME DESTINATION bin) +add_executable(TEST_ConnectionValidator + src/ConnectionValidator_TEST.cc + src/ConnectionValidator.cc + src/ConnectionValidatorPrivate.cc + src/ConnectionHelper.cc + src/SimpleDOTParser.cc) +target_link_libraries(TEST_ConnectionValidator + PRIVATE + ignition-gazebo${IGN_GAZEBO_VER}::core + ignition-common3::ignition-common3 + ignition-launch1::ignition-launch1 + ignition-math6::ignition-math6 + ignition-msgs4::ignition-msgs4 + ignition-plugin1::loader + ignition-transport7::ignition-transport7 + ${catkin_LIBRARIES} + ${protobuf_lib_name} +) +install(TARGETS TEST_ConnectionValidator + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) + + # Create the libCommsBrokerPlugin.so library. set(comms_broker_plugin_name CommsBrokerPlugin) add_library(${comms_broker_plugin_name} From f566e0169005dbdda96f0366b95cd4f9b69fa783 Mon Sep 17 00:00:00 2001 From: Nate Koenig Date: Wed, 10 Jun 2020 08:35:24 -0700 Subject: [PATCH 2/6] Improve debug message Signed-off-by: Nate Koenig --- subt_ign/src/ConnectionValidatorPrivate.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/subt_ign/src/ConnectionValidatorPrivate.cc b/subt_ign/src/ConnectionValidatorPrivate.cc index 5cf2bf87..68ca88d2 100644 --- a/subt_ign/src/ConnectionValidatorPrivate.cc +++ b/subt_ign/src/ConnectionValidatorPrivate.cc @@ -337,8 +337,12 @@ void ConnectionValidatorPrivate::PopulateConnections() if (actual + found_caps != data) { - igndbg << name << " " << actualConnections[name] << "/" << data << - " (" << this->vertData[name].tileType << ")" << std::endl; + igndbg << "Actual connections[" << actualConnections[name] + << "] do not match exected connections[" << data + << "] for tile name[" << name << "] with type[" + << this->vertData[name].tileType << "]. " + << "Probably missing an end cap or connecting tile." + << std::endl; } } } From c6bfe3e81e5a307a713e31abc45f2ef0a3d1dd35 Mon Sep 17 00:00:00 2001 From: Nate Koenig Date: Wed, 10 Jun 2020 08:41:02 -0700 Subject: [PATCH 3/6] Removed probably Signed-off-by: Nate Koenig --- subt_ign/src/ConnectionValidatorPrivate.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subt_ign/src/ConnectionValidatorPrivate.cc b/subt_ign/src/ConnectionValidatorPrivate.cc index 68ca88d2..718b80c0 100644 --- a/subt_ign/src/ConnectionValidatorPrivate.cc +++ b/subt_ign/src/ConnectionValidatorPrivate.cc @@ -341,7 +341,7 @@ void ConnectionValidatorPrivate::PopulateConnections() << "] do not match exected connections[" << data << "] for tile name[" << name << "] with type[" << this->vertData[name].tileType << "]. " - << "Probably missing an end cap or connecting tile." + << "Missing an end cap or connecting tile." << std::endl; } } From 23c672f571d8300d2e2364b14418f5a37f01789c Mon Sep 17 00:00:00 2001 From: Nate Koenig Date: Wed, 10 Jun 2020 08:50:29 -0700 Subject: [PATCH 4/6] Make connection validator an executable Signed-off-by: Nate Koenig --- subt_ign/CMakeLists.txt | 8 ++++---- ...onnectionValidator_TEST.cc => validate_connections.cc} | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) rename subt_ign/src/{ConnectionValidator_TEST.cc => validate_connections.cc} (87%) diff --git a/subt_ign/CMakeLists.txt b/subt_ign/CMakeLists.txt index 5745c4b1..bc14702b 100644 --- a/subt_ign/CMakeLists.txt +++ b/subt_ign/CMakeLists.txt @@ -153,13 +153,13 @@ install(TARGETS ${connection_validator_name} LIBRARY DESTINATION lib RUNTIME DESTINATION bin) -add_executable(TEST_ConnectionValidator - src/ConnectionValidator_TEST.cc +add_executable(validate_connections + src/validate_connections.cc src/ConnectionValidator.cc src/ConnectionValidatorPrivate.cc src/ConnectionHelper.cc src/SimpleDOTParser.cc) -target_link_libraries(TEST_ConnectionValidator +target_link_libraries(validate_connections PRIVATE ignition-gazebo${IGN_GAZEBO_VER}::core ignition-common3::ignition-common3 @@ -171,7 +171,7 @@ target_link_libraries(TEST_ConnectionValidator ${catkin_LIBRARIES} ${protobuf_lib_name} ) -install(TARGETS TEST_ConnectionValidator +install(TARGETS validate_connections ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin) diff --git a/subt_ign/src/ConnectionValidator_TEST.cc b/subt_ign/src/validate_connections.cc similarity index 87% rename from subt_ign/src/ConnectionValidator_TEST.cc rename to subt_ign/src/validate_connections.cc index d52003a6..582cc817 100644 --- a/subt_ign/src/ConnectionValidator_TEST.cc +++ b/subt_ign/src/validate_connections.cc @@ -15,8 +15,8 @@ * */ -/// Helper test to evaluate graph population without starting gazebo. -/// Call with TEST_connection_validator +/// Helper to evaluate graph population without starting gazebo. +/// Call with `validate_connections` #include "ConnectionValidatorPrivate.hh" #include From 40b52134d04b03dfca865281f0683e719ac45113 Mon Sep 17 00:00:00 2001 From: Nate Koenig Date: Wed, 10 Jun 2020 09:26:16 -0700 Subject: [PATCH 5/6] Update subt_ign/src/ConnectionValidatorPrivate.cc Co-authored-by: Michael Carroll --- subt_ign/src/ConnectionValidatorPrivate.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subt_ign/src/ConnectionValidatorPrivate.cc b/subt_ign/src/ConnectionValidatorPrivate.cc index 718b80c0..3f0a2ff8 100644 --- a/subt_ign/src/ConnectionValidatorPrivate.cc +++ b/subt_ign/src/ConnectionValidatorPrivate.cc @@ -338,7 +338,7 @@ void ConnectionValidatorPrivate::PopulateConnections() if (actual + found_caps != data) { igndbg << "Actual connections[" << actualConnections[name] - << "] do not match exected connections[" << data + << "] do not match expected connections[" << data << "] for tile name[" << name << "] with type[" << this->vertData[name].tileType << "]. " << "Missing an end cap or connecting tile." From a86362a3e45c5f2ec3fe9b16938b9436a2cdb6ed Mon Sep 17 00:00:00 2001 From: Michael Carroll Date: Wed, 10 Jun 2020 11:55:40 -0500 Subject: [PATCH 6/6] Use a wider cap tolerance as a fallback This is because some of the cave caps have a non-zero connection point, but we do not propagate enough information to be able to compute the true connection point at this time. Signed-off-by: Michael Carroll --- subt_ign/src/ConnectionValidatorPrivate.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/subt_ign/src/ConnectionValidatorPrivate.cc b/subt_ign/src/ConnectionValidatorPrivate.cc index 3f0a2ff8..daa7e4ce 100644 --- a/subt_ign/src/ConnectionValidatorPrivate.cc +++ b/subt_ign/src/ConnectionValidatorPrivate.cc @@ -327,11 +327,16 @@ void ConnectionValidatorPrivate::PopulateConnections() { for (auto cap: caps) { - if (point.Equal(cap, 1)) + if (point.Equal(cap, 1.0)) { igndbg << "Found cap!" << std::endl; found_caps += 1; } + else if (point.Equal(cap, 12.6)) + { + igndbg << "Found cap (with expanded tolerance)" << std::endl; + found_caps += 1; + } } }