mit-spark / hydra Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 2-Clause "Simplified" License
License: BSD 2-Clause "Simplified" License
Hi,
I am an undergraduate at CUHK, working on my summer research. I am really impressed by Hydra's excellent outcome and novel ideas.
But when I am trying to re-implement the code, I faced an unforeseen bug. I followed the instructions in readme file. After building it, I opened roscore
and tried to run roslaunch hydra_dsg_builder uhumans2_incremental_dsg.launch start_visualizer:=true
. It seemed that [incremental_dsg_builder_node-12]
occurs the problem. Rviz flashed once and disappeared.
The error message was like this:
[ INFO] [1657355430.505268029]: Initializing pose graph visualizer
[ WARN] [1657355430.507929902]: PoseGraphPublisher waiting for subscriber...
[ INFO] [1657355430.564287765]: rviz version 1.14.14
[ INFO] [1657355430.564318708]: compiled against Qt version 5.12.8
[ INFO] [1657355430.564326571]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1657355430.579810715]: Forcing OpenGl version 0.
[ INFO] [1657355430.736187684]: Stereo is NOT SUPPORTED
[ INFO] [1657355430.736225276]: OpenGL device: Mesa Intel(R) UHD Graphics 630 (CFL GT2)
[ INFO] [1657355430.736242671]: OpenGl version: 4.6 (GLSL 4.6) limited to GLSL 1.4 on Mesa system.
================================================================================
REQUIRED process [incremental_dsg_builder_node-12] has died!
process has died [pid 32014, exit code -11, cmd /home/haostarrr/catkin_ws/devel/lib/hydra_dsg_builder/hydra_dsg_builder_incremental_node --minloglevel=3 -v=0 ~voxblox_mesh:=/hydra_topology_node/active_mesh ~active_places:=/hydra_topology_node/active_layer ~/bow_vectors:=/kimera_vio_ros/bow_query frame_registration:=/kimera_vio_ros/kimera_vio_ros_node/register_lcd_frames __name:=incremental_dsg_builder_node __log:=/home/haostarrr/.ros/log/0c6383cc-ff61-11ec-8540-f5c17cd13c52/incremental_dsg_builder_node-12.log].
log file: /home/haostarrr/.ros/log/0c6383cc-ff61-11ec-8540-f5c17cd13c52/incremental_dsg_builder_node-12*.log
Initiating shutdown!
================================================================================
[incremental_dsg_builder_node/pgmo/posegraph_viewer-14] killing on exit
[pose_graph_publisher_node-13] killing on exit
[incremental_dsg_builder_node-12] killing on exit
[rviz-11] killing on exit
[hydra_visualizer_node-10] killing on exit
[bag_static_tf_4-5] killing on exit
[cloudify-8] killing on exit
[nodelet_manager-7] killing on exit
[bag_static_tf_5-6] killing on exit
[hydra_topology_node-9] killing on exit
[bag_static_tf_3-4] killing on exit
[bag_static_tf_2-3] killing on exit
[bag_static_tf_1-2] killing on exit
timing stats: elapsed: 0 [s] (0 +/- 0 [s] with 0 measurements)
mesh timing stats: elapsed: 0 [s] (0 +/- 0 [s] with 0 measurements)
terminate called after throwing an instance of 'boost::wrapexcept<boost::lock_error>'
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
[bag_static_tf_0-1] killing on exit
QFileSystemWatcher::removePaths: list is empty
QFileSystemWatcher::removePaths: list is empty
shutting down processing monitor...
... shutting down processing monitor complete
done
I am using Ubuntu 20.04 and ROS Noetic. I am not sure whether it is my ROS's problem. I run ORB-SLAM3 last week (it may prove that my ROS can work?).
My .bashrc
setting is like:
source /opt/ros/noetic/setup.bash
# For ORB-SLAM3
# export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/haostarrr/ORB_SLAM3_detailed_comments/Examples/ROS/ORB_SLAM3
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/haostarrr/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3
# For Hydra catkin_ws
source /home/haostarrr/catkin_ws/devel/setup.bash
Do you have any idea about this?
Thank you.
While following the installing instructions on the main repo I got a building error while using catkin build
the log is in the attached txt file
build.txt
additionally when running rosdep install --from-paths . --ignore-src -r -y i was faced with an error
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
kimera_pgmo_ros: Cannot locate rosdep definition for [voxblox_msgs]
Continuing to install resolvable dependencies...
#All required rosdeps installed successfully
Please help... Thank you
Hi. Thank you for releasing a great work :) I'm now enjoying your work.
Actually, I have some questions about the loop closure detection and registration solvers.
I found that there are two different solvers for the registration: DsgAgentSolver
and DsgTeaserSolver
. I guess that both solvers are used to get the registration_result
when the function registerAndVerfiy()
is running. Based on the released code, I could find how DsgTeaserSolver::solve()
function works. (As stated in the paper, it uses teaser::RobustRegistrationSolver
to get the valid result and correspondences in registerDsgLayer()
function.) However, I wonder how DsgAgentSolver::solve()
function works because I couldn't find the corresponding service client function. Does the service response the registration of visual features based on the standard RANSAC-based geometric verification, as you stated in the paper?
Also, I think that the registration service is related to kimera_vio_ros since the service frame_registration
is remapped to /kimera_vio_ros/kimera_vio_ros_node/register_lcd_frames
in dsg_builder.launch
file. ( I guess this is the unreleased code of kimera-vio what you stated in here ). If you know whether the corresponding codes will be released in kimera_vio_ros or not, please let me know.
- Enable scene graph loop closures: This will require no development on your part, but is the least tested of the options (we haven't had much of a reason to run the scene graph loop closure pipeline without BoW descriptors). As long as you have the pose_graph_publisher_node operating (which use_gt_frame:=true will enable), then all you have to do is set enable_dsg_lcd:=true and internal loop closure detection and registration will be enabled. You may also want to set min_glog_level:=0 and verbosity:=2 to see the current status for the internal loop closures.
lcd_queue_
is empty, I guess that loop closure detection would not be performed because it stops at the line 158 in here. ( I think lcd_queue_
will be always empty if bow vectors are not received. ) I wonder is it possible to enable scene graph loop closure without bow vectors.Thank you for releasing your great work once more!
Hi Nathan
We met the same question as issue #18, and have successfully solved the problem with the following command:
roslaunch hydra_dsg_builder uhumans2_incremental_dsg.launch start_visualizer:=true semantic_map_file:=tesse_multiscene_archviz1_segmentation_mapping.csv typology_file:=uhmans2_apartment_typology.yaml
It works well for office, archviz(apartment) and underground(subway), but it seems that the corresponding typology file of "tesse_multiscene_neighborhood1_segmentation_mapping.csv" is missing in the folder "hydra_dsg_builder/config/uhumans2/".
Besides, the mesh of neighborhood seems to be limited to 2d ground plane. We wonder if it works well?
Can you help us with that?
Thanks!
I am very interested in your project, but I am just a beginner and cannot run through the program according to readme. Could you please answer this question for me?
vcs import . < hydra/install/hydra.rosinstall
bash: hydra/install/hydra.rosinstall: There is no file or directory for that
Hi,
I'm wondering if there is a ROS topic that publishes the current scene graph?
Thank you!
Hi,
I tried to build Hydra as it written in the Readme, and, while running catkin build
, faced with the following compilation errors:
Addition of set(CMAKE_CXX_STANDARD 17)
into CMakeLists.txt
files in GTSAM and Kimera-RPGO did not help.
My system configuration: OS Ubuntu 20.04 LTS, ROS Noetic, GCC compiler version 9.4.0.
Could you say, which is the best way to fix these CMake errors?
What are the recommended best-case system requirements for running Hydra on map sizes comparable to uHumans datasets with VIO enabled (such as Kimera-VIO)? Information like CPU, storage access speed, RAM and GPU in case we want to run semantic segmentation live.
In addition, what difference would running the above on bare metal, container or virtual machine make?
Thanks I advance!
Hi Nathan,
We have corresponded with you once or twice over the past couple of months. We are now in the final stages of implementing Hydra with our own equipment in our laboratory in Zürich. Everything is coming along well, and we're currently addressing the last few bugs we've encountered. There is one bug, however, that we're having trouble understanding. It first appeared during the simulation stage in Gazebo, and is still occurring now as we operate the robot in real-world conditions. This bug causes the robot's position to become entirely skewed during angular movement. A simple rotation is depicted on the graph as a large circle, giving the impression that the robot has covered a significant distance, as illustrated in the picture posted below. Do you have any insights into why this could be happening? Please bear in mind that we are currently not using Kimera-VIO, but are solely depending on the tf topics.
Thank you very much in advance for your assistance.
Kind regards,
Michael Dengl & Lilla Goldmann
Hi @nathanhhughes! Is there a way to track spatial information for other dynamic objects as was shown in the Kimera paper? For example, how can I track human trajectories in the uHumans dataset? In the resultant dsg.json, I can only see nodes with trajectory related to the agent mapping the scene.
Thank you so much for your attention and participation.
Hi Hydra developers,
This is a very exciting work!!! I am curious about the room classification method you are using in Hydra, but I am not sure which part of the code is is on it. Can you please send me the link to that part? Thanks!!!
Hello, I was trying to run the code in my ubuntu-20.04 in ROS neotic but I got the following errors when running
rosdep install --from-paths . --ignore-src -r -y
Running above gives me the following error:
ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: kimera_semantics_ros: Cannot locate rosdep definition for [disparity_image_proc] minkindr_python: Cannot locate rosdep definition for [numpy_eigen] kimera_pgmo: Cannot locate rosdep definition for [Eigen] Continuing to install resolvable dependencies... #All required rosdeps installed successfully
Can you help me in solving this?
Thank you in advance!
Very interesting work. I tried to test this out using the osrf/ros:noetic-desktop
docker image. After installing git, the mentioned dependencies and setting up the workspace according to the instructions, when trying to build I ran into the following error:
Protobuf compiler version doesn't match library version 3.6.1
in voxblox.
Searching around a bit, I found the error message was incomplete due to not having protobuf compiler installed.
After installing sudo apt install protobuf-compiler
, cleaning up the build and rebuilding everything succeeded.
Hi, one of the critical contribution of this work is about the loop-closures, but the current release is missing the visual loop-closure part. May I ask do you plan to release it so that other works could benchmark the real performance of this work?
Hi,
What is the best tool to visualize the dsg.json file?
I am trying to compile Hydra on Ubuntu 20.04 with ROS Noetic, using the instructions at https://github.com/MIT-SPARK/Hydra using catkin.
I had a compilation problem for Kimera-RPGO, which was reported and fix suggested at MIT-SPARK/Kimera-RPGO#86. I implemented that fix by changing the Kimera-RPGO version to be fix/gtsam_boost_removal in /root/catkin_ws/src/hydra/install/hydr.rosinstall before running
vcs import . < hydra/install/hydra.rosinstall
That fixed the Kimera-RPGO error, but now I get the following error:
Errors << kimera_pgmo:make /root/catkin_ws/logs/kimera_pgmo/build.make.000.log
In file included from /root/catkin_ws/devel/include/gtsam/base/Matrix.h:28,
from /root/catkin_ws/devel/include/gtsam/base/Manifold.h:22,
from /root/catkin_ws/devel/include/gtsam/geometry/BearingRange.h:21,
from /root/catkin_ws/devel/include/gtsam/geometry/Pose3.h:22,
from /root/catkin_ws/src/kimera_pgmo/include/kimera_pgmo/utils/CommonFunctions.h:12,
from /root/catkin_ws/src/kimera_pgmo/src/compression/MeshCompression.cpp:11:
/root/catkin_ws/devel/include/gtsam/base/Vector.h:75:52: error: static assertion failed: Error: GTSAM was built against a different version of Eigen
75 | GTSAM_EIGEN_VERSION_WORLD==EIGEN_WORLD_VERSION &&
| ^
Hi, I was wondering if you have support for multi-session (e.g. re-load the saved 3D scene graph in the output folder to keep building on it) and also multi-agent (e.g. two agents can be running at the same time, contributing to the same 3D scene graph)? I ran the code and read through the code and paper and could not find information on that. If not, is it something that you plan/do not plan to support? Thank you!
When I execute "catkin build hydra", I get:
Errors << hydra:check /home/ty/桌面/hy/Hydra/catkin_ws/logs/hydra/build.check.005.log
CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:166 (message):
catkin_package() DEPENDS on 'spark_dsg' but neither
'spark_dsg_INCLUDE_DIRS' nor 'spark_dsg_LIBRARIES' is defined.
Call Stack (most recent call first):
/opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)
CMakeLists.txt:57 (catkin_package)
You have called ADD_LIBRARY for library hydra without any source files. This typically indicates a problem with your CMakeLists.txt file
CMake Error at /home/ty/桌面/hy/Hydra/catkin_ws/src/hydra/CMakeLists.txt:68 (add_library):
Target "hydra" links to target "teaserpp::teaser_registration" but the
target was not found. Perhaps a find_package() call is missing for an
IMPORTED target, or an ALIAS target is missing?
CMake Error at /home/ty/桌面/hy/Hydra/catkin_ws/src/hydra/CMakeLists.txt:68 (add_library):
Target "hydra" links to target "spark_dsg::spark_dsg" but the target was
not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
CMake Error at /opt/ros/melodic/share/catkin/cmake/test/gtest.cmake:180 (add_executable):
Target "test_hydra" links to target "teaserpp::teaser_registration" but the
target was not found. Perhaps a find_package() call is missing for an
IMPORTED target, or an ALIAS target is missing?
Call Stack (most recent call first):
/opt/ros/melodic/share/catkin/cmake/test/gtest.cmake:89 (_catkin_add_executable_with_google_test)
/opt/ros/melodic/share/catkin/cmake/test/gtest.cmake:37 (_catkin_add_google_test)
tests/CMakeLists.txt:1 (catkin_add_gtest)
CMake Error at /opt/ros/melodic/share/catkin/cmake/test/gtest.cmake:180 (add_executable):
Target "test_hydra" links to target "spark_dsg::spark_dsg" but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
Call Stack (most recent call first):
/opt/ros/melodic/share/catkin/cmake/test/gtest.cmake:89 (_catkin_add_executable_with_google_test)
/opt/ros/melodic/share/catkin/cmake/test/gtest.cmake:37 (_catkin_add_google_test)
tests/CMakeLists.txt:1 (catkin_add_gtest)
make: *** [cmake_check_build_system] Error 1
cd /home/ty/桌面/hy/Hydra/catkin_ws/build/hydra; catkin build --get-env hydra | catkin env -si /usr/bin/make cmake_check_build_system; cd -
I have checked the CMakeLists.txt file and I think there is nothing wrong with it.
Can you help me deduce what's wrong there?
This is my first time trying to reproduce the code, thanks for answering my question.
Hello Nathan,
Thanks for the great work on Hydra!
I've noticed that there exists a launch file and config for the Matterport3d dataset. The corresponding rViz config shows the subscription to the habitat data (e.g./habitat/agent_0/pointcloud
)
Is there existing work on exporting data from habitat to Hydra?
Hi,
I would like to know if the vio_overlay.rosinstall is only available for mit users or for the public too? As I have tried to run the script but it says permission denied. Thank you.
I tried adding a flann header or specifying a namespace, but nothing could fix the compilation error. Please help me, thank you.
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:123:55: error: expected primary-expression before ‘float’
flann_index_.reset (new FLANNIndex (::flann::Matrix (cloud_.get (),
^~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:126:48: error: ‘KDTreeSingleIndexParams’ is not a member of ‘flann’
::flann::KDTreeSingleIndexParams (15))); // max 15 points/leaf
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:126:48: note: suggested alternative:
In file included from /usr/local/include/opencv2/flann/all_indices.h:37:0,
from /usr/local/include/opencv2/flann/flann_base.hpp:43,
from /usr/local/include/opencv2/flann.hpp:48,
from /usr/local/include/opencv2/flann/flann.hpp:48,
from /usr/include/pcl-1.8/pcl/kdtree/flann.h:50,
from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:45,
from /usr/include/pcl-1.8/pcl/search/kdtree.h:44,
from /usr/include/pcl-1.8/pcl/search/pcl_search.h:44,
from /usr/include/pcl-1.8/pcl/features/impl/feature.hpp:44,
from /usr/include/pcl-1.8/pcl/features/feature.h:498,
from /usr/include/pcl-1.8/pcl/features/moment_of_inertia_estimation.h:45,
from /home/username/catkin_ws/devel/include/spark_dsg/bounding_box.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/node_attributes.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/scene_graph_node.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/base_layer.h:38,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph_layer.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_types.h:2,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_visualizer_plugin.h:37,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/local/include/opencv2/flann/kdtree_single_index.h:51:8: note: ‘cvflann::KDTreeSingleIndexParams’
struct KDTreeSingleIndexParams : public IndexParams
^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:238:0,
from /usr/include/pcl-1.8/pcl/search/kdtree.h:44,
from /usr/include/pcl-1.8/pcl/search/pcl_search.h:44,
from /usr/include/pcl-1.8/pcl/features/impl/feature.hpp:44,
from /usr/include/pcl-1.8/pcl/features/feature.h:498,
from /usr/include/pcl-1.8/pcl/features/moment_of_inertia_estimation.h:45,
from /home/username/catkin_ws/devel/include/spark_dsg/bounding_box.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/node_attributes.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/scene_graph_node.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/base_layer.h:38,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph_layer.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_types.h:2,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_visualizer_plugin.h:37,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp: In member function ‘int pcl::KdTreeFLANN<PointT, Dist>::nearestKSearch(const PointT&, int, std::vector&, std::vector&) const’:
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:147:12: error: ‘Matrix’ is not a member of ‘flann’
::flann::Matrix k_indices_mat (&k_indices[0], 1, k);
^~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:147:12: note: suggested alternatives:
In file included from /usr/include/eigen3/Eigen/Core:346:0,
from /home/username/catkin_ws/devel/include/spark_dsg/scene_graph_types.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/node_symbol.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/edge_container.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/base_layer.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph_layer.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h:74:9: note: ‘Eigen::Matrix’
class Matrix;
^~~~~~
In file included from /usr/local/include/opencv2/flann/flann_base.hpp:39:0,
from /usr/local/include/opencv2/flann.hpp:48,
from /usr/local/include/opencv2/flann/flann.hpp:48,
from /usr/include/pcl-1.8/pcl/kdtree/flann.h:50,
from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:45,
fr from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/local/include/opencv2/flann/matrix.h:46:7: note: ‘cvflann::Matrix’
class Matrix
^~~~~~
In file included from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:238:0,
from /usr/include/pcl-1.8/pcl/search/kdtree.h:44,
/home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:147:19: error: expected primary-expression before ‘int’
::flann::Matrix k_indices_mat (&k_indices[0], 1, k);
^~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:148:12: error: ‘Matrix’ is not a member of ‘flann’
::flann::Matrix k_distances_mat (&k_distances[0], 1, k);
^~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:148:12: note: suggested alternatives:
In file included from /usr/include/eigen3/Eigen/Core:346:0,
from /home/username/catkin_ws/devel/include/spark_dsg/scene_graph_types.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/node_symbol.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/edge_container.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/base_layer.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph_layer.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_types.h:2,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_visualizer_plugin.h:37,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h:74:9: note: ‘Eigen::Matrix’
class Matrix;
^~~~~~
In file included from /usr/local/include/opencv2/flann/flann_base.hpp:39:0,
from /usr/local/include/opencv2/flann.hpp:48,
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:148:19: error: expected primary-expression before ‘float’
::flann::Matrix k_distances_mat (&k_distances[0], 1, k);
^~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:150:37: error: ‘Matrix’ is not a member of ‘flann’
flann_index_->knnSearch (::flann::Matrix (&query[0], 1, dim_),
^~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:150:44: error: expected primary-expression before ‘float’
flann_index_->knnSearch (::flann::Matrix (&query[0], 1, dim_),
^~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:151:28: error: ‘k_indices_mat’ was not declared in this scope
k_indices_mat, k_distances_mat,
^~~~~~~~~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:151:28: note: suggested alternative: ‘k_indices’
k_indices_mat, k_distances_mat,
^~~~~~~~~~~~~
k_indices
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:151:43: error: ‘k_distances_mat’ was not declared in this scope
k_indices_mat, k_distances_mat,
^~~~~~~~~~~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:151:43: note: suggested alternative: ‘k_distances’
k_indices_mat, k_distances_mat,
^~~~~~~~~~~~~~~
k_distances
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp: In member function ‘int pcl::KdTreeFLANN<PointT, Dist>::radiusSearch(const PointT&, double, std::vector&, std::vector&, unsigned int) const’:
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:184:25: error: ‘params’ has incomplete type
::flann::SearchParams params (param_radius_);
`
Thanks for your great work, as hydra takes kimera-vio as odometry input. I am currently working on monocular camera odometry inputs and want to use other odometry input like vins-fusion, orb-slam3. What are the information does it required for the odometry to make hydra run. Thank you
Hello I am trying to do catkin build the Hydra package,
it throws me an error while building the hydra_ros package
error: static assertion failed: Error: GTSAM was built against a different version of Eigen
75 | GTSAM_EIGEN_VERSION_WORLD==EIGEN_WORLD_VERSION &&
I tried MIT-SPARK/Kimera-VIO-ROS#12 fixing the issue but it didn't help
I am using ros1 and ubuntu 20.04
Regarding setting up a 2D semantic segmentation for use with Hydra (and Kimera-Semantics) that you wrote about here, have you released any code related to this? Or do you have any other pointers for setting it up? I am trying to do 2D semantic segmentation of recorded data from an intel realsense d435i device.
Thank you!
Hi. I am trying to develop a non Ros version of Hydra. What do you suggest as the best approach to building a non ROS version?
Why did you choose to use ROS for Hydra ?
Adding information to the readme (and an issue template) about how to obtain backtraces and other useful debug information when users encounter an issue would be helpful. See #6 for a first draft.
Great work ! I notice that ur latest work Hydra-multi has been published in IROS and i wonder if u prefer to open source!
Hi. I am really impressed by your work and I am trying to run the Quickstart section. I navigated to catkin_ws. I then sourced the path to source /home/adam/catkin_ws/devel/.private/catkin_tools_prebuild/setup.bash.
I then run:
roslaunch hydra_dsg_builder uhumans2_incremental_dsg.launch start_visualizer:=true
but get response:
RLException: [uhumans2_incremental_dsg.launch] is neither a launch file in package [hydra_dsg_builder] nor is [hydra_dsg_builder] a launch file name
Hi @nathanhhughes,
Thanks for the great work with hydra!
I have questions arising from the recent interest our robotics laboratory is having in the toolkit:
The latter would be crucial IMO for enabling efficient and complex high-level planning of heterogeneous robots in large-scale indoor environments following the foundation of works like sayplan or similar.
I am curious about your view on this because at our laboratory, drawing inspiration from hydra, we have been working on extending and improving a conceptgraphs-inspired 3D scene graph generation pipeline, combining some of your geometric approaches for tree decomposition and iterative scene graph construction, registration and optimization, with more and more efficient LMMs (a fine-tuned cogVLM ONNX export) for generating more informative object descriptors and estimating room descriptors. As a workaround on the first two bullet points we are filtering out objects the LMM deemes as dynamic from the global scene graph and are keeping a somewhat informative room descriptor aggregating its objects descriptors, enabling efficient high-level cross-room planning with LLMs using the partial knowledge of what objects characterize any given room and how, without bothering knowing in advance the specific object poses in the graph, especially for those that might be easily moved around. The same process being repeated at a higher-level in the hierarchy, aggregating room descriptors into floor plan descriptors. A small, local and densely accurate scene graph is being created in real-time for any given room once a robot enters it or requires access to it.
Of course, we are at a much more embryonic stage, and not at real-time runtime (yet not too far away either), but I was interested in your view on these (arguably challenging) topics, and on how they're being handled in hydra or if they are currently being addressed in the research roadmap behind hydra.
Thanks in advance for taking the time to answer this.
Hi! I was looking a bit closer into the semantic image from the office rosbag and what labels come out from Hydra, and it looks like the label and color mapping is not corresponding to the file I thought was creating this mapping.
My understanding was that the color to label mapping was set by this file https://github.com/MIT-SPARK/Kimera-Semantics/blob/master/kimera_semantics_ros/cfg/tesse_multiscene_office1_segmentation_mapping.csv as its the one defined in the launch file for uhumans2_incremental_dsg, but when I check the csv colors and respective labels, only chairs and couches seem to have the correct assignment (green -> 5). Other objects like LCD (should be red -> 10 in csv, but its blue in the semantic image), plants (should be blue -> 13 in csv, but its orange in the semantic image), water dispenser (should be dark red -> 18 in csv, but its purple in the semantic image). See snapshot below. However, all the id numbers seem to be correct. Is there some other remapping happening, am I looking at the wrong csv file, or am I confusing something? :)
Thanks for the help!
Hi Nathan
I compiled the project successfully and run it with uHuman2_apartment_s1_00h.bag. I strictly followed the instruction and have not changed any parameters.
Here are the output after roslaunch hydra_dsg_builder uhumans2_incremental_dsg.launch start_visualizer:=true
,
process[pose_graph_publisher_node-14]: started with pid [5732]
process[incremental_dsg_builder_node/pgmo/posegraph_viewer-15]: started with pid [5737]
[ WARN] [1664427109.764515173]: PoseGraphPublisher waiting for subscriber...
[ INFO] [1664427109.765233956]: Initializing pose graph visualizer
[ INFO] [1664427109.805238745]: rviz version 1.13.18
[ INFO] [1664427109.805274556]: compiled against Qt version 5.9.5
[ INFO] [1664427109.805285194]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1664427109.817109855]: Forcing OpenGl version 0.
XmbTextListToTextProperty result code -2
XmbTextListToTextProperty result code -2
[ INFO] [1664427109.912558213]: Logging backend graph to /home/lch/mit_ws/catkin_ws/src/Hydra/hydra_dsg_builder/output/uhumans2/office/backend
[ INFO] [1664427109.918640681]: Logging output to: /home/lch/mit_ws/catkin_ws/src/Hydra/hydra_dsg_builder/output/uhumans2/office/pgmo
[ WARN] [1664427109.920612979]: MeshFrontend: Skipping callback registration
[ INFO] [1664427109.920758069]: Initialized MeshFrontend.
[ INFO] [1664427109.920776062]: Logging frontend graph to /home/lch/mit_ws/catkin_ws/src/Hydra/hydra_dsg_builder/output/uhumans2/office/frontend
[ WARN] [1664427110.169361286]: PoseGraphPublisher waiting for transform: left_cam -> world
[ INFO] [1664427110.297691937]: Stereo is NOT SUPPORTED
[ INFO] [1664427110.297737212]: OpenGL device: GeForce GTX 1080 Ti/PCIe/SSE2
[ INFO] [1664427110.297752060]: OpenGl version: 4.6 (GLSL 4.6).
XmbTextListToTextProperty result code -2
XmbTextListToTextProperty result code -2
[ WARN] [1664427114.466186140, 3.530520571]: using timer!
XmbTextListToTextProperty result code -2
[ INFO] [1664427116.238928121, 4.416039183]: New prefix s detected when adding new mesh edges and nodes.
[ INFO] [1664427116.339645156, 4.466376633]: DeformationGraph: Re-calculating all mesh vertices in deformMesh.
[ERROR] [1664427116.339818027, 4.466376633]: Not enough valid control points in octree to interpolate point.
[ERROR] [1664427116.339883765, 4.466376633]: Not enough valid control points in octree to interpolate point.
*** Aborted at 1664427116 (unix time) try "date -d @1664427116" if you are using GNU date ***
PC: @ 0x0 (unknown)
*** SIGSEGV (@0x2d) received by PID 5730 (TID 0x7f8c5dffb700) from PID 45; stack trace: ***
@ 0x7f8c8e064040 (unknown)
@ 0x7f8c8e0bca6d cfree
@ 0x7f8c8d47818a pcl::octree::OctreeBase<>::deleteBranchChild()
@ 0x7f8c8d4781b8 pcl::octree::OctreeBase<>::deleteBranchChild()
@ 0x7f8c8d4781f0 pcl::octree::OctreeBase<>::~OctreeBase()
@ 0x7f8c9036a860 boost::detail::sp_counted_impl_p<>::dispose()
@ 0x55785e3ccf7a boost::detail::sp_counted_base::release()
@ 0x7f8c903a5c18 kimera_pgmo::deformPointsWithTimeCheck<>()
@ 0x7f8c9039e0ef kimera_pgmo::DeformationGraph::deformMesh()
@ 0x7f8c9039e7f9 kimera_pgmo::DeformationGraph::deformMesh()
@ 0x7f8c90c514d0 hydra::incremental::DsgBackend::updateDsgMesh()
@ 0x7f8c90c579ea hydra::incremental::DsgBackend::runPgmo()
@ 0x7f8c8e6eb6df (unknown)
@ 0x7f8c8bc946db start_thread
@ 0x7f8c8e14671f clone
================================================================================REQUIRED process [incremental_dsg_builder_node-13] has died!
process has died [pid 5730, exit code -11, cmd /home/lch/mit_ws/catkin_ws/devel/lib/hydra_dsg_builder/hydra_dsg_builder_incremental_node --minloglevel=3 -v=3 ~voxblox_mesh:=/hydra_topology_node/active_mesh ~active_places:=/hydra_topology_node/active_layer ~/bow_vectors:=/kimera_vio_ros/bow_query frame_registration:=/kimera_vio_ros/kimera_vio_ros_node/register_lcd_frames __name:=incremental_dsg_builder_node __log:=/home/lch/.ros/log/6d41692a-3fb2-11ed-ad53-1831bfbc9e5b/incremental_dsg_builder_node-13.log].
log file: /home/lch/.ros/log/6d41692a-3fb2-11ed-ad53-1831bfbc9e5b/incremental_dsg_builder_node-13*.log
Initiating shutdown!
================================================================================
[incremental_dsg_builder_node/pgmo/posegraph_viewer-15] killing on exit
The program crashed around 2 seconds after the bag has been run. Not sure is it because the rostime in the bag is significantly different from my current rostime.
To debug, I comment out the launch of hydra_topology/hydra_topology.launch
, as I want to confirm the frontend scene graph has been created correctly. Then, the program does not crash anymore and I can see the input sensor data: segmentation images, depth, semantic point cloud. But I cannot see the reconstructed semantic meshes, not to mention object and place markers. An rviz screenshot can be found here,
It looks like the scene graph cannot be constructed. It should be a front-end problem.
Can you help me with that?
Thanks
First, thank you for wonderful work.
I have a similar issue adapting uHuman2_apartment or subway dataset.
When adapting apartment data, i exactly followed the instruction of uHumans2_office_s1_00h version and the mapping result was similar with office case except meshed map.
I thinked some parameters in uhumans2_incremental_dsg.launch
should be changed for other datasets and convert below arguments to appropriate one in kimera_semantics_ros/cfg
folder.
Hydra/hydra_topology/launch/hydra_topology_uhumans2.launch
Lines 12 to 14 in 7ccbade
After that, hydra package is not launched for below error messages.
(Especially when i changed the semantic_map_file
argument in uhumans2_incremental_dsg.launch
, error occured )
[ INFO] [1664551953.114403717]: Initializing pose graph visualizer
[ WARN] [1664551953.116088151]: PoseGraphPublisher waiting for subscriber...
F1001 00:32:33.176373 328674 color.cpp:51] Check failed: loop->size() == 6 (8 vs. 6) Row 1 is invalid.
*** Check failure stack trace: ***
@ 0x7f793f6ad1c3 google::LogMessage::Fail()
[ INFO] [1664551953.179036916]: Logging backend graph to /home/gil/sparoLab/open_source/Graph_slam/src/hydra/hydra_dsg_builder/output/uhumans2/apartment/backend
@ 0x7f793f6b225b google::LogMessage::SendToLog()
@ 0x7f793f6acebf google::LogMessage::Flush()
@ 0x7f793f6ad6ef google::LogMessageFatal::~LogMessageFatal()
@ 0x7f793e3073ab kimera::SemanticLabel2Color::SemanticLabel2Color()
@ 0x7f793faee0e6 kimera::getSemanticTsdfIntegratorConfigFromRosParam()
@ 0x7f793faf8cb5 kimera::SemanticTsdfServer::SemanticTsdfServer()
[ INFO] [1664551953.183147875]: Logging output to: /home/gil/sparoLab/open_source/Graph_slam/src/hydra/hydra_dsg_builder/output/uhumans2/apartment/pgmo
@ 0x7f793faf945e kimera::SemanticTsdfServer::SemanticTsdfServer()
@ 0x56209002d449 hydra::topology::TopologyServer<>::setupLayers()
@ 0x56209002dd64 hydra::topology::TopologyServer<>::TopologyServer()
@ 0x562090017a3b main
@ 0x7f793f1b7083 __libc_start_main
@ 0x562090017c9e _start
[ WARN] [1664551953.184279743]: MeshFrontend: Skipping callback registration
[ INFO] [1664551953.185095673]: Initialized MeshFrontend.
[ INFO] [1664551953.185166448]: Logging frontend graph to /home/gil/sparoLab/open_source/Graph_slam/src/hydra/hydra_dsg_builder/output/uhumans2/apartment/frontend
[ INFO] [1664551953.187218466]: rviz version 1.14.19
[ INFO] [1664551953.187237556]: compiled against Qt version 5.12.8
[ INFO] [1664551953.187241696]: compiled against OGRE version 1.9.0 (Ghadamon)
F1001 00:32:33.199155 328688 color.cpp:51] Check failed: loop->size() == 6 (8 vs. 6) Row 1 is invalid.
*** Check failure stack trace: ***
[ INFO] [1664551953.200407565]: Forcing OpenGl version 0.
@ 0x7f41c032e1c3 google::LogMessage::Fail()
@ 0x7f41c033325b google::LogMessage::SendToLog()
@ 0x7f41c032debf google::LogMessage::Flush()
@ 0x7f41c032e6ef google::LogMessageFatal::~LogMessageFatal()
@ 0x7f41bf6693ab kimera::SemanticLabel2Color::SemanticLabel2Color()
@ 0x7f41bf6a80e6 kimera::getSemanticTsdfIntegratorConfigFromRosParam()
@ 0x7f41c0980035 hydra::incremental::MeshSegmenter::MeshSegmenter()
@ 0x7f41c0966aa8 hydra::incremental::DsgFrontend::startMeshFrontend()
@ 0x7f41c0967c9a hydra::incremental::DsgFrontend::start()
@ 0x55ec45473f57 main
@ 0x7f41bf7ed083 __libc_start_main
@ 0x55ec4547496e _start
================================================================================REQUIRED process [hydra_topology_node-10] has died!
process has died [pid 328674, exit code -6, cmd /home/gil/sparoLab/open_source/Graph_slam/devel/lib/hydra_topology/hydra_topology_node --minloglevel=3 -v=0 pointcloud:=/semantic_pointcloud __name:=hydra_topology_node __log:=/home/gil/.ros/log/19f051fe-40d5-11ed-a742-e51d644fcd44/hydra_topology_node-10.log].
log file: /home/gil/.ros/log/19f051fe-40d5-11ed-a742-e51d644fcd44/hydra_topology_node-10*.log
Initiating shutdown!
================================================================================
Could i get some advise for these issues?
Thanks
In the output folder I only see the ply file of the mesh from the frontend which is latest snapshot. How can I save the whole mesh in the ply format?
Thanks!
hi, what simulator is used in the testing? Thanks!
Hi and thanks for the interesting software and technology you have created.
Have been trying it out the past week and can't figure out if the labels and the would look like this (see the attached picture). The only reference I have seen are from your paper and YouTube presentation, neither of which shows the semantic labels overlapping the mesh. Could this be something that is wrong with our local config?
First of all, thank you for releasing such an interesting work in the field of Semantic SLAM.
Considering that the Semantic Segmentation Network used by Hydra is not yet ready for publication, I'd like to ask if there are alternatives that can be considered in the meantime, including the use of other networks, or the supply of custom "ground truth" data (in that case I'd like to know which format Hydra expects).
Additionally, I was wondering if there are plans to add support for custom bag files/sequences, or alternatively adding instructions to do so, reutilizing the existing launch file infrastructure. We are very interested in testing Hydra with data recorded from our own robot, which is fitted with an RGBD camera, and it could also provide odometry information directly (nav_msgs/Odometry
) instead of requiring a visual-inertial odometry component. It is also not presently clear to us which topics are needed as inputs to the system.
Hello!
Thank you so much for your wonderful work, I really learned a lot from your open-sourced project, now I want to run Hydra in Vision-Language-Navigation dataset (Matterport3D), and I noticed that in your IJRR paper, you mentioned that you have used the MP3D for generating Scene Graph for different scenes, which is shown as follows,
And I also find the MP3D-related launch and .yaml configuration file in your open-sourced Hydra code, so the question I want to ask you, is that can you provide the relevant toolbox to make Habitat Simulator compatible with ROS system, or some batch-processing program file to make habitat-sim work with ROS, if possible, could you please share the MP3D rosbag public? Thank you so much!
I'm waiting for your reply, Thank you so much!
I managed to successfully build hydra with Kimear-VIO and it runs well on uHumans data. How can I run it with EuRoc dataset? What has to change in the config file? Thanks!
Hi, thx for your wonderful work. I've compiled your most recent Hydra project successfully. But when I follow your tutorial typing roslaunch hydra_ros uhumans2.launch
in the terminal. It turns out to be failling at initializing. Below are the informations reported from terminal.
`roslaunch hydra_ros uhumans2.launch
... logging to /home/hugh/.ros/log/c22967fc-4191-11ef-bdd4-2ba20d364c2b/roslaunch-hugh-ZHENGJIUZHE-REN9000-25ICZ-35219.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://hugh-ZHENGJIUZHE-REN9000-25ICZ:42483/
SUMMARY
========
PARAMETERS
* /hydra_dsg_visualizer/config/collapse_layers: False
* /hydra_dsg_visualizer/config/color_places_by_distance: False
* /hydra_dsg_visualizer/config/dynamic_layer/2/color_offset: 3
* /hydra_dsg_visualizer/config/dynamic_layer/2/edge_alpha: 0.9
* /hydra_dsg_visualizer/config/dynamic_layer/2/edge_scale: 0.05
* /hydra_dsg_visualizer/config/dynamic_layer/2/edge_sl_ratio: 0.6
* /hydra_dsg_visualizer/config/dynamic_layer/2/interlayer_edge_insertion_skip: 10
* /hydra_dsg_visualizer/config/dynamic_layer/2/label_height: 0.9
* /hydra_dsg_visualizer/config/dynamic_layer/2/label_scale: 0.8
* /hydra_dsg_visualizer/config/dynamic_layer/2/luminance: 0.7
* /hydra_dsg_visualizer/config/dynamic_layer/2/node_alpha: 0.9
* /hydra_dsg_visualizer/config/dynamic_layer/2/node_scale: 0.2
* /hydra_dsg_visualizer/config/dynamic_layer/2/node_use_sphere: True
* /hydra_dsg_visualizer/config/dynamic_layer/2/num_colors: 5
* /hydra_dsg_visualizer/config/dynamic_layer/2/saturation: 0.9
* /hydra_dsg_visualizer/config/dynamic_layer/2/visualize: True
* /hydra_dsg_visualizer/config/dynamic_layer/2/visualize_interlayer_edges: False
* /hydra_dsg_visualizer/config/dynamic_layer/2/z_offset_scale: 0.0
* /hydra_dsg_visualizer/config/layer2/bbox_wireframe_edge_scale: 0.05
* /hydra_dsg_visualizer/config/layer2/bbox_wireframe_scale: 0.05
* /hydra_dsg_visualizer/config/layer2/bounding_box_alpha: 0.9
* /hydra_dsg_visualizer/config/layer2/collapse_bounding_box: True
* /hydra_dsg_visualizer/config/layer2/interlayer_edge_alpha: 0.3
* /hydra_dsg_visualizer/config/layer2/interlayer_edge_insertion_skip: 10
* /hydra_dsg_visualizer/config/layer2/interlayer_edge_scale: 0.05
* /hydra_dsg_visualizer/config/layer2/interlayer_edge_use_color: True
* /hydra_dsg_visualizer/config/layer2/intralayer_edge_alpha: 0.6
* /hydra_dsg_visualizer/config/layer2/intralayer_edge_insertion_skip: 0
* /hydra_dsg_visualizer/config/layer2/intralayer_edge_scale: 0.03
* /hydra_dsg_visualizer/config/layer2/intralayer_edge_use_color: False
* /hydra_dsg_visualizer/config/layer2/label_height: 0.5
* /hydra_dsg_visualizer/config/layer2/label_scale: 0.45
* /hydra_dsg_visualizer/config/layer2/marker_alpha: 0.6
* /hydra_dsg_visualizer/config/layer2/marker_color_mode: 0
* /hydra_dsg_visualizer/config/layer2/marker_scale: 0.4
* /hydra_dsg_visualizer/config/layer2/use_bounding_box: True
* /hydra_dsg_visualizer/config/layer2/use_collapsed_label: True
* /hydra_dsg_visualizer/config/layer2/use_edge_source: True
* /hydra_dsg_visualizer/config/layer2/use_label: False
* /hydra_dsg_visualizer/config/layer2/use_sphere_marker: False
* /hydra_dsg_visualizer/config/layer2/visualize: True
* /hydra_dsg_visualizer/config/layer2/z_offset_scale: 2.0
* /hydra_dsg_visualizer/config/layer20/boundary_alpha: 1.0
* /hydra_dsg_visualizer/config/layer20/boundary_use_node_color: True
* /hydra_dsg_visualizer/config/layer20/boundary_wireframe_scale: 0.1
* /hydra_dsg_visualizer/config/layer20/bounding_box_alpha: 0.5
* /hydra_dsg_visualizer/config/layer20/collapse_boundary: False
* /hydra_dsg_visualizer/config/layer20/collapse_bounding_box: False
* /hydra_dsg_visualizer/config/layer20/draw_boundaries: True
* /hydra_dsg_visualizer/config/layer20/interlayer_edge_alpha: 0.4
* /hydra_dsg_visualizer/config/layer20/interlayer_edge_insertion_skip: 0
* /hydra_dsg_visualizer/config/layer20/interlayer_edge_scale: 0.08
* /hydra_dsg_visualizer/config/layer20/interlayer_edge_use_color: True
* /hydra_dsg_visualizer/config/layer20/intralayer_edge_alpha: 0.5
* /hydra_dsg_visualizer/config/layer20/intralayer_edge_insertion_skip: 0
* /hydra_dsg_visualizer/config/layer20/intralayer_edge_scale: 0.01
* /hydra_dsg_visualizer/config/layer20/intralayer_edge_use_color: False
* /hydra_dsg_visualizer/config/layer20/label_height: 1.0
* /hydra_dsg_visualizer/config/layer20/label_scale: 0.5
* /hydra_dsg_visualizer/config/layer20/marker_alpha: 0.9
* /hydra_dsg_visualizer/config/layer20/marker_color_mode: 0
* /hydra_dsg_visualizer/config/layer20/marker_scale: 0.2
* /hydra_dsg_visualizer/config/layer20/use_bounding_box: False
* /hydra_dsg_visualizer/config/layer20/use_edge_source: False
* /hydra_dsg_visualizer/config/layer20/use_label: False
* /hydra_dsg_visualizer/config/layer20/use_sphere_marker: True
* /hydra_dsg_visualizer/config/layer20/visualize: True
* /hydra_dsg_visualizer/config/layer20/z_offset_scale: 3.0
* /hydra_dsg_visualizer/config/layer3/bounding_box_alpha: 0.5
* /hydra_dsg_visualizer/config/layer3/collapse_bounding_box: False
* /hydra_dsg_visualizer/config/layer3/interlayer_edge_alpha: 0.4
* /hydra_dsg_visualizer/config/layer3/interlayer_edge_insertion_skip: 0
* /hydra_dsg_visualizer/config/layer3/interlayer_edge_scale: 0.08
* /hydra_dsg_visualizer/config/layer3/interlayer_edge_use_color: True
* /hydra_dsg_visualizer/config/layer3/intralayer_edge_alpha: 0.5
* /hydra_dsg_visualizer/config/layer3/intralayer_edge_insertion_skip: 0
* /hydra_dsg_visualizer/config/layer3/intralayer_edge_scale: 0.01
* /hydra_dsg_visualizer/config/layer3/intralayer_edge_use_color: False
* /hydra_dsg_visualizer/config/layer3/label_height: 1.0
* /hydra_dsg_visualizer/config/layer3/label_scale: 0.5
* /hydra_dsg_visualizer/config/layer3/marker_alpha: 0.9
* /hydra_dsg_visualizer/config/layer3/marker_color_mode: 2
* /hydra_dsg_visualizer/config/layer3/marker_scale: 0.2
* /hydra_dsg_visualizer/config/layer3/use_bounding_box: False
* /hydra_dsg_visualizer/config/layer3/use_collapsed_label: False
* /hydra_dsg_visualizer/config/layer3/use_edge_source: False
* /hydra_dsg_visualizer/config/layer3/use_label: False
* /hydra_dsg_visualizer/config/layer3/use_sphere_marker: True
* /hydra_dsg_visualizer/config/layer3/visualize: True
* /hydra_dsg_visualizer/config/layer3/z_offset_scale: 3.0
* /hydra_dsg_visualizer/config/layer4/bounding_box_alpha: 0.5
* /hydra_dsg_visualizer/config/layer4/collapse_bounding_box: False
* /hydra_dsg_visualizer/config/layer4/interlayer_edge_alpha: 0.4
* /hydra_dsg_visualizer/config/layer4/interlayer_edge_insertion_skip: 3
* /hydra_dsg_visualizer/config/layer4/interlayer_edge_scale: 0.08
* /hydra_dsg_visualizer/config/layer4/interlayer_edge_use_color: True
* /hydra_dsg_visualizer/config/layer4/intralayer_edge_alpha: 0.2
* /hydra_dsg_visualizer/config/layer4/intralayer_edge_insertion_skip: 0
* /hydra_dsg_visualizer/config/layer4/intralayer_edge_scale: 0.1
* /hydra_dsg_visualizer/config/layer4/intralayer_edge_use_color: False
* /hydra_dsg_visualizer/config/layer4/label_height: 1.25
* /hydra_dsg_visualizer/config/layer4/label_scale: 1.0
* /hydra_dsg_visualizer/config/layer4/marker_alpha: 0.8
* /hydra_dsg_visualizer/config/layer4/marker_color_mode: 0
* /hydra_dsg_visualizer/config/layer4/marker_scale: 0.6
* /hydra_dsg_visualizer/config/layer4/use_bounding_box: False
* /hydra_dsg_visualizer/config/layer4/use_collapsed_label: False
* /hydra_dsg_visualizer/config/layer4/use_edge_source: True
* /hydra_dsg_visualizer/config/layer4/use_label: True
* /hydra_dsg_visualizer/config/layer4/use_sphere_marker: False
* /hydra_dsg_visualizer/config/layer4/visualize: True
* /hydra_dsg_visualizer/config/layer4/z_offset_scale: 4.2
* /hydra_dsg_visualizer/config/layer5/bounding_box_alpha: 0.5
* /hydra_dsg_visualizer/config/layer5/collapse_bounding_box: False
* /hydra_dsg_visualizer/config/layer5/interlayer_edge_alpha: 0.5
* /hydra_dsg_visualizer/config/layer5/interlayer_edge_insertion_skip: 0
* /hydra_dsg_visualizer/config/layer5/interlayer_edge_scale: 0.1
* /hydra_dsg_visualizer/config/layer5/interlayer_edge_use_color: False
* /hydra_dsg_visualizer/config/layer5/intralayer_edge_alpha: 1.0
* /hydra_dsg_visualizer/config/layer5/intralayer_edge_insertion_skip: 0
* /hydra_dsg_visualizer/config/layer5/intralayer_edge_scale: 0.05
* /hydra_dsg_visualizer/config/layer5/intralayer_edge_use_color: False
* /hydra_dsg_visualizer/config/layer5/label_height: 1.5
* /hydra_dsg_visualizer/config/layer5/label_scale: 1.25
* /hydra_dsg_visualizer/config/layer5/marker_alpha: 1.0
* /hydra_dsg_visualizer/config/layer5/marker_color_mode: 0
* /hydra_dsg_visualizer/config/layer5/marker_scale: 1.0
* /hydra_dsg_visualizer/config/layer5/use_bounding_box: False
* /hydra_dsg_visualizer/config/layer5/use_collapsed_label: False
* /hydra_dsg_visualizer/config/layer5/use_edge_source: False
* /hydra_dsg_visualizer/config/layer5/use_label: True
* /hydra_dsg_visualizer/config/layer5/use_sphere_marker: False
* /hydra_dsg_visualizer/config/layer5/visualize: True
* /hydra_dsg_visualizer/config/layer5/z_offset_scale: 5.5
* /hydra_dsg_visualizer/config/layer_z_step: 5.5
* /hydra_dsg_visualizer/config/mesh_edge_break_ratio: 0.5
* /hydra_dsg_visualizer/config/mesh_layer_offset: 0.0
* /hydra_dsg_visualizer/config/places_colormap/max_hue: 0.5
* /hydra_dsg_visualizer/config/places_colormap/max_luminance: 0.85
* /hydra_dsg_visualizer/config/places_colormap/max_saturation: 0.8
* /hydra_dsg_visualizer/config/places_colormap/min_hue: 0.0
* /hydra_dsg_visualizer/config/places_colormap/min_luminance: 0.6
* /hydra_dsg_visualizer/config/places_colormap/min_saturation: 0.9
* /hydra_dsg_visualizer/config/places_colormap_max_distance: 3.0
* /hydra_dsg_visualizer/config/places_colormap_min_distance: 0.0
* /hydra_dsg_visualizer/dsg_mesh/color_by_label: False
* /hydra_dsg_visualizer/dsg_mesh/label_colormap: /home/hugh/catkin...
* /hydra_dsg_visualizer/load_graph: False
* /hydra_dsg_visualizer/output_path:
* /hydra_dsg_visualizer/plugins/dsg_mesh/type: MeshPlugin
* /hydra_dsg_visualizer/plugins/gt_regions/draw_labels: True
* /hydra_dsg_visualizer/plugins/gt_regions/fill_polygons: False
* /hydra_dsg_visualizer/plugins/gt_regions/gt_regions_filepath:
* /hydra_dsg_visualizer/plugins/gt_regions/label_offset: 2.0
* /hydra_dsg_visualizer/plugins/gt_regions/label_scale: 1.0
* /hydra_dsg_visualizer/plugins/gt_regions/line_width: 0.2
* /hydra_dsg_visualizer/plugins/gt_regions/type: GtRegionPlugin
* /hydra_dsg_visualizer/plugins/gt_regions/use_boundary_color: True
* /hydra_dsg_visualizer/scene_graph_filepath:
* /hydra_dsg_visualizer/use_zmq: False
* /hydra_dsg_visualizer/visualizer_frame: map
* /hydra_dsg_visualizer/zmq_url: tcp://127.0.0.1:8001
* /hydra_ros_node/backend/building_color: [169, 8, 194]
* /hydra_ros_node/backend/building_semantic_label: 22
* /hydra_ros_node/backend/dsg/add_places_to_deformation_graph: True
* /hydra_ros_node/backend/dsg/enable_merge_undos: False
* /hydra_ros_node/backend/dsg/enable_node_merging: True
* /hydra_ros_node/backend/dsg/merge_update_dynamic: True
* /hydra_ros_node/backend/dsg/merge_update_map/BUILDINGS: False
* /hydra_ros_node/backend/dsg/merge_update_map/OBJECTS: False
* /hydra_ros_node/backend/dsg/merge_update_map/PLACES: True
* /hydra_ros_node/backend/dsg/merge_update_map/ROOMS: False
* /hydra_ros_node/backend/dsg/num_neighbors_to_find_for_merge: 1
* /hydra_ros_node/backend/dsg/optimize_on_lc: True
* /hydra_ros_node/backend/dsg/places_merge_distance_tolerance_m: 0.4
* /hydra_ros_node/backend/dsg/places_merge_pos_threshold_m: 0.4
* /hydra_ros_node/backend/dsg/rpgo_solver: LM
* /hydra_ros_node/backend/dsg/rpgo_verbosity: update
* /hydra_ros_node/backend/dsg/use_active_flag_for_updates: True
* /hydra_ros_node/backend/dsg/use_zmq_interface: True
* /hydra_ros_node/backend/dsg/zmq_recv_url: tcp://127.0.0.1:8002
* /hydra_ros_node/backend/dsg/zmq_send_url: tcp://127.0.0.1:8001
* /hydra_ros_node/backend/enable_rooms: True
* /hydra_ros_node/backend/frontier_config/frontier_removal_check_threshold: 4
* /hydra_ros_node/backend/frontier_config/frontier_removal_threshold: 1
* /hydra_ros_node/backend/pgmo/add_initial_prior: True
* /hydra_ros_node/backend/pgmo/covariance/loop_close: 0.05
* /hydra_ros_node/backend/pgmo/covariance/mesh_mesh: 0.01
* /hydra_ros_node/backend/pgmo/covariance/object_merge: 10.0
* /hydra_ros_node/backend/pgmo/covariance/odom: 0.01
* /hydra_ros_node/backend/pgmo/covariance/place_edge: 10.0
* /hydra_ros_node/backend/pgmo/covariance/place_merge: 10.0
* /hydra_ros_node/backend/pgmo/covariance/place_mesh: 0.01
* /hydra_ros_node/backend/pgmo/covariance/pose_mesh: 0.01
* /hydra_ros_node/backend/pgmo/covariance/prior: 0.01
* /hydra_ros_node/backend/pgmo/covariance/sg_loop_close: 0.1
* /hydra_ros_node/backend/pgmo/embed_trajectory_delta_t: 5.0
* /hydra_ros_node/backend/pgmo/enable_sparsify: False
* /hydra_ros_node/backend/pgmo/interp_horizon: 10.0
* /hydra_ros_node/backend/pgmo/num_interp_pts: 3
* /hydra_ros_node/backend/pgmo/rot_node_dist: 1.2
* /hydra_ros_node/backend/pgmo/rpgo/gnc_alpha: 0.9
* /hydra_ros_node/backend/pgmo/rpgo/gnc_cost_tolerance: 1e-05
* /hydra_ros_node/backend/pgmo/rpgo/gnc_fix_prev_inliers: True
* /hydra_ros_node/backend/pgmo/rpgo/gnc_max_iterations: 100
* /hydra_ros_node/backend/pgmo/rpgo/gnc_mu_step: 1.6
* /hydra_ros_node/backend/pgmo/rpgo/gnc_weight_tolerance: 0.0001
* /hydra_ros_node/backend/pgmo/rpgo/lm_diagonal_damping: True
* /hydra_ros_node/backend/pgmo/rpgo/odom_rot_threshold: 0.01
* /hydra_ros_node/backend/pgmo/rpgo/odom_trans_threshold: 0.05
* /hydra_ros_node/backend/pgmo/rpgo/pcm_rot_threshold: -1
* /hydra_ros_node/backend/pgmo/rpgo/pcm_trans_threshold: -1
* /hydra_ros_node/backend/pgmo/rpgo/solver: LM
* /hydra_ros_node/backend/pgmo/rpgo/verbosity: UPDATE
* /hydra_ros_node/backend/pgmo/run_mode: FULL
* /hydra_ros_node/backend/pgmo/trans_node_dist: 1.0
* /hydra_ros_node/backend/pgmo/use_msg_time: True
* /hydra_ros_node/backend/places2d_config/allow_places_merge: True
* /hydra_ros_node/backend/places2d_config/connection_max_delta_z: 0.5
* /hydra_ros_node/backend/places2d_config/connection_overlap_threshold: 0
* /hydra_ros_node/backend/places2d_config/merge_max_delta_z: 0.5
* /hydra_ros_node/backend/places2d_config/min_points: 10
* /hydra_ros_node/backend/places2d_config/min_size: 2
* /hydra_ros_node/backend/room_finder/clip_dilation_window_to_max: False
* /hydra_ros_node/backend/room_finder/clustering_mode: NEIGHBORS
* /hydra_ros_node/backend/room_finder/dilation_diff_threshold_m: -1.0
* /hydra_ros_node/backend/room_finder/dilation_threshold_mode: PLATEAU
* /hydra_ros_node/backend/room_finder/log_filtrations: False
* /hydra_ros_node/backend/room_finder/log_place_graphs: False
* /hydra_ros_node/backend/room_finder/max_dilation_m: 1.2
* /hydra_ros_node/backend/room_finder/max_modularity_iters: 5
* /hydra_ros_node/backend/room_finder/min_component_size: 10
* /hydra_ros_node/backend/room_finder/min_dilation_m: 0.5
* /hydra_ros_node/backend/room_finder/min_lifetime_length_m: 0.1
* /hydra_ros_node/backend/room_finder/min_room_size: 10
* /hydra_ros_node/backend/room_finder/min_window_size: 0.2
* /hydra_ros_node/backend/room_finder/modularity_gamma: 1.0
* /hydra_ros_node/backend/room_finder/plateau_ratio: 0.15
* /hydra_ros_node/backend/room_finder/room_prefix: R
* /hydra_ros_node/backend/type: BackendModule
* /hydra_ros_node/backend/use_2d_places: True
* /hydra_ros_node/backend/visualize_place_factors: False
* /hydra_ros_node/backend/zmq_publish_mesh: True
* /hydra_ros_node/descriptor_creation_horizon_m: 15.0
* /hydra_ros_node/disable_timer_output: True
* /hydra_ros_node/dsg/zmq_num_threads: 2
* /hydra_ros_node/dsg/zmq_poll_time_ms: 10
* /hydra_ros_node/dynamic_labels: [20]
* /hydra_ros_node/enable_frontend_output: True
* /hydra_ros_node/enable_lcd: False
* /hydra_ros_node/enable_reconstruction_output_queue: True
* /hydra_ros_node/exit_after_clock: False
* /hydra_ros_node/frontend/enable_places: True
* /hydra_ros_node/frontend/freespace_places/filter_ground: False
* /hydra_ros_node/frontend/freespace_places/filter_places: True
* /hydra_ros_node/frontend/freespace_places/graph/add_freespace_edges: False
* /hydra_ros_node/frontend/freespace_places/graph/add_heuristic_edges: False
* /hydra_ros_node/frontend/freespace_places/graph/add_overlap_edges: True
* /hydra_ros_node/frontend/freespace_places/graph/compression_distance_m: 1.5
* /hydra_ros_node/frontend/freespace_places/graph/merge_policy: distance
* /hydra_ros_node/frontend/freespace_places/graph/min_edge_distance_m: 0.25
* /hydra_ros_node/frontend/freespace_places/graph/min_node_distance_m: 0.4
* /hydra_ros_node/frontend/freespace_places/graph/node_merge_distance_m: 0.7
* /hydra_ros_node/frontend/freespace_places/graph/overlap_edges/min_clearance_m: 0.4
* /hydra_ros_node/frontend/freespace_places/graph/overlap_edges/num_neighbors_to_check: 4
* /hydra_ros_node/frontend/freespace_places/graph/type: CompressionGraphE...
* /hydra_ros_node/frontend/freespace_places/graph/validate_graph: False
* /hydra_ros_node/frontend/freespace_places/gvd/extract_graph: True
* /hydra_ros_node/frontend/freespace_places/gvd/max_distance_m: 4.5
* /hydra_ros_node/frontend/freespace_places/gvd/min_basis_for_extraction: 1
* /hydra_ros_node/frontend/freespace_places/gvd/min_diff_m: 0.1
* /hydra_ros_node/frontend/freespace_places/gvd/min_distance_m: 0.2
* /hydra_ros_node/frontend/freespace_places/gvd/min_weight: 1e-06
* /hydra_ros_node/frontend/freespace_places/gvd/multi_queue: False
* /hydra_ros_node/frontend/freespace_places/gvd/num_buckets: 20
* /hydra_ros_node/frontend/freespace_places/gvd/positive_distance_only: True
* /hydra_ros_node/frontend/freespace_places/gvd/voronoi_config/min_distance_m: 0.3
* /hydra_ros_node/frontend/freespace_places/gvd/voronoi_config/mode: L1_THEN_ANGLE
* /hydra_ros_node/frontend/freespace_places/gvd/voronoi_config/parent_cos_angle_separation: 0.2
* /hydra_ros_node/frontend/freespace_places/gvd/voronoi_config/parent_l1_separation: 20
* /hydra_ros_node/frontend/freespace_places/min_places_component_size: 3
* /hydra_ros_node/frontend/freespace_places/sinks: [{'type': 'Places...
* /hydra_ros_node/frontend/freespace_places/tsdf_interpolator/ratio: 2
* /hydra_ros_node/frontend/freespace_places/tsdf_interpolator/type: downsample
* /hydra_ros_node/frontend/freespace_places/type: gvd
* /hydra_ros_node/frontend/frontier_places/cluster_tolerance: 0.3
* /hydra_ros_node/frontend/frontier_places/dense_frontiers: False
* /hydra_ros_node/frontend/frontier_places/frontier_splitting_threshold: 0.2
* /hydra_ros_node/frontend/frontier_places/max_cluster_size: 100000
* /hydra_ros_node/frontend/frontier_places/max_place_radius: 5
* /hydra_ros_node/frontend/frontier_places/maximum_relative_z: 1
* /hydra_ros_node/frontend/frontier_places/min_cluster_size: 10
* /hydra_ros_node/frontend/frontier_places/minimum_relative_z: -1.0
* /hydra_ros_node/frontend/frontier_places/point_threshold: 10
* /hydra_ros_node/frontend/frontier_places/recent_block_distance: 25
* /hydra_ros_node/frontend/frontier_places/type: voxel_clustering
* /hydra_ros_node/frontend/min_object_vertices: 40
* /hydra_ros_node/frontend/objects/active_horizon_s: 10.0
* /hydra_ros_node/frontend/objects/active_index_horizon_m: 7.0
* /hydra_ros_node/frontend/objects/bounding_box_type: AABB
* /hydra_ros_node/frontend/objects/cluster_tolerance: 0.25
* /hydra_ros_node/frontend/objects/max_cluster_size: 100000
* /hydra_ros_node/frontend/objects/min_cluster_size: 40
* /hydra_ros_node/frontend/objects/prefix: O
* /hydra_ros_node/frontend/objects/sinks: [{'type': 'Object...
* /hydra_ros_node/frontend/pgmo/d_graph_resolution: 2.5
* /hydra_ros_node/frontend/pgmo/mesh_resolution: 0.005
* /hydra_ros_node/frontend/pgmo/time_horizon: 15.0
* /hydra_ros_node/frontend/pose_graph_tracker/type: PoseGraphFromOdom
* /hydra_ros_node/frontend/surface_places/cluster_tolerance: 0.3
* /hydra_ros_node/frontend/surface_places/max_cluster_size: 100000
* /hydra_ros_node/frontend/surface_places/min_cluster_size: 50
* /hydra_ros_node/frontend/surface_places/min_final_place_points: 10
* /hydra_ros_node/frontend/surface_places/place_max_neighbor_z_diff: 0.5
* /hydra_ros_node/frontend/surface_places/place_overlap_threshold: 0.0
* /hydra_ros_node/frontend/surface_places/prefix: P
* /hydra_ros_node/frontend/surface_places/pure_final_place_size: 1
* /hydra_ros_node/frontend/surface_places/type: place_2d
* /hydra_ros_node/frontend/type: FrontendModule
* /hydra_ros_node/frontend/use_2d_places: True
* /hydra_ros_node/frontend/use_frontiers: False
* /hydra_ros_node/frontend/validate_vertices: False
* /hydra_ros_node/frontend_mesh_separation_s: 0.5
* /hydra_ros_node/input/clear_queue_on_fail: True
* /hydra_ros_node/input/receivers: [{'type': 'ImageR...
* /hydra_ros_node/input/tf_verbosity: 1
* /hydra_ros_node/input/type: RosInput
* /hydra_ros_node/invalid_labels: []
* /hydra_ros_node/label_names: [{'label': 0, 'na...
* /hydra_ros_node/lcd/agent/max_registration_matches: 2
* /hydra_ros_node/lcd/agent/min_match_separation_m: 0.0
* /hydra_ros_node/lcd/agent/min_registration_score: 0.01
* /hydra_ros_node/lcd/agent/min_score: 0.04
* /hydra_ros_node/lcd/agent/min_score_ratio: 0.95
* /hydra_ros_node/lcd/agent/min_time_separation_s: 25.0
* /hydra_ros_node/lcd/agent/type: L1
* /hydra_ros_node/lcd/enable_agent_registration: True
* /hydra_ros_node/lcd/gnn_lcd/object_model_path: /home/hugh/catkin...
* /hydra_ros_node/lcd/gnn_lcd/places_model_path: /home/hugh/catkin...
* /hydra_ros_node/lcd/num_semantic_classes: 20
* /hydra_ros_node/lcd/object_extraction/fixed_radius: True
* /hydra_ros_node/lcd/object_extraction/max_radius_m: 13.0
* /hydra_ros_node/lcd/objects/registration/log_registration_problem: False
* /hydra_ros_node/lcd/objects/registration/min_correspondences: 5
* /hydra_ros_node/lcd/objects/registration/min_inliers: 5
* /hydra_ros_node/lcd/objects/registration/recreate_subgraph: False
* /hydra_ros_node/lcd/objects/registration/registration_output_path:
* /hydra_ros_node/lcd/objects/search/max_registration_matches: 2
* /hydra_ros_node/lcd/objects/search/min_match_separation_m: 5.0
* /hydra_ros_node/lcd/objects/search/min_registration_score: 0.93
* /hydra_ros_node/lcd/objects/search/min_score: 0.3
* /hydra_ros_node/lcd/objects/search/min_score_ratio: 0.9
* /hydra_ros_node/lcd/objects/search/min_time_separation_s: 25.0
* /hydra_ros_node/lcd/objects/search/type: L1
* /hydra_ros_node/lcd/place_histogram_config/bins: 30
* /hydra_ros_node/lcd/place_histogram_config/max: 2.5
* /hydra_ros_node/lcd/place_histogram_config/min: 0.5
* /hydra_ros_node/lcd/places/search/max_registration_matches: 5
* /hydra_ros_node/lcd/places/search/min_match_separation_m: 5.0
* /hydra_ros_node/lcd/places/search/min_registration_score: 1.5
* /hydra_ros_node/lcd/places/search/min_score: 0.2
* /hydra_ros_node/lcd/places/search/min_score_ratio: 0.7
* /hydra_ros_node/lcd/places/search/min_time_separation_s: 25.0
* /hydra_ros_node/lcd/places/search/type: L1
* /hydra_ros_node/lcd/places_extraction/fixed_radius: True
* /hydra_ros_node/lcd/places_extraction/max_radius_m: 13.0
* /hydra_ros_node/lcd/teaser/cbar2: 1.0
* /hydra_ros_node/lcd/teaser/estimate_scaling: False
* /hydra_ros_node/lcd/teaser/inlier_selection_mode: PMC_EXACT
* /hydra_ros_node/lcd/teaser/kcore_heuristic_threshold: 0.5
* /hydra_ros_node/lcd/teaser/max_clique_time_limit: 3600
* /hydra_ros_node/lcd/teaser/noise_bound: 0.1
* /hydra_ros_node/lcd/teaser/rotation_cost_threshold: 1e-06
* /hydra_ros_node/lcd/teaser/rotation_gnc_factor: 1.4
* /hydra_ros_node/lcd/teaser/rotation_max_iterations: 100
* /hydra_ros_node/lcd/use_gnn_descriptors: False
* /hydra_ros_node/lcd_agent_horizon_s: 3.5
* /hydra_ros_node/lcd_use_bow_vectors: True
* /hydra_ros_node/lcd_visualizer_ns: /dsg/lcd_visualizer
* /hydra_ros_node/log_path: /home/hugh/catkin...
* /hydra_ros_node/log_timing_incrementally: False
* /hydra_ros_node/map_frame: map
* /hydra_ros_node/min_mesh_separation_s: 0.5
* /hydra_ros_node/object_labels: [5, 6, 7, 10, 12,...
* /hydra_ros_node/odom_frame: world
* /hydra_ros_node/reconstruction/dense_representation_radius_m: 8.0
* /hydra_ros_node/reconstruction/map/truncation_distance: 0.3
* /hydra_ros_node/reconstruction/map/voxel_size: 0.1
* /hydra_ros_node/reconstruction/map/voxels_per_side: 16
* /hydra_ros_node/reconstruction/mesh/integrator_threads: -1
* /hydra_ros_node/reconstruction/mesh/min_weight: 0.0001
* /hydra_ros_node/reconstruction/sinks: [{'type': 'Recons...
* /hydra_ros_node/reconstruction/tsdf/interpolation_method: bilinear
* /hydra_ros_node/reconstruction/tsdf/num_threads: -1
* /hydra_ros_node/reconstruction/tsdf/semantic_integrator/type: MLESemanticIntegr...
* /hydra_ros_node/reconstruction/tsdf/verbosity: 1
* /hydra_ros_node/reconstruction/type: ReconstructionModule
* /hydra_ros_node/rgb/image_transport: raw
* /hydra_ros_node/robot_frame: base_link_gt
* /hydra_ros_node/robot_id: 0
* /hydra_ros_node/semantic_colormap_file: /home/hugh/catkin...
* /hydra_ros_node/semantic_label_remap_filepath:
* /hydra_ros_node/surface_places_labels: [3, 15]
* /hydra_ros_node/timing_disabled: False
* /hydra_ros_node/topology_visualizer_ns: ~/topology_visual...
* /hydra_ros_node/total_semantic_labels: 21
* /rosdistro: noetic
* /rosversion: 1.16.0
* /use_sim_time: True
NODES
/
bag_static_tf_0 (tf2_ros/static_transform_publisher)
bag_static_tf_1 (tf2_ros/static_transform_publisher)
bag_static_tf_2 (tf2_ros/static_transform_publisher)
bag_static_tf_3 (tf2_ros/static_transform_publisher)
bag_static_tf_4 (tf2_ros/static_transform_publisher)
bag_static_tf_5 (tf2_ros/static_transform_publisher)
fake_world_tf (tf2_ros/static_transform_publisher)
hydra_dsg_visualizer (hydra_ros/hydra_visualizer_node)
hydra_ros_node (hydra_ros/hydra_ros_node)
rviz (rviz/rviz)
auto-starting new master
process[master]: started with pid [35238]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to c22967fc-4191-11ef-bdd4-2ba20d364c2b
process[rosout-1]: started with pid [35259]
started core service [/rosout]
process[bag_static_tf_0-2]: started with pid [35266]
process[bag_static_tf_1-3]: started with pid [35267]
process[bag_static_tf_2-4]: started with pid [35268]
process[bag_static_tf_3-5]: started with pid [35273]
process[bag_static_tf_4-6]: started with pid [35280]
process[bag_static_tf_5-7]: started with pid [35289]
process[fake_world_tf-8]: started with pid [35295]
process[hydra_ros_node-9]: started with pid [35308]
process[rviz-10]: started with pid [35315]
process[hydra_dsg_visualizer-11]: started with pid [35319]
[INFO] Overwriting type name for config 'hydra::BackendModule::Config' for base module 'hydra::BackendModule' from 'BackendModule' to 'RosBackend'. Defining different type identifiers for the same derived module is not recommended.
[INFO] Overwriting type name for config 'hydra::RosCameraIntrinsics::Config' for base module 'hydra::Sensor' from 'camera_info' to 'rosbag_camera_info'. Defining different type identifiers for the same derived module is not recommended.
*** Aborted at 1720927976 (unix time) try "date -d @1720927976" if you are using GNU date ***
PC: @ 0x0 (unknown)
*** SIGSEGV (@0x801f0fc3) received by PID 35308 (TID 0x7f9148fc9a00) from PID 18446744071564103619; stack trace: ***
@ 0x7f9154b68090 (unknown)
@ 0x7f9153d7bb2a YAML::convert<>::decode()
@ 0x7f9155a5a696 config::internal::YamlParser::fromYaml<>()
@ 0x7f9155a692f2 config::internal::Visitor::visitField<>()
@ 0x7f91554b3fe5 hydra::declare_config()
@ 0x7f9155a5f232 config::fromYaml<>()
@ 0x7f9155a40a1e hydra::HydraRosPipeline::HydraRosPipeline()
@ 0x55a314fb756b main
@ 0x7f9154b49083 __libc_start_main
@ 0x55a314fb767e _start
@ 0x0 (unknown)
*** Aborted at 1720927976 (unix time) try "date -d @1720927976" if you are using GNU date ***
PC: @ 0x0 (unknown)
*** SIGSEGV (@0x801f0fc3) received by PID 35319 (TID 0x7f129c9c1a00) from PID 18446744071564103619; stack trace: ***
@ 0x7f12a8a14090 (unknown)
@ 0x7f12a7773b2a YAML::convert<>::decode()
@ 0x7f12a9452696 config::internal::YamlParser::fromYaml<>()
@ 0x7f12a94612f2 config::internal::Visitor::visitField<>()
@ 0x7f12a95d69f1 hydra::declare_config()
@ 0x7f12a95dd706 config::fromYaml<>()
@ 0x7f12a95d6f0a hydra::HydraVisualizer::HydraVisualizer()
@ 0x55c3af1301bf main
@ 0x7f12a89f5083 __libc_start_main
@ 0x55c3af130cae _start
@ 0x0 (unknown)
================================================================================REQUIRED process [hydra_ros_node-9] has died!
process has died [pid 35308, exit code -11, cmd /home/hugh/catkin_ws/devel/lib/hydra_ros/hydra_ros_node --minloglevel=0 -v=0 ~pose_graph:=kimera_vio_ros/pose_graph_incremental ~agent_node_measurements:=kimera_distributed/optimized_nodes ~bow_vectors:=kimera_vio_ros/bow_query frame_registration:=kimera_vio_ros/kimera_vio_ros_node/register_lcd_frames ~pointcloud:=pointcloud ~rgb/image_raw:=/tesse/left_cam/rgb/image_raw ~rgb/image_raw/compressed:=/tesse/left_cam/rgb/image_raw/compressed ~rgb/camera_info:=/tesse/left_cam/camera_info ~depth_registered/image_rect:=/tesse/depth_cam/mono/image_raw ~semantic/image_raw:=/tesse/seg_cam/rgb/image_raw __name:=hydra_ros_node __log:=/home/hugh/.ros/log/c22967fc-4191-11ef-bdd4-2ba20d364c2b/hydra_ros_node-9.log].
log file: /home/hugh/.ros/log/c22967fc-4191-11ef-bdd4-2ba20d364c2b/hydra_ros_node-9*.log
Initiating shutdown!
================================================================================
[hydra_dsg_visualizer-11] killing on exit
[rviz-10] killing on exit
[hydra_ros_node-9] killing on exit
[fake_world_tf-8] killing on exit
[bag_static_tf_5-7] killing on exit
[bag_static_tf_3-5] killing on exit
[bag_static_tf_2-4] killing on exit
[bag_static_tf_1-3] killing on exit
[bag_static_tf_4-6] killing on exit
[bag_static_tf_0-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done`
Could you please tell me what the problem is? BTW, I've also compiled Kimera-VIO in the catkin_ws, and when I roslaunch kimera-vio, there is no bug, but after that when I tried to roslaunch hydra_ros, it reported the same problem as above.
Hi!
I found a bug that may be occurred when using the option: "start visualizer:=true". If I launched the Hydra by:
roslaunch hydra_dsg_builder uhumans2_incremental_dsg.launch start_visualizer:=true
The hydra will be killed and output the following message:
[ INFO] [1658319483.616856493]: Config:
- mesh_plugin_type: PGMO
- load_graph: false
- scene_graph_filepath:
- visualizer_ns: /hydra_dsg_visualizer
- mesh_plugin_ns: dsg_mesh
- output_path:
[ WARN] [1658319483.626158232]: PoseGraphPublisher waiting for subscriber...
[ INFO] [1658319483.627042257]: Initializing pose graph visualizer
[ INFO] [1658319483.700555267]: rviz version 1.14.14
[ INFO] [1658319483.700585160]: compiled against Qt version 5.12.8
[ INFO] [1658319483.700590221]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1658319483.712954538]: Forcing OpenGl version 0.
[ INFO] [1658319483.714701817]: Logging backend graph to /home/zhy/ROSProject/hydar_ws/src/hydra/hydra_dsg_builder/output/uhumans2/office/backend
[ WARN] [1658319483.720185107]: MeshFrontend: Skipping callback registration
[ INFO] [1658319483.720202249]: Initialized MeshFrontend.
[ INFO] [1658319483.720210421]: Logging frontend graph to /home/zhy/ROSProject/hydar_ws/src/hydra/hydra_dsg_builder/output/uhumans2/office/frontend
[ WARN] [1658319484.029669728, 17.987247466]: PoseGraphPublisher waiting for transform: left_cam -> world
[ INFO] [1658319484.118245471, 18.077831406]: Stereo is NOT SUPPORTED
[ INFO] [1658319484.118289907, 18.077831406]: OpenGL device: NVIDIA GeForce RTX 3090/PCIe/SSE2
[ INFO] [1658319484.118303260, 18.077831406]: OpenGl version: 4.6 (GLSL 4.6).
[ WARN] [1658319484.227130625, 18.188874276]: using timer!
[ INFO] [1658319484.536664342, 18.500714565]: New prefix s detected when adding new mesh edges and nodes.
[ WARN] [1658319484.536824797, 18.500714565]: KimeraPgmo: Partial mesh not connected to pose graph.
[ INFO] [1658319484.537410575, 18.500714565]: DeformationGraph: Re-calculating all mesh vertices in deformMesh.
[ INFO] [1658319484.538214830, 18.500714565]: Publish optimized mesh.
[ INFO] [1658319484.547218824, 18.510770073]: Received dsg update message of 7.58 KiB
[ INFO] [1658319484.723557844, 18.681757309]: Creating TriangleMeshVisual 0_TriangleMesh_0_8400
[ INFO] [1658319484.723641811, 18.681757309]: Resetting TriangleMeshVisual 0_TriangleMesh_0_8400
[ INFO] [1658319484.723668978, 18.681757309]: Received 2066 vertex colors.
[ INFO] [1658319485.138061584, 19.094287005]: Publish optimized mesh.
[ INFO] [1658319485.151557365, 19.114415800]: Received dsg update message of 9.86 KiB
*** Aborted at 1658319485 (unix time) try "date -d @1658319485" if you are using GNU date ***
PC: @ 0x0 (unknown)
*** SIGSEGV (@0x100000001) received by PID 732470 (TID 0x7ff7647eb000) from PID 1; stack trace: ***
@ 0x7ff769846090 (unknown)
@ 0x7ff7695be7a3 cv::_OutputArray::create()
@ 0x7ff769df4a5e cv::cvtColorHLS2BGR()
@ 0x7ff769dea598 cv::cvtColor()
@ 0x7ff76bbafdda hydra::dsg_utils::getRgbFromHls()
@ 0x7ff76bb9c210 hydra::getNodeColor()
@ 0x7ff76bb9d124 hydra::DynamicSceneGraphVisualizer::drawDynamicLayer()
@ 0x7ff76bba0e40 hydra::DynamicSceneGraphVisualizer::drawDynamicLayers()
@ 0x7ff76bba1aad hydra::DynamicSceneGraphVisualizer::redrawImpl()
@ 0x7ff76bb9c671 hydra::DynamicSceneGraphVisualizer::redraw()
@ 0x55a805235414 hydra::VisualizerNode::spin()
@ 0x55a805232f3e main
@ 0x7ff769827083 __libc_start_main
@ 0x55a80523302e _start
================================================================================REQUIRED process [hydra_visualizer_node-10] has died!
process has died [pid 732470, exit code -11, cmd /home/zhy/ROSProject/hydar_ws/devel/lib/hydra_utils/hydra_visualizer_node -alsologtostderr -colorlogtostderr -v=0 ~dsg:=/incremental_dsg_builder_node/dsg ~dsg_mesh_updates:=/incremental_dsg_builder_node/pgmo/optimized_mesh __name:=hydra_visualizer_node __log:=/home/zhy/.ros/log/fad91482-0825-11ed-85c5-efe60e99c719/hydra_visualizer_node-10.log].
log file: /home/zhy/.ros/log/fad91482-0825-11ed-85c5-efe60e99c719/hydra_visualizer_node-10*.log
Initiating shutdown!
================================================================================
[incremental_dsg_builder_node/pgmo/posegraph_viewer-14] killing on exit
[pose_graph_publisher_node-13] killing on exit
[incremental_dsg_builder_node-12] killing on exit
[rviz-11] killing on exit
[hydra_visualizer_node-10] killing on exit
[hydra_topology_node-9] killing on exit
[cloudify-8] killing on exit
[nodelet_manager-7] killing on exit
[bag_static_tf_3-4] killing on exit
[bag_static_tf_4-5] killing on exit
[bag_static_tf_5-6] killing on exit
[bag_static_tf_2-3] killing on exit
[bag_static_tf_1-2] killing on exit
[bag_static_tf_0-1] killing on exit
QFileSystemWatcher::removePaths: list is empty
QFileSystemWatcher::removePaths: list is empty
shutting down processing monitor...
... shutting down processing monitor complete
done
If I didn't use the option "start_visualizer:=true", the hydra runs well:
roslaunch hydra_dsg_builder uhumans2_incremental_dsg.launch
The hydra's output can be also seen by selecting the topics in Rviz. It may be that some bugs in visualization. How to solve it?
THX!
Hi,
Thanks a lot for releasing your fantastic work with Hydra. I am working on retrieving object positions from the scene graph that is getting built incrementally. I am testing it on a robot with ORBSLAM2 (for which I had to make some TF modifications) instead of Kimera. However, I noticed that the object nodes I extracted from the scene graph have positions outside the limits of the bounding boxes (min and max parameters). This was not the case in the bag that you had given. Could this be because I modified some TF when I integrated with ORBSLAM2? The pose estimate I get along with Hydra's reconstruction looks good, and I can extract the objects and see the bounding boxes. I also have the enable_segmented_mesh_pub parameter set to true to visualize the object clouds that are getting extracted. That also looks good to me. Do you have any idea why this could be happening?
Another question I had was regarding the object's position in the world frame. I noticed that even in your bag file, the position I retrieved from the scene graph and the visualization I saw on Rviz were inconsistent. Are the objects being scaled before visualized, or do bounding boxes have some other reference coordinate frame? Then, is the position stored in the scene graph the ground-truth position?
I am retrieving the object position and the bounding box information at the end of the updateGraph function using the active object's ID.
Thanks a lot for your help.
Hi! First of all, thank you for sharing this great framework. We started using hydra a while ago and we are now moving our changes to the new release of hydra. We are interested in running hydra only with Teaser++ loop closure registration, we believe that this can be achieved by setting the flag "enable_agent_registration" to false. However, when setting it to false in the new release of hydra for the rosbag "uhumans2_office_s1_00h.bag" (office environment of uHumans2), Teaser++ does not seem to find any valid loop closure (loop_closures.csv file is empty). Is there some other configuration that we need to change to make it work with Teaser++?
Additional information that can help understand the problem:
roslaunch kimera_vio_ros kimera_vio_ros_uhumans2.launch online:=true viz_type:=1 use_lcd:=true lcd_no_detection:=true
roslaunch hydra_ros uhumans2.launch use_gt_frame:=false enable_dsg_lcd:=true start_visualizer:=false
When running the new release of hydra with "enable_agent_registration = true", the output file loop_closures.csv contains approximately 90-100 entries. All of them finishing with type=1 and level=0 (which, if we understood correctly refer to the agent registration)
Debugging the execution of Teaser++ registration, it can reach registerDsgLayerSemantic function in registration.h approximately 2030 times: of those, approximately 1800 times it fails due to a low number of inliers (the most common output is: "Not enough inliers for registration at layer 2: 2 / 5"); and 200 times it fails because the result is not valid (being the result the output from the solve function: teaser::RegistrationSolution result = solver.solve(src_points, dest_points); if (!result.valid) {}).
We appreciate any help! Let us know if some more insights or results are needed:)
UPDATE: We have observed this behavior (empty loop_closures.csv file) with the default configuration for inlier_selection_mode (PMC_EXACT) and with PMC_HEU and KCORE_HEU. Setting that parameter to NONE provides loop closures.
Hello, I have successfully built Hydra. May I ask how to save compressed models or data?
I'm very interested in your work. I think I'm in the final stages of my project, but I've encountered a challenge. The mesh colors displayed in RViz do not match the semantic colors provided in the input. This issue is evident in the attached screenshot, where the semantic segmentation colors differ from the mesh colors.
Could you please advise on potential reasons for this discrepancy?
I am trying to compile Hydra on Ubuntu 18.04 and ROS Melodic. Following the building instruction at https://github.com/MIT-SPARK/Hydra, I ran into errors when building kimera-pgmo package.
Here is what the terminal show:
Hi Nathan
I am trying to run Hydra using zed camera can you help me out with the procedure and i am not an MIT student i need to know what is alternative package for semantic_recolor.
Hello!
I have a question regarding scaling and rotation of objects. Running the uHumans2-dataset I am able to retrieve the position of the objects by listening to the topic /hydra_dsg_visualizer/dsg_markers and extracting it from the Pose object. However, I am trying to retrieve the scaling and rotation of the objects using the same topic (scaling from the Marker object and rotation from the Pose object), but I cannot seem to get the correct information. Is this the correct approach or am I doing something wrong? It would be greatly appreciated with further help.
Thank you!
hi
Excuse me,if I run my own dataset, how do I need to modify the dataset to obtain DSG,or use 2D semantic segmentation to achieve.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.