MIT-SPARK / Kimera-Semantics

Real-Time 3D Semantic Reconstruction from 2D data
BSD 2-Clause "Simplified" License
640 stars 136 forks source link

Is it possible to run Kimera Semantics without ROS? #41

Closed therishidesai closed 3 years ago

therishidesai commented 3 years ago

As the title says. I want to be able to run Kimera Semantics without ROS just like Kimera-VIO.

ToniRV commented 3 years ago

Hi @apache8080, unfortunately right now, kimera_semantics doesn't have a non-ROS interface (we only have the kimera_semantics_ros as an interface). It should be possible to create your own interface using the kimera_semantics library which is ROS agnostic, but we are not planning, at least on the short term, to add a non-ROS interface.

therishidesai commented 3 years ago

Thanks for the response. The one part I am confused about is where does Kimear Semantics get the pose from. The voxblox node subscirbes to transform so is KimeraVIO-ROS publishing that out?

therishidesai commented 3 years ago

Also I am guessing the main reason to use ROS is that visualization is easier.

ToniRV commented 3 years ago

Thanks for the response. The one part I am confused about is where does Kimear Semantics get the pose from. The voxblox node subscirbes to transform so is KimeraVIO-ROS publishing that out?

Yes!

Also I am guessing the main reason to use ROS is that visualization is easier.

Visualization and communication between processes.

therishidesai commented 3 years ago

Is the topic called transform in Kimera-VIO-ROS? Would you be able to point me to the spot in Kimera-VIO-ROS that publishes this data and where in Kimera-semantics this data gets subscribed? Thanks for the help.

ToniRV commented 3 years ago

Hi @apache8080 , I just updated the readme in #44, so that it is easier to run Kimera-Semantics + Kimera-VIO-ROS, see this section. Answering your question:

Is the topic called transform in Kimera-VIO-ROS? Would you be able to point me to the spot in Kimera-VIO-ROS that publishes this data and where in Kimera-semantics this data gets subscribed?

Basically, Kimera-Semantics looks on the TF tree what is the transformation between world_frame and sensor_frame. These are parameters in the launch files:

In fact, Kimera-VIO-ROS outputs two TF frames:

Then, Kimera-Semantics reads the TF tree and figures out the transformation between world_frame (aka world) and sensor_frame (aka cam0).

Hope this helps!