mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-06 01:37:46 +08:00
Merged master to ros2. ros2: Uniformized qos of all subscribers and publishers.
This commit is contained in:
@@ -46,15 +46,17 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include <nav_msgs/msg/odometry.hpp>
|
||||
|
||||
#include <rtabmap_ros/msg/rgbd_image.hpp>
|
||||
#include <rtabmap_ros/msg/rgbd_images.hpp>
|
||||
#include <rtabmap_ros/msg/user_data.hpp>
|
||||
#include <rtabmap_ros/msg/odom_info.hpp>
|
||||
#include <rtabmap_ros/msg/scan_descriptor.hpp>
|
||||
#include <rtabmap_ros/CommonDataSubscriberDefines.h>
|
||||
|
||||
namespace rtabmap_ros {
|
||||
|
||||
class CommonDataSubscriber {
|
||||
public:
|
||||
CommonDataSubscriber(rclcpp::Node& node, bool gui);
|
||||
CommonDataSubscriber(rclcpp::Node & node, bool gui);
|
||||
virtual ~CommonDataSubscriber();
|
||||
|
||||
bool isSubscribedToDepth() const {return subscribedToDepth_;}
|
||||
@@ -69,6 +71,7 @@ public:
|
||||
int rgbdCameras() const {return isSubscribedToRGBD()?(int)rgbdSubs_.size():0;}
|
||||
int getQueueSize() const {return queueSize_;}
|
||||
bool isApproxSync() const {return approxSync_;}
|
||||
const std::string & name() const {return name_;}
|
||||
|
||||
protected:
|
||||
void setupCallbacks(rclcpp::Node & node);
|
||||
@@ -78,9 +81,13 @@ protected:
|
||||
const std::vector<cv_bridge::CvImageConstPtr> & imageMsgs,
|
||||
const std::vector<cv_bridge::CvImageConstPtr> & depthMsgs,
|
||||
const std::vector<sensor_msgs::msg::CameraInfo> & cameraInfoMsgs,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg) = 0;
|
||||
const sensor_msgs::msg::LaserScan & scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const std::vector<rtabmap_ros::msg::GlobalDescriptor> & globalDescriptorMsgs = std::vector<rtabmap_ros::msg::GlobalDescriptor>(),
|
||||
const std::vector<std::vector<rtabmap_ros::msg::KeyPoint> > & localKeyPoints = std::vector<std::vector<rtabmap_ros::msg::KeyPoint> >(),
|
||||
const std::vector<std::vector<rtabmap_ros::msg::Point3f> > & localPoints3d = std::vector<std::vector<rtabmap_ros::msg::Point3f> >(),
|
||||
const std::vector<cv::Mat> & localDescriptors = std::vector<cv::Mat>()) = 0;
|
||||
virtual void commonStereoCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
@@ -88,15 +95,20 @@ protected:
|
||||
const cv_bridge::CvImageConstPtr& rightImageMsg,
|
||||
const sensor_msgs::msg::CameraInfo& leftCamInfoMsg,
|
||||
const sensor_msgs::msg::CameraInfo& rightCamInfoMsg,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg) = 0;
|
||||
const sensor_msgs::msg::LaserScan & scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const std::vector<rtabmap_ros::msg::GlobalDescriptor> & globalDescriptorMsgs = std::vector<rtabmap_ros::msg::GlobalDescriptor>(),
|
||||
const std::vector<rtabmap_ros::msg::KeyPoint> & localKeyPoints = std::vector<rtabmap_ros::msg::KeyPoint>(),
|
||||
const std::vector<rtabmap_ros::msg::Point3f> & localPoints3d = std::vector<rtabmap_ros::msg::Point3f>(),
|
||||
const cv::Mat & localDescriptors = cv::Mat()) = 0;
|
||||
virtual void commonLaserScanCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg) = 0;
|
||||
const sensor_msgs::msg::LaserScan & scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const rtabmap_ros::msg::GlobalDescriptor & globalDescriptor = rtabmap_ros::msg::GlobalDescriptor()) = 0;
|
||||
virtual void commonOdomCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
@@ -109,9 +121,13 @@ protected:
|
||||
const cv_bridge::CvImageConstPtr & depthMsg,
|
||||
const sensor_msgs::msg::CameraInfo & rgbCameraInfoMsg,
|
||||
const sensor_msgs::msg::CameraInfo & depthCameraInfoMsg,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg);
|
||||
const sensor_msgs::msg::LaserScan & scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const std::vector<rtabmap_ros::msg::GlobalDescriptor> & globalDescriptorMsgs = std::vector<rtabmap_ros::msg::GlobalDescriptor>(),
|
||||
const std::vector<rtabmap_ros::msg::KeyPoint> & localKeyPoints = std::vector<rtabmap_ros::msg::KeyPoint>(),
|
||||
const std::vector<rtabmap_ros::msg::Point3f> & localPoints3d = std::vector<rtabmap_ros::msg::Point3f>(),
|
||||
const cv::Mat & localDescriptors = cv::Mat());
|
||||
|
||||
private:
|
||||
void callbackCalled() {callbackCalled_ = true;}
|
||||
@@ -121,6 +137,7 @@ private:
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
@@ -136,6 +153,7 @@ private:
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
@@ -145,15 +163,28 @@ private:
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
void setupRGBDXCallbacks(
|
||||
rclcpp::Node & node,
|
||||
bool subscribeOdom,
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
#ifdef RTABMAP_SYNC_MULTI_RGBD
|
||||
void setupRGBD2Callbacks(
|
||||
rclcpp::Node & node,
|
||||
bool subscribeOdom,
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
@@ -163,6 +194,7 @@ private:
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
@@ -172,12 +204,35 @@ private:
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
void setupRGBD5Callbacks(
|
||||
rclcpp::Node & node,
|
||||
bool subscribeOdom,
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
void setupRGBD6Callbacks(
|
||||
rclcpp::Node & node,
|
||||
bool subscribeOdom,
|
||||
bool subscribeUserData,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScan3d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdomInfo,
|
||||
int queueSize,
|
||||
bool approxSync);
|
||||
#endif
|
||||
void setupScanCallbacks(
|
||||
rclcpp::Node & node,
|
||||
bool scan2dTopic,
|
||||
bool subscribeScan2d,
|
||||
bool subscribeScanDesc,
|
||||
bool subscribeOdom,
|
||||
bool subscribeUserData,
|
||||
bool subscribeOdomInfo,
|
||||
@@ -205,8 +260,10 @@ private:
|
||||
bool subscribedToRGBD_;
|
||||
bool subscribedToScan2d_;
|
||||
bool subscribedToScan3d_;
|
||||
bool subscribedToScanDescriptor_;
|
||||
bool subscribedToOdomInfo_;
|
||||
bool subscribedToUserData_;
|
||||
std::string odomFrameId_;
|
||||
int rgbdCameras_;
|
||||
std::string name_;
|
||||
|
||||
@@ -218,6 +275,8 @@ private:
|
||||
//for rgbd callback
|
||||
rclcpp::Subscription<rtabmap_ros::msg::RGBDImage>::ConstSharedPtr rgbdSub_;
|
||||
std::vector<message_filters::Subscriber<rtabmap_ros::msg::RGBDImage>*> rgbdSubs_;
|
||||
rclcpp::Subscription<rtabmap_ros::msg::RGBDImages>::ConstSharedPtr rgbdXSubOnly_;
|
||||
message_filters::Subscriber<rtabmap_ros::msg::RGBDImages> rgbdXSub_;
|
||||
|
||||
//stereo callback
|
||||
image_transport::SubscriberFilter imageRectLeft_;
|
||||
@@ -229,43 +288,55 @@ private:
|
||||
message_filters::Subscriber<rtabmap_ros::msg::UserData> userDataSub_;
|
||||
message_filters::Subscriber<sensor_msgs::msg::LaserScan> scanSub_;
|
||||
message_filters::Subscriber<sensor_msgs::msg::PointCloud2> scan3dSub_;
|
||||
message_filters::Subscriber<rtabmap_ros::msg::ScanDescriptor> scanDescSub_;
|
||||
message_filters::Subscriber<rtabmap_ros::msg::OdomInfo> odomInfoSub_;
|
||||
|
||||
rclcpp::Subscription<sensor_msgs::msg::LaserScan>::ConstSharedPtr scan2dSubOnly_;
|
||||
rclcpp::Subscription<sensor_msgs::msg::PointCloud2>::ConstSharedPtr scan3dSubOnly_;
|
||||
rclcpp::Subscription<rtabmap_ros::msg::ScanDescriptor>::ConstSharedPtr scanDescSubOnly_;
|
||||
rclcpp::Subscription<nav_msgs::msg::Odometry>::ConstSharedPtr odomSubOnly_;
|
||||
|
||||
// RGB + Depth
|
||||
DATA_SYNCS3(depth, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo)
|
||||
DATA_SYNCS4(depthScan2d, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS4(depthScan3d, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS4(depthScanDesc, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(depthInfo, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(depthScan2dInfo, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(depthScan3dInfo, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(depthScanDescInfo, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// RGB + Depth + Odom
|
||||
DATA_SYNCS4(depthOdom, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo)
|
||||
DATA_SYNCS5(depthOdomScan2d, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS5(depthOdomScan3d, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS5(depthOdomScanDesc, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS5(depthOdomInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(depthOdomScan2dInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(depthOdomScan3dInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(depthOdomScanDescInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// RGB + Depth + User Data
|
||||
DATA_SYNCS4(depthData, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo)
|
||||
DATA_SYNCS5(depthDataScan2d, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS5(depthDataScan3d, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS5(depthDataScanDesc, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS5(depthDataInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(depthDataScan2dInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(depthDataScan3dInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(depthDataScanDescInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// RGB + Depth + Odom + User Data
|
||||
DATA_SYNCS5(depthOdomData, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo)
|
||||
DATA_SYNCS6(depthOdomDataScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS6(depthOdomDataScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS6(depthOdomDataScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS6(depthOdomDataInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(depthOdomDataScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(depthOdomDataScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(depthOdomDataScanDescInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
|
||||
// Stereo
|
||||
DATA_SYNCS4(stereo, sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::CameraInfo)
|
||||
@@ -279,193 +350,266 @@ private:
|
||||
DATA_SYNCS2(rgb, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo)
|
||||
DATA_SYNCS3(rgbScan2d, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS3(rgbScan3d, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS3(rgbScanDesc, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS3(rgbInfo, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbScan2dInfo, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbScan3dInfo, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbScanDescInfo, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// RGB-only + Odom
|
||||
DATA_SYNCS3(rgbOdom, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo)
|
||||
DATA_SYNCS4(rgbOdomScan2d, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS4(rgbOdomScan3d, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS4(rgbOdomScanDesc, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(rgbOdomInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbOdomScan2dInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbOdomScan3dInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbOdomScanDescInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// RGB-only + User Data
|
||||
DATA_SYNCS3(rgbData, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo)
|
||||
DATA_SYNCS4(rgbDataScan2d, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS4(rgbDataScan3d, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS4(rgbDataScanDesc, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(rgbDataInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbDataScan2dInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbDataScan3dInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbDataScanDescInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// RGB-only + Odom + User Data
|
||||
DATA_SYNCS4(rgbOdomData, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo)
|
||||
DATA_SYNCS5(rgbOdomDataScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS5(rgbOdomDataScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS5(rgbOdomDataScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS5(rgbOdomDataInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbOdomDataScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbOdomDataScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbOdomDataScanDescInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
|
||||
// 1 RGBD
|
||||
void rgbdCallback(const rtabmap_ros::msg::RGBDImage::ConstSharedPtr);
|
||||
DATA_SYNCS2(rgbdScan2d, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS2(rgbdScan3d, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS2(rgbdScanDesc, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS2(rgbdInfo, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS3(rgbdScan2dInfo, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS3(rgbdScan3dInfo, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 1 RGBD + Odom
|
||||
DATA_SYNCS2(rgbdOdom, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS3(rgbdOdomScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS3(rgbdOdomScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS3(rgbdOdomScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS3(rgbdOdomInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbdOdomScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbdOdomScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// 1 RGBD + User Data
|
||||
DATA_SYNCS2(rgbdData, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS3(rgbdDataScan2d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS3(rgbdDataScan3d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS3(rgbdDataScanDesc, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS3(rgbdDataInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbdDataScan2dInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbdDataScan3dInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 1 RGBD + Odom + User Data
|
||||
DATA_SYNCS3(rgbdOdomData, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS4(rgbdOdomDataScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS4(rgbdOdomDataScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS4(rgbdOdomDataScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(rgbdOdomDataInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbdOdomDataScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbdOdomDataScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
|
||||
// X RGBD
|
||||
void rgbdXCallback(const rtabmap_ros::msg::RGBDImages::ConstSharedPtr);
|
||||
DATA_SYNCS2(rgbdXScan2d, rtabmap_ros::msg::RGBDImages, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS2(rgbdXScan3d, rtabmap_ros::msg::RGBDImages, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS2(rgbdXScanDesc, rtabmap_ros::msg::RGBDImages, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS2(rgbdXInfo, rtabmap_ros::msg::RGBDImages, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// X RGBD + Odom
|
||||
DATA_SYNCS2(rgbdXOdom, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImages)
|
||||
DATA_SYNCS3(rgbdXOdomScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImages, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS3(rgbdXOdomScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImages, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS3(rgbdXOdomScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImages, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS3(rgbdXOdomInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImages, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// X RGBD + User Data
|
||||
DATA_SYNCS2(rgbdXData, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages)
|
||||
DATA_SYNCS3(rgbdXDataScan2d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS3(rgbdXDataScan3d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS3(rgbdXDataScanDesc, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS3(rgbdXDataInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// X RGBD + Odom + User Data
|
||||
DATA_SYNCS3(rgbdXOdomData, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages)
|
||||
DATA_SYNCS4(rgbdXOdomDataScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS4(rgbdXOdomDataScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS4(rgbdXOdomDataScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(rgbdXOdomDataInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImages, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
|
||||
#ifdef RTABMAP_SYNC_MULTI_RGBD
|
||||
// 2 RGBD
|
||||
DATA_SYNCS2(rgbd2, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS3(rgbd2Scan2d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS3(rgbd2Scan3d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS3(rgbd2ScanDesc, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS3(rgbd2Info, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbd2Scan2dInfo, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(rgbd2Scan3dInfo, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 2 RGBD + Odom
|
||||
DATA_SYNCS3(rgbd2Odom, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS4(rgbd2OdomScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS4(rgbd2OdomScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS4(rgbd2OdomScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(rgbd2OdomInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbd2OdomScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbd2OdomScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// 2 RGBD + User Data
|
||||
DATA_SYNCS3(rgbd2Data, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS4(rgbd2DataScan2d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS4(rgbd2DataScan3d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS4(rgbd2DataScanDesc, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(rgbd2DataInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbd2DataScan2dInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbd2DataScan3dInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 2 RGBD + Odom + User Data
|
||||
DATA_SYNCS4(rgbd2OdomData, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS5(rgbd2OdomDataScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS5(rgbd2OdomDataScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS5(rgbd2OdomDataScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS5(rgbd2OdomDataInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbd2OdomDataScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbd2OdomDataScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
|
||||
// 3 RGBD
|
||||
DATA_SYNCS3(rgbd3, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS4(rgbd3Scan2d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS4(rgbd3Scan3d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS4(rgbd3ScanDesc, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(rgbd3Info, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbd3Scan2dInfo, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS5(rgbd3Scan3dInfo, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 3 RGBD + Odom
|
||||
DATA_SYNCS4(rgbd3Odom, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS5(rgbd3OdomScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS5(rgbd3OdomScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS5(rgbd3OdomScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS5(rgbd3OdomInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbd3OdomScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbd3OdomScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// 3 RGBD + User Data
|
||||
DATA_SYNCS4(rgbd3Data, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS5(rgbd3DataScan2d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS5(rgbd3DataScan3d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS5(rgbd3DataScanDesc, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS5(rgbd3DataInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbd3DataScan2dInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbd3DataScan3dInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 3 RGBD + Odom + User Data
|
||||
DATA_SYNCS5(rgbd3OdomData, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS6(rgbd3OdomDataScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS6(rgbd3OdomDataScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS6(rgbd3OdomDataScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS6(rgbd3OdomDataInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(rgbd3OdomDataScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(rgbd3OdomDataScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
|
||||
// 4 RGBD
|
||||
DATA_SYNCS4(rgbd4, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS5(rgbd4Scan2d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS5(rgbd4Scan3d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS5(rgbd4ScanDesc, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS5(rgbd4Info, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbd4Scan2dInfo, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS6(rgbd4Scan3dInfo, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 4 RGBD + Odom
|
||||
DATA_SYNCS5(rgbd4Odom, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS6(rgbd4OdomScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS6(rgbd4OdomScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS6(rgbd4OdomScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS6(rgbd4OdomInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(rgbd4OdomScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(rgbd4OdomScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// 4 RGBD + User Data
|
||||
DATA_SYNCS5(rgbd4Data, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS6(rgbd4DataScan2d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS6(rgbd4DataScan3d, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS6(rgbd4DataScanDesc, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS6(rgbd4DataInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(rgbd4DataScan2dInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS7(rgbd4DataScan3dInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 4 RGBD + Odom + User Data
|
||||
DATA_SYNCS6(rgbd4OdomData, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS7(rgbd4OdomDataScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS7(rgbd4OdomDataScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS7(rgbd4OdomDataScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS7(rgbd4OdomDataInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS8(rgbd4OdomDataScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS8(rgbd4OdomDataScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
|
||||
// 5 RGBD
|
||||
DATA_SYNCS5(rgbd5, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS6(rgbd5Scan2d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS6(rgbd5Scan3d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS6(rgbd5ScanDesc, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS6(rgbd5Info, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 5 RGBD + Odom
|
||||
DATA_SYNCS6(rgbd5Odom, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS7(rgbd5OdomScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS7(rgbd5OdomScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS7(rgbd5OdomScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS7(rgbd5OdomInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 6 RGBD
|
||||
DATA_SYNCS6(rgbd6, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS7(rgbd6Scan2d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS7(rgbd6Scan3d, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS7(rgbd6ScanDesc, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS7(rgbd6Info, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// 6 RGBD + Odom
|
||||
DATA_SYNCS7(rgbd6Odom, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS8(rgbd6OdomScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS8(rgbd6OdomScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS8(rgbd6OdomScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS8(rgbd6OdomInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#endif //RTABMAP_SYNC_MULTI_RGBD
|
||||
|
||||
// Scan
|
||||
void scan2dCallback(const sensor_msgs::msg::LaserScan::ConstSharedPtr);
|
||||
void scan3dCallback(const sensor_msgs::msg::PointCloud2::ConstSharedPtr);
|
||||
void scanDescCallback(const rtabmap_ros::msg::ScanDescriptor::ConstSharedPtr);
|
||||
DATA_SYNCS2(scan2dInfo, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS2(scan3dInfo, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS2(scanDescInfo, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// Scan + Odom
|
||||
DATA_SYNCS2(odomScan2d, nav_msgs::msg::Odometry, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS2(odomScan3d, nav_msgs::msg::Odometry, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS2(odomScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS3(odomScan2dInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS3(odomScan3dInfo, nav_msgs::msg::Odometry, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS3(odomScanDescInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// Scan + User Data
|
||||
DATA_SYNCS2(dataScan2d, rtabmap_ros::msg::UserData, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS2(dataScan3d, rtabmap_ros::msg::UserData, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS2(dataScanDesc, rtabmap_ros::msg::UserData, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS3(dataScan2dInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS3(dataScan3dInfo, rtabmap_ros::msg::UserData, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS3(dataScanDescInfo, rtabmap_ros::msg::UserData, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
// Scan + Odom + User Data
|
||||
DATA_SYNCS3(odomDataScan2d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::LaserScan)
|
||||
DATA_SYNCS3(odomDataScan3d, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::PointCloud2)
|
||||
DATA_SYNCS3(odomDataScanDesc, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::ScanDescriptor)
|
||||
DATA_SYNCS4(odomDataScan2dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::LaserScan, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(odomDataScan3dInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, sensor_msgs::msg::PointCloud2, rtabmap_ros::msg::OdomInfo)
|
||||
DATA_SYNCS4(odomDataScanDescInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::ScanDescriptor, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
|
||||
// Odom
|
||||
void odomCallback(const nav_msgs::msg::Odometry::ConstSharedPtr);
|
||||
DATA_SYNCS2(odomInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::OdomInfo)
|
||||
|
||||
#ifdef RTABMAP_SYNC_USER_DATA
|
||||
// Odom + User Data
|
||||
DATA_SYNCS2(odomData, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData)
|
||||
DATA_SYNCS3(odomDataInfo, nav_msgs::msg::Odometry, rtabmap_ros::msg::UserData, rtabmap_ros::msg::OdomInfo)
|
||||
#endif
|
||||
};
|
||||
|
||||
} /* namespace rtabmap_ros */
|
||||
|
||||
@@ -106,59 +106,59 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
if(PREFIX##ExactSync_) delete PREFIX##ExactSync_;
|
||||
|
||||
// Sync declarations
|
||||
#define SYNC_DECL2(PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1) \
|
||||
#define SYNC_DECL2(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1) \
|
||||
if(APPROX) \
|
||||
{ \
|
||||
PREFIX##ApproximateSync_ = new message_filters::Synchronizer<PREFIX##ApproximateSyncPolicy>( \
|
||||
PREFIX##ApproximateSyncPolicy(QUEUE_SIZE), SUB0, SUB1); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2)); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
PREFIX##ExactSync_ = new message_filters::Synchronizer<PREFIX##ExactSyncPolicy>( \
|
||||
PREFIX##ExactSyncPolicy(QUEUE_SIZE), SUB0, SUB1); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2)); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2)); \
|
||||
} \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s,\n %s", \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s \\\n %s", \
|
||||
name_.c_str(), \
|
||||
APPROX?"approx":"exact", \
|
||||
getTopicName(SUB0.getSubscriber()).c_str(), \
|
||||
getTopicName(SUB1.getSubscriber()).c_str());
|
||||
|
||||
#define SYNC_DECL3(PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2) \
|
||||
#define SYNC_DECL3(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2) \
|
||||
if(APPROX) \
|
||||
{ \
|
||||
PREFIX##ApproximateSync_ = new message_filters::Synchronizer<PREFIX##ApproximateSyncPolicy>( \
|
||||
PREFIX##ApproximateSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
PREFIX##ExactSync_ = new message_filters::Synchronizer<PREFIX##ExactSyncPolicy>( \
|
||||
PREFIX##ExactSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); \
|
||||
} \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s,\n %s,\n %s", \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s \\\n %s \\\n %s", \
|
||||
name_.c_str(), \
|
||||
APPROX?"approx":"exact", \
|
||||
getTopicName(SUB0.getSubscriber()).c_str(), \
|
||||
getTopicName(SUB1.getSubscriber()).c_str(), \
|
||||
getTopicName(SUB2.getSubscriber()).c_str());
|
||||
|
||||
#define SYNC_DECL4(PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3) \
|
||||
#define SYNC_DECL4(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3) \
|
||||
if(APPROX) \
|
||||
{ \
|
||||
PREFIX##ApproximateSync_ = new message_filters::Synchronizer<PREFIX##ApproximateSyncPolicy>( \
|
||||
PREFIX##ApproximateSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
PREFIX##ExactSync_ = new message_filters::Synchronizer<PREFIX##ExactSyncPolicy>( \
|
||||
PREFIX##ExactSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); \
|
||||
} \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s,\n %s,\n %s,\n %s", \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s \\\n %s \\\n %s \\\n %s", \
|
||||
name_.c_str(), \
|
||||
APPROX?"approx":"exact", \
|
||||
getTopicName(SUB0.getSubscriber()).c_str(), \
|
||||
@@ -166,20 +166,20 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
getTopicName(SUB2.getSubscriber()).c_str(), \
|
||||
getTopicName(SUB3.getSubscriber()).c_str());
|
||||
|
||||
#define SYNC_DECL5(PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4) \
|
||||
#define SYNC_DECL5(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4) \
|
||||
if(APPROX) \
|
||||
{ \
|
||||
PREFIX##ApproximateSync_ = new message_filters::Synchronizer<PREFIX##ApproximateSyncPolicy>( \
|
||||
PREFIX##ApproximateSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3, SUB4); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5)); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
PREFIX##ExactSync_ = new message_filters::Synchronizer<PREFIX##ExactSyncPolicy>( \
|
||||
PREFIX##ExactSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3, SUB4); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5)); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5)); \
|
||||
} \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s,\n %s,\n %s,\n %s,\n %s", \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s \\\n %s \\\n %s \\\n %s \\\n %s", \
|
||||
name_.c_str(), \
|
||||
approxSync?"approx":"exact", \
|
||||
getTopicName(SUB0.getSubscriber()).c_str(), \
|
||||
@@ -188,20 +188,20 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
getTopicName(SUB3.getSubscriber()).c_str(), \
|
||||
getTopicName(SUB4.getSubscriber()).c_str());
|
||||
|
||||
#define SYNC_DECL6(PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4, SUB5) \
|
||||
#define SYNC_DECL6(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4, SUB5) \
|
||||
if(APPROX) \
|
||||
{ \
|
||||
PREFIX##ApproximateSync_ = new message_filters::Synchronizer<PREFIX##ApproximateSyncPolicy>( \
|
||||
PREFIX##ApproximateSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3, SUB4, SUB5); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6)); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
PREFIX##ExactSync_ = new message_filters::Synchronizer<PREFIX##ExactSyncPolicy>( \
|
||||
PREFIX##ExactSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3, SUB4, SUB5); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6)); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6)); \
|
||||
} \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s,\n %s,\n %s,\n %s,\n %s,\n %s", \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s \\\n %s \\\n %s \\\n %s \\\n %s \\\n %s", \
|
||||
name_.c_str(), \
|
||||
APPROX?"approx":"exact", \
|
||||
getTopicName(SUB0.getSubscriber()).c_str(), \
|
||||
@@ -211,20 +211,20 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
getTopicName(SUB4.getSubscriber()).c_str(), \
|
||||
getTopicName(SUB5.getSubscriber()).c_str());
|
||||
|
||||
#define SYNC_DECL7(PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4, SUB5, SUB6) \
|
||||
#define SYNC_DECL7(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4, SUB5, SUB6) \
|
||||
if(APPROX) \
|
||||
{ \
|
||||
PREFIX##ApproximateSync_ = new message_filters::Synchronizer<PREFIX##ApproximateSyncPolicy>( \
|
||||
PREFIX##ApproximateSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3, SUB4, SUB5, SUB6); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6, std::placeholders::_7)); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6, std::placeholders::_7)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
PREFIX##ExactSync_ = new message_filters::Synchronizer<PREFIX##ExactSyncPolicy>( \
|
||||
PREFIX##ExactSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3, SUB4, SUB5, SUB6); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6, std::placeholders::_7)); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6, std::placeholders::_7)); \
|
||||
} \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s,\n %s,\n %s,\n %s,\n %s,\n %s,\n %s", \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s \\\n %s \\\n %s \\\n %s \\\n %s \\\n %s \\\n %s", \
|
||||
name_.c_str(), \
|
||||
APPROX?"approx":"exact", \
|
||||
getTopicName(SUB0.getSubscriber()).c_str(), \
|
||||
@@ -235,20 +235,20 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
getTopicName(SUB5.getSubscriber()).c_str(), \
|
||||
getTopicName(SUB6.getSubscriber()).c_str());
|
||||
|
||||
#define SYNC_DECL8(PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4, SUB5, SUB6, SUB7) \
|
||||
#define SYNC_DECL8(CLASS, PREFIX, APPROX, QUEUE_SIZE, SUB0, SUB1, SUB2, SUB3, SUB4, SUB5, SUB6, SUB7) \
|
||||
if(APPROX) \
|
||||
{ \
|
||||
PREFIX##ApproximateSync_ = new message_filters::Synchronizer<PREFIX##ApproximateSyncPolicy>( \
|
||||
PREFIX##ApproximateSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3, SUB4, SUB5, SUB6, SUB7); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6, std::placeholders::_7, std::placeholders::_8)); \
|
||||
PREFIX##ApproximateSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6, std::placeholders::_7, std::placeholders::_8)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
PREFIX##ExactSync_ = new message_filters::Synchronizer<PREFIX##ExactSyncPolicy>( \
|
||||
PREFIX##ExactSyncPolicy(QUEUE_SIZE), SUB0, SUB1, SUB2, SUB3, SUB4, SUB5, SUB6, SUB7); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CommonDataSubscriber::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6, std::placeholders::_7, std::placeholders::_8)); \
|
||||
PREFIX##ExactSync_->registerCallback(std::bind(&CLASS::PREFIX##Callback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6, std::placeholders::_7, std::placeholders::_8)); \
|
||||
} \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s,\n %s,\n %s,\n %s,\n %s,\n %s,\n %s", \
|
||||
subscribedTopicsMsg_ = uFormat("\n%s subscribed to (%s sync):\n %s \\\n %s \\\n %s \\\n %s \\\n %s \\\n %s \\\n %s \\\n %s", \
|
||||
name_.c_str(), \
|
||||
APPROX?"approx":"exact", \
|
||||
getTopicName(SUB0.getSubscriber()).c_str(), \
|
||||
|
||||
@@ -39,6 +39,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#include <std_msgs/msg/empty.hpp>
|
||||
#include <std_msgs/msg/int32.hpp>
|
||||
#include <std_msgs/msg/int32_multi_array.hpp>
|
||||
#include <std_msgs/msg/bool.hpp>
|
||||
#include <sensor_msgs/msg/nav_sat_fix.hpp>
|
||||
#include <sensor_msgs/msg/imu.hpp>
|
||||
@@ -52,7 +53,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include <rtabmap/core/Rtabmap.h>
|
||||
#include <rtabmap/core/OdometryInfo.h>
|
||||
|
||||
#include "rtabmap_ros/srv/get_node_data.hpp"
|
||||
#include "rtabmap_ros/srv/get_map.hpp"
|
||||
#include "rtabmap_ros/srv/get_map2.hpp"
|
||||
#include "rtabmap_ros/srv/list_labels.hpp"
|
||||
#include "rtabmap_ros/srv/publish_map.hpp"
|
||||
#include "rtabmap_ros/srv/set_goal.hpp"
|
||||
@@ -63,25 +66,26 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#include "rtabmap_ros/msg/odom_info.hpp"
|
||||
#include "rtabmap_ros/msg/info.hpp"
|
||||
#include "rtabmap_ros/srv/get_nodes_in_radius.hpp"
|
||||
#include "rtabmap_ros/srv/load_database.hpp"
|
||||
#include "rtabmap_ros/srv/detect_more_loop_closures.hpp"
|
||||
#include "rtabmap_ros/srv/global_bundle_adjustment.hpp"
|
||||
#include "rtabmap_ros/srv/cleanup_local_grids.hpp"
|
||||
#include "rtabmap_ros/srv/add_link.hpp"
|
||||
|
||||
#include "MapsManager.h"
|
||||
|
||||
#ifdef WITH_OCTOMAP_MSGS
|
||||
#include <octomap_msgs/GetOctomap.h>
|
||||
#include <octomap_msgs/srv/get_octomap.hpp>
|
||||
#endif
|
||||
|
||||
#ifdef WITH_APRILTAG_ROS
|
||||
#include <apriltag_ros/msg/april_tag_detection_array.hpp>
|
||||
#ifdef WITH_APRILTAG_MSGS
|
||||
#include <apriltag_msgs/msg/april_tag_detection_array.hpp>
|
||||
#endif
|
||||
|
||||
#ifdef WITH_MOVE_BASE_MSGS
|
||||
#include <actionlib/client/simple_action_client.h>
|
||||
#include <move_base_msgs/MoveBaseAction.h>
|
||||
#include <move_base_msgs/MoveBaseActionGoal.h>
|
||||
#include <move_base_msgs/MoveBaseActionResult.h>
|
||||
#include <move_base_msgs/MoveBaseActionFeedback.h>
|
||||
#include <actionlib_msgs/GoalStatusArray.h>
|
||||
typedef actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction> MoveBaseClient;
|
||||
#include <move_base_msgs/action/move_base.hpp>
|
||||
#include <rclcpp_action/rclcpp_action.hpp>
|
||||
#endif
|
||||
|
||||
namespace rtabmap {
|
||||
@@ -107,18 +111,26 @@ private:
|
||||
const std::vector<cv_bridge::CvImageConstPtr> & imageMsgs,
|
||||
const std::vector<cv_bridge::CvImageConstPtr> & depthMsgs,
|
||||
const std::vector<sensor_msgs::msg::CameraInfo> & cameraInfoMsgs,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg);
|
||||
const sensor_msgs::msg::LaserScan & scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const std::vector<rtabmap_ros::msg::GlobalDescriptor> & globalDescriptorMsgs = std::vector<rtabmap_ros::msg::GlobalDescriptor>(),
|
||||
const std::vector<std::vector<rtabmap_ros::msg::KeyPoint> > & localKeyPoints = std::vector<std::vector<rtabmap_ros::msg::KeyPoint> >(),
|
||||
const std::vector<std::vector<rtabmap_ros::msg::Point3f> > & localPoints3d = std::vector<std::vector<rtabmap_ros::msg::Point3f> >(),
|
||||
const std::vector<cv::Mat> & localDescriptors = std::vector<cv::Mat>());
|
||||
void commonDepthCallbackImpl(
|
||||
const std::string & odomFrameId,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
const std::vector<cv_bridge::CvImageConstPtr> & imageMsgs,
|
||||
const std::vector<cv_bridge::CvImageConstPtr> & depthMsgs,
|
||||
const std::vector<sensor_msgs::msg::CameraInfo> & cameraInfoMsgs,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scan2dMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg);
|
||||
const sensor_msgs::msg::LaserScan & scan2dMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const std::vector<rtabmap_ros::msg::GlobalDescriptor> & globalDescriptorMsgs,
|
||||
const std::vector<std::vector<rtabmap_ros::msg::KeyPoint> > & localKeyPoints,
|
||||
const std::vector<std::vector<rtabmap_ros::msg::Point3f> > & localPoints3d,
|
||||
const std::vector<cv::Mat> & localDescriptors);
|
||||
virtual void commonStereoCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
@@ -126,15 +138,20 @@ private:
|
||||
const cv_bridge::CvImageConstPtr& rightImageMsg,
|
||||
const sensor_msgs::msg::CameraInfo& leftCamInfoMsg,
|
||||
const sensor_msgs::msg::CameraInfo& rightCamInfoMsg,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg);
|
||||
const sensor_msgs::msg::LaserScan & scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const std::vector<rtabmap_ros::msg::GlobalDescriptor> & globalDescriptorMsgs = std::vector<rtabmap_ros::msg::GlobalDescriptor>(),
|
||||
const std::vector<rtabmap_ros::msg::KeyPoint> & localKeyPoints = std::vector<rtabmap_ros::msg::KeyPoint>(),
|
||||
const std::vector<rtabmap_ros::msg::Point3f> & localPoints3d = std::vector<rtabmap_ros::msg::Point3f>(),
|
||||
const cv::Mat & localDescriptors = cv::Mat());
|
||||
virtual void commonLaserScanCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg);
|
||||
const sensor_msgs::msg::LaserScan & scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const rtabmap_ros::msg::GlobalDescriptor & globalDescriptor = rtabmap_ros::msg::GlobalDescriptor());
|
||||
virtual void commonOdomCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
@@ -145,10 +162,11 @@ private:
|
||||
void userDataAsyncCallback(const rtabmap_ros::msg::UserData::SharedPtr dataMsg);
|
||||
void globalPoseAsyncCallback(const geometry_msgs::msg::PoseWithCovarianceStamped::SharedPtr globalPoseMsg);
|
||||
void gpsFixAsyncCallback(const sensor_msgs::msg::NavSatFix::SharedPtr gpsFixMsg);
|
||||
#ifdef WITH_APRILTAG_ROS
|
||||
void tagDetectionsAsyncCallback(const apriltag_ros::AprilTagDetectionArray tagDetections);
|
||||
#ifdef WITH_APRILTAG_MSGS
|
||||
void tagDetectionsAsyncCallback(const apriltag_msgs::msg::AprilTagDetectionArray::SharedPtr tagDetections);
|
||||
#endif
|
||||
void imuAsyncCallback(const sensor_msgs::msg::Imu::SharedPtr msg);
|
||||
void republishNodeDataCallback(const std_msgs::msg::Int32MultiArray::ConstSharedPtr msg);
|
||||
void interOdomCallback(const nav_msgs::msg::Odometry::SharedPtr msg);
|
||||
void interOdomInfoCallback(const nav_msgs::msg::Odometry::ConstSharedPtr & msg1, const rtabmap_ros::msg::OdomInfo::ConstSharedPtr & msg2);
|
||||
|
||||
@@ -170,24 +188,33 @@ private:
|
||||
const rtabmap::Transform & odom = rtabmap::Transform(),
|
||||
const std::string & odomFrameId = "",
|
||||
const cv::Mat & odomCovariance = cv::Mat::eye(6,6,CV_64FC1),
|
||||
const rtabmap::OdometryInfo & odomInfo = rtabmap::OdometryInfo());
|
||||
const rtabmap::OdometryInfo & odomInfo = rtabmap::OdometryInfo(),
|
||||
double timeMsgConversion = 0.0);
|
||||
std::map<int, rtabmap::Transform> filterNodesToAssemble(
|
||||
const std::map<int, rtabmap::Transform> & nodes,
|
||||
const rtabmap::Transform & currentPose);
|
||||
|
||||
void updateRtabmapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void resetRtabmapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void pauseRtabmapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void resumeRtabmapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void loadDatabaseCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::LoadDatabase::Request>, std::shared_ptr<rtabmap_ros::srv::LoadDatabase::Response>);
|
||||
void triggerNewMapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void backupDatabaseCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void detectMoreLoopClosuresCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::DetectMoreLoopClosures::Request>, std::shared_ptr<rtabmap_ros::srv::DetectMoreLoopClosures::Response>);
|
||||
void globalBundleAdjustmentCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::GlobalBundleAdjustment::Request>, std::shared_ptr<rtabmap_ros::srv::GlobalBundleAdjustment::Response>);
|
||||
void cleanupLocalGridsCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::CleanupLocalGrids::Request>, std::shared_ptr<rtabmap_ros::srv::CleanupLocalGrids::Response>);
|
||||
void setModeLocalizationCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void setModeMappingCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void setLogDebug(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void setLogInfo(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void setLogWarn(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void setLogError(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void getNodeDataCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::GetNodeData::Request>, std::shared_ptr<rtabmap_ros::srv::GetNodeData::Response>);
|
||||
void getMapDataCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::GetMap::Request>, std::shared_ptr<rtabmap_ros::srv::GetMap::Response>);
|
||||
void getMapData2Callback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::GetMap2::Request>, std::shared_ptr<rtabmap_ros::srv::GetMap2::Response>);
|
||||
void getMapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<nav_msgs::srv::GetMap::Request>, std::shared_ptr<nav_msgs::srv::GetMap::Response>);
|
||||
void getProbMapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<nav_msgs::srv::GetMap::Request>, std::shared_ptr<nav_msgs::srv::GetMap::Response>);
|
||||
void getProjMapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<nav_msgs::srv::GetMap::Request>, std::shared_ptr<nav_msgs::srv::GetMap::Response>);
|
||||
void getGridMapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<nav_msgs::srv::GetMap::Request>, std::shared_ptr<nav_msgs::srv::GetMap::Response>);
|
||||
void publishMapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::PublishMap::Request>, std::shared_ptr<rtabmap_ros::srv::PublishMap::Response>);
|
||||
void getPlanCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<nav_msgs::srv::GetPlan::Request>, std::shared_ptr<nav_msgs::srv::GetPlan::Response>);
|
||||
void getPlanNodesCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::GetPlan::Request>, std::shared_ptr<rtabmap_ros::srv::GetPlan::Response>);
|
||||
@@ -195,9 +222,11 @@ private:
|
||||
void cancelGoalCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void setLabelCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::SetLabel::Request>, std::shared_ptr<rtabmap_ros::srv::SetLabel::Response>);
|
||||
void listLabelsCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::ListLabels::Request>, std::shared_ptr<rtabmap_ros::srv::ListLabels::Response> res);
|
||||
void addLinkCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::AddLink::Request>, std::shared_ptr<rtabmap_ros::srv::AddLink::Response> res);
|
||||
void getNodesInRadiusCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::GetNodesInRadius::Request>, std::shared_ptr<rtabmap_ros::srv::GetNodesInRadius::Response> res);
|
||||
#ifdef WITH_OCTOMAP_MSGS
|
||||
void octomapBinaryCallback(const std::shared_ptr<rmw_request_id_t>, octomap_msgs::GetOctomap::Request>, std::shared_ptr<octomap_msgs::GetOctomap::Response>);
|
||||
void octomapFullCallback(const std::shared_ptr<rmw_request_id_t>, octomap_msgs::GetOctomap::Request>, std::shared_ptr<octomap_msgs::GetOctomap::Response>);
|
||||
void octomapBinaryCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<octomap_msgs::srv::GetOctomap::Request>, std::shared_ptr<octomap_msgs::srv::GetOctomap::Response>);
|
||||
void octomapFullCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<octomap_msgs::srv::GetOctomap::Request>, std::shared_ptr<octomap_msgs::srv::GetOctomap::Response>);
|
||||
#endif
|
||||
|
||||
void loadParameters(const std::string & configFile, rtabmap::ParametersMap & parameters);
|
||||
@@ -206,12 +235,15 @@ private:
|
||||
void publishStats(const rclcpp::Time & stamp);
|
||||
void publishCurrentGoal(const rclcpp::Time & stamp);
|
||||
#ifdef WITH_MOVE_BASE_MSGS
|
||||
void goalDoneCb(const actionlib::SimpleClientGoalState& state, const move_base_msgs::MoveBaseResult::SharedPtr& result);
|
||||
void goalActiveCb();
|
||||
void goalFeedbackCb(const move_base_msgs::MoveBaseFeedback::SharedPtr& feedback);
|
||||
using MoveBase = move_base_msgs::action::MoveBase;
|
||||
using GoalHandleMoveBase = rclcpp_action::ClientGoalHandle<MoveBase>;
|
||||
void goalResponseCallback(std::shared_future<GoalHandleMoveBase::SharedPtr> future);
|
||||
void feedbackCallback(GoalHandleMoveBase::SharedPtr, const std::shared_ptr<const MoveBase::Feedback> feedback);
|
||||
void resultCallback(const GoalHandleMoveBase::WrappedResult & result);
|
||||
#endif
|
||||
void publishLocalPath(const rclcpp::Time & stamp);
|
||||
void publishGlobalPath(const rclcpp::Time & stamp);
|
||||
void republishMaps();
|
||||
|
||||
private:
|
||||
rtabmap::Rtabmap rtabmap_;
|
||||
@@ -247,6 +279,11 @@ private:
|
||||
bool genScan_;
|
||||
double genScanMaxDepth_;
|
||||
double genScanMinDepth_;
|
||||
bool genDepth_;
|
||||
int genDepthDecimation_;
|
||||
int genDepthFillHolesSize_;
|
||||
int genDepthFillIterations_;
|
||||
double genDepthFillHolesError_;
|
||||
int scanCloudMaxPoints_;
|
||||
|
||||
rtabmap::Transform mapToOdom_;
|
||||
@@ -284,18 +321,25 @@ private:
|
||||
rclcpp::SyncParametersClient::SharedPtr parametersClient_;
|
||||
rclcpp::Subscription<rcl_interfaces::msg::ParameterEvent>::SharedPtr parameterEventSub_;
|
||||
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr updateSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr resetSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr pauseSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr resumeSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::LoadDatabase>::SharedPtr loadDatabaseSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr triggerNewMapSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr backupDatabase_;
|
||||
rclcpp::Service<rtabmap_ros::srv::DetectMoreLoopClosures>::SharedPtr detectMoreLoopClosuresSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::GlobalBundleAdjustment>::SharedPtr globalBundleAdjustmentSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::CleanupLocalGrids>::SharedPtr cleanupLocalGridsSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr setModeLocalizationSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr setModeMappingSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr setLogDebugSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr setLogInfoSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr setLogWarnSrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr setLogErrorSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::GetNodeData>::SharedPtr getNodeDataSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::GetMap>::SharedPtr getMapDataSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::GetMap2>::SharedPtr getMapData2Srv_;
|
||||
rclcpp::Service<nav_msgs::srv::GetMap>::SharedPtr getMapSrv_;
|
||||
rclcpp::Service<nav_msgs::srv::GetMap>::SharedPtr getProbMapSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::PublishMap>::SharedPtr publishMapDataSrv_;
|
||||
@@ -305,13 +349,15 @@ private:
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr cancelGoalSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::SetLabel>::SharedPtr setLabelSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::ListLabels>::SharedPtr listLabelsSrv_;
|
||||
|
||||
rclcpp::Service<rtabmap_ros::srv::AddLink>::SharedPtr addLinkSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::GetNodesInRadius>::SharedPtr getNodesInRadiusSrv_;
|
||||
#ifdef WITH_OCTOMAP_MSGS
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr octomapBinarySrv_;
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr octomapFullSrv_;
|
||||
rclcpp::Service<octomap_msgs::srv::GetOctomap>::SharedPtr octomapBinarySrv_;
|
||||
rclcpp::Service<octomap_msgs::srv::GetOctomap>::SharedPtr octomapFullSrv_;
|
||||
#endif
|
||||
#ifdef WITH_MOVE_BASE_MSGS
|
||||
rclcpp_action::Client<MoveBase>::SharedPtr moveBaseClient_;
|
||||
#endif
|
||||
|
||||
// MoveBaseClient * mbClient_;
|
||||
|
||||
std::thread* transformThread_;
|
||||
bool tfThreadRunning_;
|
||||
@@ -327,12 +373,14 @@ private:
|
||||
geometry_msgs::msg::PoseWithCovarianceStamped globalPose_;
|
||||
rclcpp::Subscription<sensor_msgs::msg::NavSatFix>::SharedPtr gpsFixAsyncSub_;
|
||||
rtabmap::GPS gps_;
|
||||
#ifdef WITH_APRILTAG_ROS
|
||||
rclcpp::Subscription<apriltag_ros::AprilTagDetectionArray>::SharedPtr tagDetectionsSub_;
|
||||
#ifdef WITH_APRILTAG_MSGS
|
||||
rclcpp::Subscription<apriltag_msgs::msg::AprilTagDetectionArray>::SharedPtr tagDetectionsSub_;
|
||||
#endif
|
||||
std::map<int, geometry_msgs::msg::PoseWithCovarianceStamped> tags_;
|
||||
std::map<int, std::pair<geometry_msgs::msg::PoseWithCovarianceStamped, float> > tags_; // id, <pose, size>
|
||||
rclcpp::Subscription<sensor_msgs::msg::Imu>::SharedPtr imuSub_;
|
||||
std::map<double, rtabmap::Transform> imus_;
|
||||
std::string imuFrameId_;
|
||||
rclcpp::Subscription<std_msgs::msg::Int32MultiArray>::SharedPtr republishNodeDataSub_;
|
||||
|
||||
rclcpp::Subscription<nav_msgs::msg::Odometry>::SharedPtr interOdomSub_;
|
||||
std::list<std::pair<nav_msgs::msg::Odometry, rtabmap_ros::msg::OdomInfo> > interOdoms_;
|
||||
@@ -345,8 +393,13 @@ private:
|
||||
bool odomSensorSync_;
|
||||
float rate_;
|
||||
bool createIntermediateNodes_;
|
||||
int maxMappingNodes_;
|
||||
int mappingMaxNodes_;
|
||||
double mappingAltitudeDelta_;
|
||||
bool alreadyRectifiedImages_;
|
||||
bool twoDMapping_;
|
||||
rclcpp::Time previousStamp_;
|
||||
std::set<int> nodesToRepublish_;
|
||||
int maxNodesRepublished_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
namespace rtabmap
|
||||
{
|
||||
class MainWindow;
|
||||
class PreferencesDialog;
|
||||
}
|
||||
|
||||
class QApplication;
|
||||
@@ -78,9 +79,13 @@ private:
|
||||
const std::vector<cv_bridge::CvImageConstPtr> & imageMsgs,
|
||||
const std::vector<cv_bridge::CvImageConstPtr> & depthMsgs,
|
||||
const std::vector<sensor_msgs::msg::CameraInfo> & cameraInfoMsgs,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg);
|
||||
const sensor_msgs::msg::LaserScan & scanMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const std::vector<rtabmap_ros::msg::GlobalDescriptor> & globalDescriptorMsgs = std::vector<rtabmap_ros::msg::GlobalDescriptor>(),
|
||||
const std::vector<std::vector<rtabmap_ros::msg::KeyPoint> > & localKeyPoints = std::vector<std::vector<rtabmap_ros::msg::KeyPoint> >(),
|
||||
const std::vector<std::vector<rtabmap_ros::msg::Point3f> > & localPoints3d = std::vector<std::vector<rtabmap_ros::msg::Point3f> >(),
|
||||
const std::vector<cv::Mat> & localDescriptors = std::vector<cv::Mat>());
|
||||
virtual void commonStereoCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
@@ -88,15 +93,20 @@ private:
|
||||
const cv_bridge::CvImageConstPtr& rightImageMsg,
|
||||
const sensor_msgs::msg::CameraInfo& leftCamInfoMsg,
|
||||
const sensor_msgs::msg::CameraInfo& rightCamInfoMsg,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scan2dMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg);
|
||||
const sensor_msgs::msg::LaserScan & scan2dMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const std::vector<rtabmap_ros::msg::GlobalDescriptor> & globalDescriptorMsgs = std::vector<rtabmap_ros::msg::GlobalDescriptor>(),
|
||||
const std::vector<rtabmap_ros::msg::KeyPoint> & localKeyPoints = std::vector<rtabmap_ros::msg::KeyPoint>(),
|
||||
const std::vector<rtabmap_ros::msg::Point3f> & localPoints3d = std::vector<rtabmap_ros::msg::Point3f>(),
|
||||
const cv::Mat & localDescriptors = cv::Mat());
|
||||
virtual void commonLaserScanCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
const rtabmap_ros::msg::UserData::ConstSharedPtr & userDataMsg,
|
||||
const sensor_msgs::msg::LaserScan::ConstSharedPtr& scan2dMsg,
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr& scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg);
|
||||
const sensor_msgs::msg::LaserScan & scan2dMsg,
|
||||
const sensor_msgs::msg::PointCloud2 & scan3dMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr& odomInfoMsg,
|
||||
const rtabmap_ros::msg::GlobalDescriptor & globalDescriptor = rtabmap_ros::msg::GlobalDescriptor());
|
||||
|
||||
virtual void commonOdomCallback(
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr & odomMsg,
|
||||
@@ -110,9 +120,11 @@ private:
|
||||
bool callMapDataService(const std::string & name, bool global, bool optimized, bool graphOnly);
|
||||
|
||||
private:
|
||||
rtabmap::PreferencesDialog * prefDialog_;
|
||||
rtabmap::MainWindow * mainWindow_;
|
||||
std::string cameraNodeName_;
|
||||
double lastOdomInfoUpdateTime_;
|
||||
std::string rtabmapNodeName_;
|
||||
|
||||
// odometry subscription stuffs
|
||||
std::string frameId_;
|
||||
|
||||
@@ -37,6 +37,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include <sensor_msgs/msg/point_cloud2.hpp>
|
||||
#include <nav_msgs/msg/occupancy_grid.hpp>
|
||||
|
||||
#ifdef RTABMAP_OCTOMAP
|
||||
#ifdef WITH_OCTOMAP_MSGS
|
||||
#include <octomap_msgs/msg/octomap.hpp>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
namespace rtabmap {
|
||||
class OctoMap;
|
||||
class Memory;
|
||||
@@ -80,7 +86,9 @@ public:
|
||||
float & yMin,
|
||||
float & gridCellSize);
|
||||
|
||||
#ifdef RTABMAP_OCTOMAP
|
||||
const rtabmap::OctoMap * getOctomap() const {return octomap_;}
|
||||
#endif
|
||||
const rtabmap::OccupancyGrid * getOccupancyGrid() const {return occupancyGrid_;}
|
||||
|
||||
private:
|
||||
@@ -99,11 +107,10 @@ private:
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr cloudObstaclesPub_;
|
||||
rclcpp::Publisher<nav_msgs::msg::OccupancyGrid>::SharedPtr gridMapPub_;
|
||||
rclcpp::Publisher<nav_msgs::msg::OccupancyGrid>::SharedPtr gridProbMapPub_;
|
||||
#ifdef WITH_OCTOMAP_MSGS
|
||||
#ifdef RTABMAP_OCTOMAP
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr octoMapPubBin_;
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr octoMapPubFull_;
|
||||
#endif
|
||||
#ifdef WITH_OCTOMAP_MSGS
|
||||
rclcpp::Publisher<octomap_msgs::msg::Octomap>::SharedPtr octoMapPubBin_;
|
||||
rclcpp::Publisher<octomap_msgs::msg::Octomap>::SharedPtr octoMapPubFull_;
|
||||
#endif
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr octoMapCloud_;
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr octoMapFrontierCloud_;
|
||||
@@ -111,6 +118,7 @@ private:
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr octoMapObstacleCloud_;
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr octoMapEmptySpace_;
|
||||
rclcpp::Publisher<nav_msgs::msg::OccupancyGrid>::SharedPtr octoMapProj_;
|
||||
#endif
|
||||
|
||||
std::map<int, rtabmap::Transform> assembledGroundPoses_;
|
||||
std::map<int, rtabmap::Transform> assembledObstaclePoses_;
|
||||
@@ -129,7 +137,9 @@ private:
|
||||
rtabmap::OccupancyGrid * occupancyGrid_;
|
||||
bool gridUpdated_;
|
||||
|
||||
#ifdef RTABMAP_OCTOMAP
|
||||
rtabmap::OctoMap * octomap_;
|
||||
#endif
|
||||
int octomapTreeDepth_;
|
||||
bool octomapUpdated_;
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include <sensor_msgs/msg/camera_info.hpp>
|
||||
#include <sensor_msgs/msg/laser_scan.hpp>
|
||||
#include <sensor_msgs/msg/image.hpp>
|
||||
#include <sensor_msgs/msg/point_cloud2.hpp>
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <opencv2/features2d/features2d.hpp>
|
||||
@@ -69,10 +70,12 @@ void transformToGeometryMsg(const rtabmap::Transform & transform, geometry_msgs:
|
||||
rtabmap::Transform transformFromGeometryMsg(const geometry_msgs::msg::Transform & msg);
|
||||
|
||||
void transformToPoseMsg(const rtabmap::Transform & transform, geometry_msgs::msg::Pose & msg);
|
||||
rtabmap::Transform transformFromPoseMsg(const geometry_msgs::msg::Pose & msg);
|
||||
rtabmap::Transform transformFromPoseMsg(const geometry_msgs::msg::Pose & msg, bool ignoreRotationIfNotSet = false);
|
||||
|
||||
void toCvCopy(const rtabmap_ros::msg::RGBDImage & image, cv_bridge::CvImagePtr & rgb, cv_bridge::CvImagePtr & depth);
|
||||
void toCvShare(const rtabmap_ros::msg::RGBDImage::ConstSharedPtr & image, cv_bridge::CvImageConstPtr & rgb, cv_bridge::CvImageConstPtr & depth);
|
||||
void toCvShare(const rtabmap_ros::msg::RGBDImage & image, const std::shared_ptr<void const>& trackedObject, cv_bridge::CvImageConstPtr & rgb, cv_bridge::CvImageConstPtr & depth);
|
||||
void rgbdImageToROS(const rtabmap::SensorData & data, rtabmap_ros::msg::RGBDImage & msg, const std::string & sensorFrameId);
|
||||
rtabmap::SensorData rgbdImageFromROS(const rtabmap_ros::msg::RGBDImage::ConstSharedPtr & image);
|
||||
|
||||
// copy data
|
||||
@@ -89,8 +92,20 @@ cv::KeyPoint keypointFromROS(const rtabmap_ros::msg::KeyPoint & msg);
|
||||
void keypointToROS(const cv::KeyPoint & kpt, rtabmap_ros::msg::KeyPoint & msg);
|
||||
|
||||
std::vector<cv::KeyPoint> keypointsFromROS(const std::vector<rtabmap_ros::msg::KeyPoint> & msg);
|
||||
void keypointsFromROS(const std::vector<rtabmap_ros::msg::KeyPoint> & msg, std::vector<cv::KeyPoint> & kpts, int xShift=0);
|
||||
void keypointsToROS(const std::vector<cv::KeyPoint> & kpts, std::vector<rtabmap_ros::msg::KeyPoint> & msg);
|
||||
|
||||
rtabmap::GlobalDescriptor globalDescriptorFromROS(const rtabmap_ros::msg::GlobalDescriptor & msg);
|
||||
void globalDescriptorToROS(const rtabmap::GlobalDescriptor & desc, rtabmap_ros::msg::GlobalDescriptor & msg);
|
||||
|
||||
std::vector<rtabmap::GlobalDescriptor> globalDescriptorsFromROS(const std::vector<rtabmap_ros::msg::GlobalDescriptor> & msg);
|
||||
void globalDescriptorsToROS(const std::vector<rtabmap::GlobalDescriptor> & desc, std::vector<rtabmap_ros::msg::GlobalDescriptor> & msg);
|
||||
|
||||
rtabmap::EnvSensor envSensorFromROS(const rtabmap_ros::msg::EnvSensor & msg);
|
||||
void envSensorToROS(const rtabmap::EnvSensor & sensor, rtabmap_ros::msg::EnvSensor & msg);
|
||||
rtabmap::EnvSensors envSensorsFromROS(const std::vector<rtabmap_ros::msg::EnvSensor> & msg);
|
||||
void envSensorsToROS(const rtabmap::EnvSensors & sensors, std::vector<rtabmap_ros::msg::EnvSensor> & msg);
|
||||
|
||||
cv::Point2f point2fFromROS(const rtabmap_ros::msg::Point2f & msg);
|
||||
void point2fToROS(const cv::Point2f & kpt, rtabmap_ros::msg::Point2f & msg);
|
||||
|
||||
@@ -100,8 +115,9 @@ void points2fToROS(const std::vector<cv::Point2f> & kpts, std::vector<rtabmap_ro
|
||||
cv::Point3f point3fFromROS(const rtabmap_ros::msg::Point3f & msg);
|
||||
void point3fToROS(const cv::Point3f & kpt, rtabmap_ros::msg::Point3f & msg);
|
||||
|
||||
std::vector<cv::Point3f> points3fFromROS(const std::vector<rtabmap_ros::msg::Point3f> & msg);
|
||||
void points3fToROS(const std::vector<cv::Point3f> & kpts, std::vector<rtabmap_ros::msg::Point3f> & msg);
|
||||
std::vector<cv::Point3f> points3fFromROS(const std::vector<rtabmap_ros::msg::Point3f> & msg, const rtabmap::Transform & transform = rtabmap::Transform());
|
||||
void points3fFromROS(const std::vector<rtabmap_ros::msg::Point3f> & msg, std::vector<cv::Point3f> & points3, const rtabmap::Transform & transform = rtabmap::Transform());
|
||||
void points3fToROS(const std::vector<cv::Point3f> & kpts, std::vector<rtabmap_ros::msg::Point3f> & msg, const rtabmap::Transform & transform = rtabmap::Transform());
|
||||
|
||||
rtabmap::CameraModel cameraModelFromROS(
|
||||
const sensor_msgs::msg::CameraInfo & camInfo,
|
||||
@@ -153,14 +169,14 @@ rtabmap::Signature nodeInfoFromROS(const rtabmap_ros::msg::NodeData & msg);
|
||||
void nodeInfoToROS(const rtabmap::Signature & signature, rtabmap_ros::msg::NodeData & msg);
|
||||
|
||||
std::map<std::string, float> odomInfoToStatistics(const rtabmap::OdometryInfo & info);
|
||||
rtabmap::OdometryInfo odomInfoFromROS(const rtabmap_ros::msg::OdomInfo & msg);
|
||||
void odomInfoToROS(const rtabmap::OdometryInfo & info, rtabmap_ros::msg::OdomInfo & msg);
|
||||
rtabmap::OdometryInfo odomInfoFromROS(const rtabmap_ros::msg::OdomInfo & msg, bool ignoreData = false);
|
||||
void odomInfoToROS(const rtabmap::OdometryInfo & info, rtabmap_ros::msg::OdomInfo & msg, bool ignoreData = false);
|
||||
|
||||
cv::Mat userDataFromROS(const rtabmap_ros::msg::UserData & dataMsg);
|
||||
void userDataToROS(const cv::Mat & data, rtabmap_ros::msg::UserData & dataMsg, bool compress);
|
||||
|
||||
rtabmap::Landmarks landmarksFromROS(
|
||||
const std::map<int, geometry_msgs::msg::PoseWithCovarianceStamped> & tags,
|
||||
const std::map<int, std::pair<geometry_msgs::msg::PoseWithCovarianceStamped, float> > & tags,
|
||||
const std::string & frameId,
|
||||
const std::string & odomFrameId,
|
||||
const rclcpp::Time & odomStamp,
|
||||
@@ -170,6 +186,7 @@ rtabmap::Landmarks landmarksFromROS(
|
||||
double defaultAngVariance);
|
||||
|
||||
inline double timestampFromROS(const rclcpp::Time & stamp) {return double(stamp.seconds()) + double(stamp.nanoseconds())/1000000000.0;}
|
||||
inline rclcpp::Time timestampToROS(const double & t) {uint32_t sec= (uint32_t)floor(t); return rclcpp::Time(sec, (uint32_t)std::round((t-sec) * 1e9));}
|
||||
|
||||
// common stuff
|
||||
rtabmap::Transform getTransform(
|
||||
@@ -201,7 +218,13 @@ bool convertRGBDMsgs(
|
||||
cv::Mat & depth,
|
||||
std::vector<rtabmap::CameraModel> & cameraModels,
|
||||
tf2_ros::Buffer & tfBuffer,
|
||||
double waitForTransform);
|
||||
double waitForTransform,
|
||||
const std::vector<std::vector<rtabmap_ros::msg::KeyPoint> > & localKeyPointsMsgs = std::vector<std::vector<rtabmap_ros::msg::KeyPoint> >(),
|
||||
const std::vector<std::vector<rtabmap_ros::msg::Point3f> > & localPoints3dMsgs = std::vector<std::vector<rtabmap_ros::msg::Point3f> >(),
|
||||
const std::vector<cv::Mat> & localDescriptorsMsgs = std::vector<cv::Mat>(),
|
||||
std::vector<cv::KeyPoint> * localKeyPoints = 0,
|
||||
std::vector<cv::Point3f> * localPoints3d = 0,
|
||||
cv::Mat * localDescriptors = 0);
|
||||
|
||||
bool convertStereoMsg(
|
||||
const cv_bridge::CvImageConstPtr& leftImageMsg,
|
||||
@@ -215,10 +238,11 @@ bool convertStereoMsg(
|
||||
cv::Mat & right,
|
||||
rtabmap::StereoCameraModel & stereoModel,
|
||||
tf2_ros::Buffer & tfBuffer,
|
||||
double waitForTransform);
|
||||
double waitForTransform,
|
||||
bool alreadyRectified);
|
||||
|
||||
bool convertScanMsg(
|
||||
const sensor_msgs::msg::LaserScan& scan2dMsg,
|
||||
const sensor_msgs::msg::LaserScan & scan2dMsg,
|
||||
const std::string & frameId,
|
||||
const std::string & odomFrameId,
|
||||
const rclcpp::Time & odomStamp,
|
||||
@@ -243,6 +267,30 @@ void transformPointCloud (
|
||||
const Eigen::Matrix4f &transform,
|
||||
const sensor_msgs::msg::PointCloud2 &in,
|
||||
sensor_msgs::msg::PointCloud2 &out);
|
||||
|
||||
/** Return the size of a datatype (which is an enum of sensor_msgs::PointField::) in bytes
|
||||
* @param datatype one of the enums of sensor_msgs::PointField::
|
||||
* Note: Missing function in ros2 (from old pcl_ros)
|
||||
*/
|
||||
inline int sizeOfPointField(int datatype)
|
||||
{
|
||||
if ((datatype == sensor_msgs::msg::PointField::INT8) || (datatype == sensor_msgs::msg::PointField::UINT8))
|
||||
return 1;
|
||||
else if ((datatype == sensor_msgs::msg::PointField::INT16) || (datatype == sensor_msgs::msg::PointField::UINT16))
|
||||
return 2;
|
||||
else if ((datatype == sensor_msgs::msg::PointField::INT32) || (datatype == sensor_msgs::msg::PointField::UINT32) ||
|
||||
(datatype == sensor_msgs::msg::PointField::FLOAT32))
|
||||
return 4;
|
||||
else if (datatype == sensor_msgs::msg::PointField::FLOAT64)
|
||||
return 8;
|
||||
else
|
||||
{
|
||||
std::stringstream err;
|
||||
err << "PointField of type " << datatype << " does not exist";
|
||||
throw std::runtime_error(err.str());
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* MSGCONVERSION_H_ */
|
||||
|
||||
@@ -41,6 +41,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include <sensor_msgs/msg/point_cloud2.hpp>
|
||||
|
||||
#include <rtabmap_ros/msg/odom_info.hpp>
|
||||
#include <rtabmap_ros/msg/rgbd_image.hpp>
|
||||
#include <rtabmap_ros/srv/reset_pose.hpp>
|
||||
#include <rtabmap/core/SensorData.h>
|
||||
#include <rtabmap/core/Parameters.h>
|
||||
@@ -61,7 +62,7 @@ public:
|
||||
explicit OdometryROS(const std::string & name, const rclcpp::NodeOptions & options);
|
||||
virtual ~OdometryROS();
|
||||
|
||||
void processData(const rtabmap::SensorData & data, const rclcpp::Time & stamp);
|
||||
void processData(rtabmap::SensorData & data, const std_msgs::msg::Header & header);
|
||||
|
||||
void resetOdom(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
|
||||
void resetToPose(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<rtabmap_ros::srv::ResetPose::Request>, std::shared_ptr<rtabmap_ros::srv::ResetPose::Response>);
|
||||
@@ -82,10 +83,10 @@ protected:
|
||||
void startWarningThread(const std::string & subscribedTopicsMsg, bool approxSync);
|
||||
void callbackCalled() {callbackCalled_ = true;}
|
||||
|
||||
virtual void flushCallbacks() {}
|
||||
virtual void flushCallbacks() {};
|
||||
tf2_ros::Buffer & tfBuffer() {return *tfBuffer_;}
|
||||
const double & waitForTransform() const {return waitForTransform_;}
|
||||
const int & queueSize() const {return queueSize_;}
|
||||
virtual void postProcessData(const rtabmap::SensorData & /*data*/, const std_msgs::msg::Header & /*header*/) const {}
|
||||
|
||||
private:
|
||||
void warningLoop(const std::string & subscribedTopicsMsg, bool approxSync);
|
||||
@@ -114,14 +115,15 @@ private:
|
||||
bool publishTf_;
|
||||
double waitForTransform_;
|
||||
bool publishNullWhenLost_;
|
||||
int queueSize_;
|
||||
rtabmap::ParametersMap parameters_;
|
||||
|
||||
rclcpp::Publisher<nav_msgs::msg::Odometry>::SharedPtr odomPub_;
|
||||
rclcpp::Publisher<rtabmap_ros::msg::OdomInfo>::SharedPtr odomInfoPub_;
|
||||
rclcpp::Publisher<rtabmap_ros::msg::OdomInfo>::SharedPtr odomInfoLitePub_;
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr odomLocalMap_;
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr odomLocalScanMap_;
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr odomLastFrame_;
|
||||
rclcpp::Publisher<rtabmap_ros::msg::RGBDImage>::SharedPtr odomRgbdImagePub_;
|
||||
|
||||
rclcpp::Service<std_srvs::srv::Empty>::SharedPtr resetSrv_;
|
||||
rclcpp::Service<rtabmap_ros::srv::ResetPose>::SharedPtr resetToPoseSrv_;
|
||||
@@ -147,11 +149,12 @@ private:
|
||||
rtabmap::Transform guessPreviousPose_;
|
||||
double previousStamp_;
|
||||
double expectedUpdateRate_;
|
||||
double maxUpdateRate_;
|
||||
int odomStrategy_;
|
||||
bool waitIMUToinit_;
|
||||
bool imuProcessed_;
|
||||
double lastImuReceivedStamp_;
|
||||
rtabmap::SensorData bufferedData_;
|
||||
std::map<double, rtabmap::IMU> imus_;
|
||||
std::pair<rtabmap::SensorData, std_msgs::msg::Header > bufferedData_;
|
||||
std::string configPath_;
|
||||
rtabmap::Transform initialPose_;
|
||||
};
|
||||
|
||||
@@ -37,7 +37,7 @@ using namespace rtabmap;
|
||||
class PreferencesDialogROS : public PreferencesDialog
|
||||
{
|
||||
public:
|
||||
PreferencesDialogROS(rclcpp::Node * node, const QString & configFile);
|
||||
PreferencesDialogROS(rclcpp::Node * node, const QString & configFile, const std::string & rtabmapNodeName);
|
||||
virtual ~PreferencesDialogROS();
|
||||
|
||||
virtual QString getIniFilePath() const;
|
||||
@@ -54,6 +54,7 @@ protected:
|
||||
private:
|
||||
QString configFile_;
|
||||
rclcpp::Node * node_;
|
||||
std::string rtabmapNodeName_;
|
||||
};
|
||||
|
||||
#endif /* PREFERENCESDIALOGROS_H_ */
|
||||
|
||||
@@ -61,6 +61,7 @@ private:
|
||||
|
||||
protected:
|
||||
virtual void flushCallbacks();
|
||||
void postProcessData(const SensorData & data, const std_msgs::msg::Header & header) const;
|
||||
|
||||
private:
|
||||
rclcpp::Subscription<sensor_msgs::msg::LaserScan>::SharedPtr scan_sub_;
|
||||
@@ -73,8 +74,11 @@ private:
|
||||
double scanVoxelSize_;
|
||||
int scanNormalK_;
|
||||
double scanNormalRadius_;
|
||||
double scanNormalGroundUp_;
|
||||
//std::vector<std::shared_ptr<rtabmap_ros::PluginInterface> > plugins_;
|
||||
//pluginlib::ClassLoader<rtabmap_ros::PluginInterface> plugin_loader_;
|
||||
bool scanReceived_ = false;
|
||||
bool cloudReceived_ = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ private:
|
||||
|
||||
std::string frameId_;
|
||||
std::string fixedFrameId_;
|
||||
|
||||
double waitForTransform_;
|
||||
std::shared_ptr<tf2_ros::Buffer> tfBuffer_;
|
||||
std::shared_ptr<tf2_ros::TransformListener> tfListener_;
|
||||
};
|
||||
|
||||
@@ -61,6 +61,11 @@ public:
|
||||
virtual ~PointCloudAssembler();
|
||||
|
||||
private:
|
||||
void callbackCloudOdomInfo(
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr cloudMsg,
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr odomMsg,
|
||||
const rtabmap_ros::msg::OdomInfo::ConstSharedPtr odomInfoMsg);
|
||||
|
||||
void callbackCloudOdom(
|
||||
const sensor_msgs::msg::PointCloud2::ConstSharedPtr cloudMsg,
|
||||
const nav_msgs::msg::Odometry::ConstSharedPtr odomMsg);
|
||||
@@ -75,24 +80,36 @@ private:
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr cloudPub_;
|
||||
|
||||
typedef message_filters::sync_policies::ExactTime<sensor_msgs::msg::PointCloud2, nav_msgs::msg::Odometry> syncPolicy;
|
||||
typedef message_filters::sync_policies::ExactTime<sensor_msgs::msg::PointCloud2, nav_msgs::msg::Odometry, rtabmap_ros::msg::OdomInfo> syncInfoPolicy;
|
||||
message_filters::Synchronizer<syncPolicy>* exactSync_;
|
||||
message_filters::Synchronizer<syncInfoPolicy>* exactInfoSync_;
|
||||
message_filters::Subscriber<sensor_msgs::msg::PointCloud2> syncCloudSub_;
|
||||
message_filters::Subscriber<nav_msgs::msg::Odometry> syncOdomSub_;
|
||||
message_filters::Subscriber<rtabmap_ros::msg::OdomInfo> syncOdomInfoSub_;
|
||||
|
||||
int maxClouds_;
|
||||
int skipClouds_;
|
||||
int cloudsSkipped_;
|
||||
bool circularBuffer_;
|
||||
double linearUpdate_;
|
||||
double angularUpdate_;
|
||||
double assemblingTime_;
|
||||
double waitForTransformDuration_;
|
||||
double waitForTransform_;
|
||||
double rangeMin_;
|
||||
double rangeMax_;
|
||||
double voxelSize_;
|
||||
double noiseRadius_;
|
||||
int noiseMinNeighbors_;
|
||||
bool removeZ_;
|
||||
std::string fixedFrameId_;
|
||||
std::string frameId_;
|
||||
std::shared_ptr<tf2_ros::Buffer> tfBuffer_;
|
||||
std::shared_ptr<tf2_ros::TransformListener> tfListener_;
|
||||
rtabmap::Transform previousPose_;
|
||||
|
||||
std::vector<sensor_msgs::msg::PointCloud2::SharedPtr> clouds_;
|
||||
std::list<pcl::PCLPointCloud2::Ptr> clouds_;
|
||||
|
||||
std::string subscribedTopicsMsg_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ private:
|
||||
private:
|
||||
image_transport::Publisher depthImage16Pub_;
|
||||
image_transport::Publisher depthImage32Pub_;
|
||||
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr pointCloudTransformedPub_;
|
||||
message_filters::Subscriber<sensor_msgs::msg::PointCloud2> pointCloudSub_;
|
||||
message_filters::Subscriber<sensor_msgs::msg::CameraInfo> cameraInfoSub_;
|
||||
std::string fixedFrameId_;
|
||||
@@ -77,3 +78,4 @@ private:
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the Universite de Sherbrooke nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <rtabmap_ros/visibility.h>
|
||||
#include "rclcpp/rclcpp.hpp"
|
||||
|
||||
#include <sensor_msgs/msg/image.hpp>
|
||||
#include <sensor_msgs/msg/camera_info.hpp>
|
||||
|
||||
#include <image_transport/image_transport.hpp>
|
||||
#include <image_transport/subscriber_filter.hpp>
|
||||
|
||||
#include <message_filters/sync_policies/approximate_time.h>
|
||||
#include <message_filters/sync_policies/exact_time.h>
|
||||
#include <message_filters/subscriber.h>
|
||||
|
||||
#include "rtabmap_ros/msg/rgbd_image.hpp"
|
||||
|
||||
namespace rtabmap_ros
|
||||
{
|
||||
|
||||
class RGBSync : public rclcpp::Node
|
||||
{
|
||||
public:
|
||||
RTABMAP_ROS_PUBLIC
|
||||
explicit RGBSync(const rclcpp::NodeOptions & options);
|
||||
|
||||
virtual ~RGBSync();
|
||||
|
||||
void callback(
|
||||
const sensor_msgs::msg::Image::ConstSharedPtr image,
|
||||
const sensor_msgs::msg::CameraInfo::ConstSharedPtr cameraInfo);
|
||||
|
||||
private:
|
||||
double compressedRate_;
|
||||
std::thread * warningThread_;
|
||||
bool callbackCalled_;
|
||||
|
||||
rclcpp::Time lastCompressedPublished_;
|
||||
|
||||
std::string subscribedTopicsMsg_;
|
||||
|
||||
rclcpp::Publisher<rtabmap_ros::msg::RGBDImage>::SharedPtr rgbdImagePub_;
|
||||
rclcpp::Publisher<rtabmap_ros::msg::RGBDImage>::SharedPtr rgbdImageCompressedPub_;
|
||||
|
||||
image_transport::SubscriberFilter imageSub_;
|
||||
message_filters::Subscriber<sensor_msgs::msg::CameraInfo> cameraInfoSub_;
|
||||
|
||||
typedef message_filters::sync_policies::ApproximateTime<sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo> MyApproxSyncPolicy;
|
||||
message_filters::Synchronizer<MyApproxSyncPolicy> * approxSync_;
|
||||
|
||||
typedef message_filters::sync_policies::ExactTime<sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo> MyExactSyncPolicy;
|
||||
message_filters::Synchronizer<MyExactSyncPolicy> * exactSync_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -84,6 +84,13 @@ private:
|
||||
const rtabmap_ros::msg::RGBDImage::ConstSharedPtr image3,
|
||||
const rtabmap_ros::msg::RGBDImage::ConstSharedPtr image4);
|
||||
|
||||
void callbackRGBD5(
|
||||
const rtabmap_ros::msg::RGBDImage::ConstSharedPtr image,
|
||||
const rtabmap_ros::msg::RGBDImage::ConstSharedPtr image2,
|
||||
const rtabmap_ros::msg::RGBDImage::ConstSharedPtr image3,
|
||||
const rtabmap_ros::msg::RGBDImage::ConstSharedPtr image4,
|
||||
const rtabmap_ros::msg::RGBDImage::ConstSharedPtr image5);
|
||||
|
||||
protected:
|
||||
virtual void flushCallbacks();
|
||||
|
||||
@@ -97,6 +104,7 @@ private:
|
||||
message_filters::Subscriber<rtabmap_ros::msg::RGBDImage> rgbd_image2_sub_;
|
||||
message_filters::Subscriber<rtabmap_ros::msg::RGBDImage> rgbd_image3_sub_;
|
||||
message_filters::Subscriber<rtabmap_ros::msg::RGBDImage> rgbd_image4_sub_;
|
||||
message_filters::Subscriber<rtabmap_ros::msg::RGBDImage> rgbd_image5_sub_;
|
||||
|
||||
typedef message_filters::sync_policies::ApproximateTime<sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo> MyApproxSyncPolicy;
|
||||
message_filters::Synchronizer<MyApproxSyncPolicy> * approxSync_;
|
||||
@@ -114,6 +122,12 @@ private:
|
||||
message_filters::Synchronizer<MyApproxSync4Policy> * approxSync4_;
|
||||
typedef message_filters::sync_policies::ExactTime<rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage> MyExactSync4Policy;
|
||||
message_filters::Synchronizer<MyExactSync4Policy> * exactSync4_;
|
||||
typedef message_filters::sync_policies::ApproximateTime<rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage> MyApproxSync5Policy;
|
||||
message_filters::Synchronizer<MyApproxSync5Policy> * approxSync5_;
|
||||
typedef message_filters::sync_policies::ExactTime<rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage> MyExactSync5Policy;
|
||||
message_filters::Synchronizer<MyExactSync5Policy> * exactSync5_;
|
||||
int queueSize_;
|
||||
bool keepColor_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -58,12 +58,13 @@ public:
|
||||
|
||||
private:
|
||||
double depthScale_;
|
||||
int decimation_;
|
||||
double compressedRate_;
|
||||
std::thread * warningThread_;
|
||||
bool callbackCalled_;
|
||||
|
||||
rclcpp::Time lastCompressedPublished_;
|
||||
|
||||
std::thread * warningThread_;
|
||||
std::string subscribedTopicsMsg_;
|
||||
|
||||
rclcpp::Publisher<rtabmap_ros::msg::RGBDImage>::SharedPtr rgbdImagePub_;
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the Universite de Sherbrooke nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <rtabmap_ros/visibility.h>
|
||||
#include "rclcpp/rclcpp.hpp"
|
||||
|
||||
#include <sensor_msgs/msg/image.hpp>
|
||||
#include <sensor_msgs/msg/camera_info.hpp>
|
||||
|
||||
#include <image_transport/image_transport.hpp>
|
||||
#include <image_transport/subscriber_filter.hpp>
|
||||
|
||||
#include <message_filters/sync_policies/approximate_time.h>
|
||||
#include <message_filters/sync_policies/exact_time.h>
|
||||
#include <message_filters/subscriber.h>
|
||||
|
||||
#include "rtabmap_ros/msg/rgbd_image.hpp"
|
||||
#include "rtabmap_ros/msg/rgbd_images.hpp"
|
||||
#include "rtabmap_ros/CommonDataSubscriber.h"
|
||||
|
||||
namespace rtabmap_ros
|
||||
{
|
||||
|
||||
class RGBDXSync : public rclcpp::Node
|
||||
{
|
||||
public:
|
||||
RTABMAP_ROS_PUBLIC
|
||||
explicit RGBDXSync(const rclcpp::NodeOptions & options);
|
||||
|
||||
virtual ~RGBDXSync();
|
||||
|
||||
void callback(
|
||||
const sensor_msgs::msg::Image::ConstSharedPtr image,
|
||||
const sensor_msgs::msg::Image::ConstSharedPtr depth,
|
||||
const sensor_msgs::msg::CameraInfo::ConstSharedPtr cameraInfo);
|
||||
|
||||
private:
|
||||
DATA_SYNCS2(rgbd2, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS3(rgbd3, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS4(rgbd4, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS5(rgbd5, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS6(rgbd6, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS7(rgbd7, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
DATA_SYNCS8(rgbd8, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage, rtabmap_ros::msg::RGBDImage)
|
||||
|
||||
private:
|
||||
std::thread * warningThread_;
|
||||
bool callbackCalled_;
|
||||
|
||||
std::string subscribedTopicsMsg_;
|
||||
|
||||
rclcpp::Publisher<rtabmap_ros::msg::RGBDImages>::SharedPtr rgbdImagesPub_;
|
||||
|
||||
std::vector<message_filters::Subscriber<rtabmap_ros::msg::RGBDImage>*> rgbdSubs_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -76,6 +76,8 @@ private:
|
||||
typedef message_filters::sync_policies::ExactTime<sensor_msgs::msg::Image, sensor_msgs::msg::Image, sensor_msgs::msg::CameraInfo, sensor_msgs::msg::CameraInfo> MyExactSyncPolicy;
|
||||
message_filters::Synchronizer<MyExactSyncPolicy> * exactSync_;
|
||||
rclcpp::Subscription<rtabmap_ros::msg::RGBDImage>::SharedPtr rgbdSub_;
|
||||
int queueSize_;
|
||||
bool keepColor_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user