Fixed rgbd_image/scan_descriptor not subscribing at the same time. point_cloud_xyzrgb: added RGBA8 encoding support for stereo images.

This commit is contained in:
matlabbe
2021-10-06 09:59:15 -04:00
parent 06c29333bd
commit 6ac2dcd918
2 changed files with 15 additions and 4 deletions
+8 -1
View File
@@ -545,7 +545,14 @@ void CommonDataSubscriber::setupRGBDCallbacks(
{ {
ROS_INFO("Setup rgbd callback"); ROS_INFO("Setup rgbd callback");
if(subscribeOdom || subscribeUserData || subscribeScan2d || subscribeScan3d || subscribeOdomInfo) if(subscribeOdom ||
#ifdef RTABMAP_SYNC_USER_DATA
subscribeUserData ||
#endif
subscribeScan2d ||
subscribeScan3d ||
subscribeScanDesc ||
subscribeOdomInfo)
{ {
rgbdSubs_.resize(1); rgbdSubs_.resize(1);
rgbdSubs_[0] = new message_filters::Subscriber<rtabmap_ros::RGBDImage>; rgbdSubs_[0] = new message_filters::Subscriber<rtabmap_ros::RGBDImage>;
+7 -3
View File
@@ -390,13 +390,17 @@ private:
if(!(imageLeft->encoding.compare(sensor_msgs::image_encodings::MONO8) == 0 || if(!(imageLeft->encoding.compare(sensor_msgs::image_encodings::MONO8) == 0 ||
imageLeft->encoding.compare(sensor_msgs::image_encodings::MONO16) == 0 || imageLeft->encoding.compare(sensor_msgs::image_encodings::MONO16) == 0 ||
imageLeft->encoding.compare(sensor_msgs::image_encodings::BGR8) == 0 || imageLeft->encoding.compare(sensor_msgs::image_encodings::BGR8) == 0 ||
imageLeft->encoding.compare(sensor_msgs::image_encodings::RGB8) == 0) || imageLeft->encoding.compare(sensor_msgs::image_encodings::RGB8) == 0 ||
imageLeft->encoding.compare(sensor_msgs::image_encodings::BGRA8) == 0 ||
imageLeft->encoding.compare(sensor_msgs::image_encodings::RGBA8) == 0) ||
!(imageRight->encoding.compare(sensor_msgs::image_encodings::MONO8) == 0 || !(imageRight->encoding.compare(sensor_msgs::image_encodings::MONO8) == 0 ||
imageRight->encoding.compare(sensor_msgs::image_encodings::MONO16) == 0 || imageRight->encoding.compare(sensor_msgs::image_encodings::MONO16) == 0 ||
imageRight->encoding.compare(sensor_msgs::image_encodings::BGR8) == 0 || imageRight->encoding.compare(sensor_msgs::image_encodings::BGR8) == 0 ||
imageRight->encoding.compare(sensor_msgs::image_encodings::RGB8) == 0)) imageRight->encoding.compare(sensor_msgs::image_encodings::RGB8) == 0 ||
imageRight->encoding.compare(sensor_msgs::image_encodings::BGRA8) == 0 ||
imageRight->encoding.compare(sensor_msgs::image_encodings::RGBA8) == 0))
{ {
NODELET_ERROR("Input type must be image=mono8,mono16,rgb8,bgr8 (enc=%s)", imageLeft->encoding.c_str()); NODELET_ERROR("Input type must be image=mono8,mono16,rgb8,bgr8,rgba8,bgra8 (enc=%s)", imageLeft->encoding.c_str());
return; return;
} }