Intro to project
We are working on developing a mobile robot that has to carry packages around in a warehouse. The thing really matters in this project, is that robot should avoid explorations as much as possible. Due to the limited field of view of the on-board sensors, we have to put a few overhead cameras on the warehouse ceiling, looking downward. These overhead cameras are being used to segment the floor to the occupied/free pixels, leading to an occupancy grid map (we call it an overhead grid map). So we have an overhead grid map and a grid map which is obtained from onboard sensors (the onboard grid map is a subset of the overhead grid map, and the grids in overlap will fuse together).
What we have
We have generated a dataset for overhead image segmentation in Unity and developed a ROS2 package for a CNN based image segmentation. Another ROS2 package is implemented to do Global Planning based on the NF2 algorithm. The result global path will be fed to ROS2 Nav Stack.
As you may have noticed, the packages are decoupled from Nav Stack. We are interested to develop these packages somehow to can be used as a plugin to Nav Stack. Our main concern is about developing the overhead grid map. My first thinking was developing the overhead grid map as a costmap 2d plugin.
Develop a costmap 2d plugin that receives the segmented images, and the output is a costmap layer. However, to the best of my knowledge, it may violate the costmap 2d plugins’ rules. For example, the overhead plugin has to resize the layered_costmap_, which seems just static_layer is allowed to do.
Another one is developing a package that subscribes to the SLAM toolbox and expands its grid map by importing an overhead grid map.
What is the best way to merge this package to Nav Stack?