{"id":32663416,"url":"https://github.com/MIT-SPARK/Hydra-ROS","last_synced_at":"2025-10-31T22:01:22.198Z","repository":{"id":176738447,"uuid":"658785772","full_name":"MIT-SPARK/Hydra-ROS","owner":"MIT-SPARK","description":"Hydra ROS Interface","archived":false,"fork":false,"pushed_at":"2025-10-20T20:23:02.000Z","size":1116,"stargazers_count":62,"open_issues_count":4,"forks_count":28,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-10-20T22:26:40.002Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MIT-SPARK.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-26T13:39:52.000Z","updated_at":"2025-09-30T17:07:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"507c7e4d-0412-4b49-8543-92d322cbde9a","html_url":"https://github.com/MIT-SPARK/Hydra-ROS","commit_stats":null,"previous_names":["mit-spark/hydra-ros"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/MIT-SPARK/Hydra-ROS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-SPARK%2FHydra-ROS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-SPARK%2FHydra-ROS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-SPARK%2FHydra-ROS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-SPARK%2FHydra-ROS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MIT-SPARK","download_url":"https://codeload.github.com/MIT-SPARK/Hydra-ROS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MIT-SPARK%2FHydra-ROS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282064285,"owners_count":26607951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-31T02:00:07.401Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-31T22:00:39.379Z","updated_at":"2025-10-31T22:01:22.172Z","avatar_url":"https://github.com/MIT-SPARK.png","language":"C++","funding_links":[],"categories":["Citations and Related Papers"],"sub_categories":["Connecting Multiple Zenoh Routers"],"readme":"# Hydra-ROS\n\nThis repository contains the ROS interface for [Hydra](https://github.com/MIT-SPARK/Hydra) and is based on the following papers:\n  - [\"Hydra: A Real-time Spatial Perception System for 3D Scene Graph Construction and Optimization\"](http://www.roboticsproceedings.org/rss18/p050.pdf)\n  - [\"Foundations of Spatial Perception for Robotics: Hierarchical Representations and Real-time Systems\"](https://journals.sagepub.com/doi/10.1177/02783649241229725)\n\nIf you find this code relevant for your work, please consider citing us. A bibtex entry is provided below:\n```bibtex\n@article{hughes2022hydra,\n    title={Hydra: A Real-time Spatial Perception System for {3D} Scene Graph Construction and Optimization},\n    fullauthor={Nathan Hughes, Yun Chang, and Luca Carlone},\n    author={N. Hughes and Y. Chang and L. Carlone},\n    booktitle={Robotics: Science and Systems (RSS)},\n    pdf={http://www.roboticsproceedings.org/rss18/p050.pdf},\n    year={2022},\n}\n\n@article{hughes2024foundations,\n    title={Foundations of Spatial Perception for Robotics: Hierarchical Representations and Real-time Systems},\n    fullauthor={Nathan Hughes and Yun Chang and Siyi Hu and Rajat Talak and Rumaisa Abdulhai and Jared Strader and Luca Carlone},\n    author={N. Hughes and Y. Chang and S. Hu and R. Talak and R. Abdulhai and J. Strader and L. Carlone},\n    journal={The International Journal of Robotics Research},\n    doi={10.1177/02783649241229725},\n    url={https://doi.org/10.1177/02783649241229725},\n    year={2024},\n}\n```\n\n## Table of Contents\n\n- [Getting Started](#getting-started)\n  - [Installation](#installation)\n  - [Dataset Setup](#dataset-setup)\n  - [Running Hydra](#running-hydra)\n- [Filing Issues](#filing-issues)\n- [Additional Resources](#additional-resources)\n- [Acknowledgements](#acknowledgements)\n\n## Getting started\n\n\u003e :warning: **Warning** \u003cbr\u003e\n\u003e The ROS2 version of Hydra is in active development and is unstable and may not fully be feature-complete.\n\nHydra has been tested on Ubuntu 22.04 \u0026 ROS2 Iron and Ubuntu 24.04 \u0026 ROS2 Jazzy. It **should** build on newer distributions. It **will not** build on older ROS2 distributions than Iron (it depends on the `NodeInterfaces` suite of classes that were introduced in Iron).\n\nYou can follow the instructions [here](https://docs.ros.org/en/jazzy/Installation.html) to install ROS2 if you haven't already. The link points to Jazzy currently, pay attention to the distribution!\nWe also have documentation on how to use Docker to build and run Hydra [here](docker/README.md).\n\n### Installation\n\n#### Dependencies\n\nFirst, make sure you have some general requirements\n```shell\n# this is an optional package in the ROS2 installation directions\nsudo apt install ros-dev-tools\n```\nand make sure you have set rosdep up:\n```shell\nsudo rosdep init\nrosdep update\n```\n\n#### Building\n\nTo get started:\n\n```shell\nmkdir -p ~/hydra_ws/src\ncd ~/hydra_ws\n# you may find it convenient to set the build type, etc.\n# you may also want to set `symlink-install: true`\necho \"build: {cmake-args: [-DCMAKE_BUILD_TYPE=Release]}\" \u003e colcon_defaults.yaml\n\ncd src\ngit clone git@github.com:MIT-SPARK/Hydra-ROS.git hydra_ros\nvcs import . \u003c hydra_ros/install/ros2.yaml\nrosdep install --from-paths . --ignore-src -r -y\n\ncd ..\ncolcon build --continue-on-error\n```\n\n\u003e **Note**\u003cbr\u003e\n\u003e Depending on the amount of RAM available on your machine, you may run out of memory when compiling with `colcon build` directly (which will result in a `GCC killed` error). If this occurs, you can either specify fewer threads for colcon via `MAKEFLAGS=\"-j2\" colcon build --parallel-workers 2` (which builds 2 packages at a time with 2 threads for 4 threads total) or compile certain larger packages directly first by building them specifically.\n\n\u003e :warning: **Warning**\u003c/br\u003e\n\u003e In the `vcs import` step, GitHub may block too many concurrent requests. If you receive `kex_exchange_identification: read: Connection reset by peer` errors, try running `vcs import . \u003c hydra/install/hydra.rosinstall --workers 1`.\n\n### Dataset Setup\n\nWe've switched to the v2 version of uhumans2. Download the ROS1 bag for the office scene [here](https://drive.google.com/file/d/1awAzQ7R1hdS5O1Z2zOcpYjK7F4_APq_p/view?usp=drive_link).\nThen install [rosbags](https://pypi.org/project/rosbags/) via pip (i.e., `pip install rosbags` into a virtual environment).\n\nTo convert the bag:\n```shell\nrosbags-convert --src path/to/office.bag --dst path/to/office\n```\n\nMake sure to create a override for latching static tf topics:\n```shell\necho \"/tf_static: {depth: 1, durability: transient_local}\" \u003e ~/.tf_overrides.yaml\n```\n\n### Running Hydra\n\n\u003e **:warning: Warning**\u003cbr\u003e\n\u003e This guide is written assuming you use `zsh`. If you don't, source the right setup file for your shell\n\nTo start Hydra:\n```shell\n# this will break autocomplete, see group wiki for correct way to do this\nsource ~/hydra_ws/install/setup.zsh\nros2 launch hydra_ros uhumans2.launch.yaml\n```\n\nThen, start the rosbag in a separate terminal:\n```shell\nros2 bag play path/to/rosbag --clock --qos-profile-overrides-path ~/.tf_overrides.yaml\n```\n\n#### Running with Semantic Segmentation\n\nSee [here](https://github.com/MIT-SPARK/semantic_inference/blob/main/docs/closed_set.md#getting-dependencies) for installation information for `semantic_inference`.\n\nFor the uHumans2 office scene, start Hydra via\n```\nsource ~/hydra_ws/install/setup.zsh\nros2 launch hydra_ros uhumans2.launch.yaml use_gt_semantics:=false\n```\n\nYou may need to wait for about a minute for TensorRT to compile the model the first time you run the launch file. Once Hydra initializes, then run\n```\nros2 bag play path/to/rosbag --clock --qos-profile-overrides-path ~/.tf_overrides.yaml\n```\n\n## Filing Issues\n\nPlease understand that this is research code maintained by busy graduate students, **which comes with some caveats**:\n  1. We do our best to maintain and keep the code up-to-date, but things may break or change occasionally\n  2. We do not have bandwidth to help adapt the code to new applications\n  3. The documentation, code-base and installation instructions are geared towards practitioners familiar with ROS and 3D scene graph research.\n\n\u003e **:warning: Warning**\u003cbr\u003e\n\u003e We don't support other platforms. Issues requesting support on other platforms (e.g., Ubuntu 18.04, Windows) will be summarily closed.\n\nDepending on the nature of the issue, it may be helpful to browse [this](doc/debugging.md) page about debugging Hydra first.\n\nThank you in advance for your understanding!\n\n## Additional Resources\n\nWe maintain information on the ROS2 interfaces that Hydra uses [here](doc/hydra_ros_interfaces.md) that may be useful if you are trying to understand how to use Hydra with a new dataset.\nWe also have a preliminary guide to setting up Hydra with the Zed2i camera [here](doc/setting_up_a_new_sensor.md).\n\n## Acknowledgements\n\n**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.\n\n**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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMIT-SPARK%2FHydra-ROS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMIT-SPARK%2FHydra-ROS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMIT-SPARK%2FHydra-ROS/lists"}