GithubHelp home page GithubHelp logo

hydra's Introduction

Hydra

This repository contains code to incrementally build 3D Scene Graphs in real-time and is based on the papers:

If you find this code relevant for your work, please consider citing one or both of these papers. A bibtex entry is provided below:

@article{hughes2022hydra,
    title={Hydra: A Real-time Spatial Perception System for {3D} Scene Graph Construction and Optimization},
    fullauthor={Nathan Hughes, Yun Chang, and Luca Carlone},
    author={N. Hughes and Y. Chang and L. Carlone},
    booktitle={Robotics: Science and Systems (RSS)},
    pdf={http://www.roboticsproceedings.org/rss18/p050.pdf},
    year={2022},
}

@article{hughes2024foundations,
    title={Foundations of Spatial Perception for Robotics: Hierarchical Representations and Real-time Systems},
    fullauthor={Nathan Hughes and Yun Chang and Siyi Hu and Rajat Talak and Rumaisa Abdulhai and Jared Strader and Luca Carlone},
    author={N. Hughes and Y. Chang and S. Hu and R. Talak and R. Abdulhai and J. Strader and L. Carlone},
    journal={The International Journal of Robotics Research},
    doi={10.1177/02783649241229725},
    url={https://doi.org/10.1177/02783649241229725},
    year={2024},
}

Acknowledgements

This work was partially funded by the AIA CRA FA8750-19-2-1000, ARL DCIST CRA W911NF-17-2-0181, and ONR RAIDER N00014-18-1-2828.

Disclaimer

Research was sponsored by the United States Air Force Research Laboratory and the United States Air Force Artificial Intelligence Accelerator and was accomplished under Cooperative Agreement Number FA8750-19-2-1000. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the United States Air Force or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation herein.

News

Update (06/26/24): We've released the latest version of Hydra. This release also includes the following features:

  • Room category classification networks from our most recent paper, available here
  • Python bindings around Hydra and our interface for running with the habitat simulator (details below)
  • Updates to Hydra to use config_utilities

Note
We've changed (and simplified) the dependencies required to build Hydra. This includes moving towards the ROS packaged version of GTSAM, dropping Kimera-Semantics and replacing voxblox with spatial_hash. Please make sure to double-check the rosinstall files to make sure you have all new dependencies (and feel free to remove unused old dependencies).

Update (06/26/23): We've released initial changes from the our newest paper. We also plan to release additional code, most notably for training the room classification networks and GNN-based descriptors as described in the above paper. We will link to the new repository once this is done.

Note
As part of the this release, we have moved ROS related code to a new repository located here. This code (and our installation process) still do rely on the ROS ecosystem.

Installation and Running

General Requirements

Hydra has been tested on Ubuntu 20.04 and ROS Noetic

You can follow the instructions here to install ROS if you haven't already. Then, make sure you have some general requirements:

sudo apt install python3-rosdep python3-catkin-tools python3-vcstool

Finally, if you haven't set up rosdep yet:

sudo rosdep init
rosdep update

Filing Issues

⚠️ Warning
We don't support other platforms. Issues requesting support on other platforms (e.g., Ubuntu 18.04, Windows) will be summarily closed.

Depending on the nature of the issue, it may be helpful to browse this page about debugging Hydra first.

Building Hydra

To get started:

mkdir -p catkin_ws/src
cd catkin_ws
catkin init
catkin config -DCMAKE_BUILD_TYPE=Release

cd src
git clone [email protected]:MIT-SPARK/Hydra.git hydra
vcs import . < hydra/install/hydra.rosinstall
rosdep install --from-paths . --ignore-src -r -y

cd ..
catkin build

Note
Depending on the amount of RAM available on your machine and whether or not you are compiling Kimera-VIO as well, you may run out of memory when compiling with catkin build directly (which will result in a GCC killed error). If this occurs, you can either specify fewer threads for catkin via catkin build -j NUM_THREADS or compile certain larger packages directly first by building them specifically.

Please help us by creating new issues when you run into problems with these instructions!

Quickstart

To test Hydra out, you can just download a single scene (the office scene without humans is recommended, and can be found here. Make sure to decompress the rosbag (rosbag decompress path/to/bagfile) before running!

⚠️ Warning
Also make sure to source the workspace before starting.
This is typically source path/to/catkin_ws/devel/setup.bash, though if you use zsh you should use the correct setup file for that.

To start Hydra:

roslaunch hydra_ros uhumans2.launch

Then, start the rosbag in a separate terminal:

rosbag play path/to/rosbag --clock

Running Hydra

See here for detailed instructions discussing how to run Hydra using ROS. These also detail how to use Hydra with Kimera-VIO, including how to build Kimera-VIO alongside Hydra.

Hydra Python Bindings

See here for information

Hydra Evaluation

See here for information

Using a Semantic Segmentation Network

Note
This package is not public (yet)

Add semantic_recolor to your workspace via:

roscd && cd ../src
vcs import . < hydra/install/semantic_overlay.rosinstall

Then, follow the instructions to install cuda and other dependencies for the semantic_recolor package (which can be found here).

Finally, build your workspace:

catkin build

hydra's People

Contributors

argupta98 avatar goldenzephyr avatar jingnanshi avatar luciancov avatar marcusabate avatar nathanhhughes avatar penguin8910 avatar rumaisaabdulhai avatar schmluk avatar tonirv avatar yunzc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hydra's Issues

Initiating Shutdown.

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.

[QUESTION] How to enable dynamic nodes visualization?

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.

[QUESTION] running uHumans2 dataset against other scenes produces no objects

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.

Screenshot from 2022-10-01 00-06-48

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.

<arg name="dsg_output_prefix" default="office"/>
<arg name="typology_dir" default="$(find hydra_dsg_builder)/config/uhumans2"/>
<arg name="typology_config" default="uhumans2_office_typology.yaml"/>
<arg name="semantic_map_dir" default="$(find kimera_semantics_ros)/cfg"/>
<arg name="semantic_map_file" default="tesse_multiscene_office1_segmentation_mapping.csv"/>

<arg name="semantic_color_path"
default="$(find kimera_semantics_ros)/cfg/tesse_multiscene_office1_segmentation_mapping.csv"
if="$(arg use_gt_semantics)"/>

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

Compilation Errors

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 &&
| ^

Couldn't open the start_visualizer option

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!

Protobuf Compiler dependency

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.

Running Hydra with EuRoC dataset

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!

[QUESTION] Recommended system requirements for running Hydra?

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!

Error building hydra

I am having the error below when building hydra. About 23 out of 25 packages succeeded. I don't know what I have done wrong. I am running Ubuntu 20.04 on UTM as VM.

Screenshot 2024-04-03 at 08 27 34

dynamic objects handling + stasis assumption + LMMs interest?

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:

  • in #1 and #31 there are mentions of dynamic objects handling, deriving from kimera-semantics: 1) how are they handled in hydra (e.g., are they filtered out from the reconstructed 3D scene graph or an agent pose graph is being created)? 2) is it stopping at human beings or are there multiple classes of dynamic objects being detected?
  • in one of the papers (cannot remember if hydra's or hydra-multi's) you mention relaxing the stasis assumption as future work, meaning relaxing the assumptions that objects and the disposition of the scene remains static during the registration: is the assessment still correct or have there been on-going efforts in hydra about this limitation?
  • what's your view of large multi-modal models (LMMs) and do you see a place for them in hydra in the future allowing a deeper characterization of objects (e.g., material, color, weight, affordances) in the scene, as recent works like conceptgraphs have tried to do, albeit at a much smaller 3D scene graph scale?

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.

[BUG] Error Building catkin

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

Errors in Kimera-RPGO while building via catkin

Hi,
I tried to build Hydra as it written in the Readme, and, while running catkin build, faced with the following compilation errors:

Снимок экрана от 2023-01-26 20-00-51
Снимок экрана от 2023-01-26 20-00-58

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?

[QUESTION] Access To Matterport3D dataset

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,
Screenshot from 2024-04-27 15-27-04
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!

how to run own dataset

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.

[QUESTION] problems with angular movement

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

image

[QUESTION] Support for Habitat / mp3d dataset

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?

[QUESTION] About Hydra-multi

Great work ! I notice that ur latest work Hydra-multi has been published in IROS and i wonder if u prefer to open source!

[QUESTION] Should the labels and from uHuamans2 office dataset be like this?

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?

label_prnt

[QUESTION] Configuration of DSG Loop Closure Detection with the new release of Hydra

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:

  1. We are running hydra with kimera using these two commands:

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

  1. 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)

  2. 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.

[QUESTION] Semantic color and label mapping in uHumans2 office dataset

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!

image

[QUESTION] Scaling and rotation of objects

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!

missing config file of the scene "neighborhood1" in the folder "hydra_dsg_builder/config/uhumans2/" ?

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!

Regarding VIO

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

[QUESTION] 2D Semantic segmentation

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!

[incremental_dsg_builder_node-12] has died! process has died! -- A bug on ubuntu 20.04 and ROS Noetic

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.

a build problem

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.

Issue with custom vio install

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.

[QUESTION] About registration solvers

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.
  • Finally, I have understood scene graph loop closures can be enabled without additional development based on your mention in here as above. However, if 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!

[QUESTION] Retrieve absolute positions of the object with respect to the world frame

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.

[QUESTION] Run uHumans dataset but no scene graph is built

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,

rviz_screenshot_2022_09_29-13_01_56

It looks like the scene graph cannot be constructed. It should be a front-end problem.

Can you help me with that?

Thanks

[QUESTION] Discrepancy Between Semantic Segmentation Colors and Mesh Colors

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?

Cannot locate rosdep definition for ...

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!

[QUESTION] Support for multi-session and multi-agent

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!

Semantic segmentation + running Hydra on custom data

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.

[QUESTION]Dependencies about pcl and opencv's flann lib?

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_);

`

Room classification [QUESTION]

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!!!

Hydra dsg builder not found

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

[QUESTION]Ros independent Version of Hydra

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 ?

Add issue template and debug instructions

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.

[QUESTION] How can I save final mesh?

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!

How to run Hydra using Zed Camera

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.

[QUESTION] Release visual loop-closures?

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.