ethz-asl / panoptic_mapping

A flexible submap-based framework towards spatio-temporally consistent volumetric mapping and scene understanding.
BSD 3-Clause "New" or "Revised" License
275 stars 31 forks source link

[WIP] [ROS] Publish serialized layers to synchronize multiple nodes #25

Closed renezurbruegg closed 2 years ago

renezurbruegg commented 2 years ago

Publishes internal submaps as ros messages in order to synchronize multiple ros nodes (1 sender, 1 receiver without map updates).

This pull request is based on results from the other pull requests and should therefore be resolved at the end.

The implementation is not stable and sometimes invalid Mesh blocks get requested (I think there is a fix on the current master about this? Stack trace:

*** Check failure stack trace: ***
    @     0x7f9656e8dfc3  google::LogMessage::Fail()
    @     0x7f9656e90056  google::LogMessage::SendToLog()
    @     0x7f9656e8db8e  google::LogMessage::Flush()
    @     0x7f9656e905cf  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f96572c3dea  panoptic_mapping::SingleTsdfVisualizer::generateMeshMsgs()
    @     0x7f96572ac493  panoptic_mapping::SubmapVisualizer::visualizeMeshes()
    @     0x7f96572ab664  panoptic_mapping::SubmapVisualizer::visualizeAll()
    @     0x7f965727ce99  panoptic_mapping::PanopticMapper::publishVisualization()
    @     0x7f9657167ae8  ros::TimerManager<>::TimerQueueCallback::call()
    @     0x7f9657189652  ros::CallbackQueue::callOneCB()
    @     0x7f965718a3f5  ros::CallbackQueue::callOne()
    @     0x7f96571dd7d5  ros::AsyncSpinnerImpl::threadFunc()
    @     0x7f9655fa943b  (unknown)
    @     0x7f9657022609  start_thread
    @     0x7f9656b83293  clone

Additionally, there is an issue with the mesh extraction in single_tsdf mode, since all non background classes get exlcude, due to the classVoxelBelongsToSubmap function returning false in single_tsdf mode.

renezurbruegg commented 2 years ago

Moved to issue #35