introlab / rtabmap

RTAB-Map library and standalone application
https://introlab.github.io/rtabmap
Other
2.74k stars 779 forks source link

Cannot convert multi-camera data to rgbd image? #725

Open twoeggs opened 3 years ago

twoeggs commented 3 years ago

Hi! Why Cannot convert multi-camera data to rgbd image?

https://github.com/introlab/rtabmap_ros/blob/noetic-devel/src/MsgConversion.cpp#L213

matlabbe commented 3 years ago

The rtabmap_ros/RGBDImage msg represents only one camera of dual RGB+Depth or Stereo Left-Right images.

We would have to implement a function like this to output many RGBDImage from a SensorData:

void rgbdImagesToROS(const rtabmap::SensorData & data, std::vector<rtabmap_ros::RGBDImage> & msgs, const std::vector<std::string> & sensorFrameIds)

However, sensorFrameIds should have to be known for every cameras. Otherwise, we would have to add local_transform (derived from CameraModel::localTransform in SensorData) field to rtabmap_ros/RGBDImage so that we can publish all cameras in same base frame (local_transform of each CameraModel in SensorData would be used to know how images should be transformed).