Hydra
Hydra copied to clipboard
[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 ?
Hi, thanks for your interest in our work (and for catching the issue with boost::shared_ptr
usage in spark dsg)!
We've done some work ourselves to remove the usage of ROS internal to Hydra. There are two issues there:
- Those changes are still on our private github and we weren't planning on releasing those changes until November or so (we're still putting the finishing touches on them and they're being used for follow on work to Hydra)
- We're still building against ros libraries / using catkin for a build tool, and it's a pretty significant amount of work to strip all of that out of both Hydra and Hydra's dependencies (the latter is the harder part by far). Some of that may be alleviated if we end up making a version of Hydra that works with ROS2, but that's not on the roadmap at the moment.
There are some options depending on your use case (it may help to understand why you want to avoid ROS) and what your timeline is:
- Use docker to build Hydra using ROS (and an catkin install layout), and then grab the relevant binaries / libraries. This also requires the non-ros version we have.
- I haven't used this personally yet, but someone pointed me recently to this tool to install ROS in a conda environment, which seems viable for building / running hydra.
Feel free to also reach out via email (you can find my email in the Hydra RSS paper that we link to in the README of this repo) and we can discuss further if that's more convenient.
Why did you choose to use ROS for Hydra ?
Mostly for convenience. The majority of the data we test against or collect is typically stored in rosbags, and several of the Hydra dependencies also require ROS (most notably Kimera-PGMO). We also use a fair amount of ROS utilities (e.g. depth_image_proc
for handling the depth + rgb to pointcloud conversion), and found that it was really easy and quick to switch between different pose or data sources (i.e. gt vs real semantic segmentation, gt vs estimated pose). Finally, I personally think it's made it easier to make the process of building Hydra more repeatable (as ROS provides a relatively consistent baseline for Hydra dependencies).
(closing because we talked about this via email / as it's not as relevant with the newest changes to Hydra)