The usual ROS way to label things for visualization is publishing rviz Markers with the appropriate coordinates in the map frame. There is a Tutorial.
You seem to want something different. Can you explain what you need?
UPDATE: I agree with @jorge that you should publish a separate topic with semantic map information. Many ROS components use standard map messages.
Instead of breaking that interface, publish your data on a parallel topic, like semantic_map
. You can invent a custom message, or just use the rviz message if it is close enough to suit your needs.
I would still publish the markers on the rviz visualization_marker_array
topic. It can contain text labels, if desired.
I suspect other people are already doing similar things. Maybe there would be interest in designing a common ROS semantic mapping message.
UPDATE2: since people are not fixed in either the robot's frame of reference or the map, you probably need to assign them each their own frame ID to track their motion. You can publish the marker in that frame, and your person detector can publish the transform from each person to the /map
frame.
To do that you're going to need to learn the tf package pretty thoroughly. Start with its Tutorials. Ask (separate) questions if they are unclear.