mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-10 19:49:49 +08:00
ros1: Migrating tf to tf2 (#1425)
* Migrating tf to tf2 * Added ci action to test PR on ros1 * updated dev container with nvidia working * backward compatibility with topics having frame_id with leading slash not allowed with tf2 * backward compatibility of leading slash for other tf2 buffers * updated comment
This commit is contained in:
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.5)
|
||||
project(rtabmap_viz)
|
||||
|
||||
find_package(catkin REQUIRED COMPONENTS
|
||||
cv_bridge geometry_msgs std_msgs std_srvs nav_msgs rtabmap_msgs rtabmap_sync tf
|
||||
cv_bridge geometry_msgs std_msgs std_srvs nav_msgs rtabmap_msgs rtabmap_sync tf tf2_ros
|
||||
)
|
||||
|
||||
###################################
|
||||
@@ -11,7 +11,7 @@ find_package(catkin REQUIRED COMPONENTS
|
||||
|
||||
catkin_package(
|
||||
INCLUDE_DIRS include
|
||||
CATKIN_DEPENDS cv_bridge geometry_msgs std_msgs std_srvs nav_msgs rtabmap_msgs rtabmap_sync tf
|
||||
CATKIN_DEPENDS cv_bridge geometry_msgs std_msgs std_srvs nav_msgs rtabmap_msgs rtabmap_sync tf tf2_ros
|
||||
)
|
||||
|
||||
# catkin is not using cmake targets for dependencies,
|
||||
|
||||
@@ -36,7 +36,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include "rtabmap/utilite/UEventsHandler.h"
|
||||
#include "rtabmap/core/Transform.h"
|
||||
|
||||
#include <tf/transform_listener.h>
|
||||
#include <tf2_ros/buffer.h>
|
||||
#include <tf2_ros/transform_listener.h>
|
||||
|
||||
#include <geometry_msgs/TwistStamped.h>
|
||||
#include <nav_msgs/Path.h>
|
||||
@@ -133,7 +134,8 @@ private:
|
||||
double waitForTransformDuration_;
|
||||
bool odomSensorSync_;
|
||||
double maxOdomUpdateRate_;
|
||||
tf::TransformListener tfListener_;
|
||||
tf2_ros::Buffer tfBuffer_;
|
||||
tf2_ros::TransformListener tfListener_;
|
||||
|
||||
ros::Publisher republishNodeDataPub_;
|
||||
|
||||
|
||||
@@ -19,5 +19,6 @@
|
||||
<depend>rtabmap_msgs</depend>
|
||||
<depend>rtabmap_sync</depend>
|
||||
<depend>tf</depend>
|
||||
<depend>tf2_ros</depend>
|
||||
|
||||
</package>
|
||||
|
||||
@@ -73,6 +73,7 @@ GuiWrapper::GuiWrapper(int & argc, char** argv) :
|
||||
waitForTransformDuration_(0.2), // 200 ms
|
||||
odomSensorSync_(false),
|
||||
maxOdomUpdateRate_(10),
|
||||
tfListener_(tfBuffer_),
|
||||
cameraNodeName_(""),
|
||||
lastOdomInfoUpdateTime_(0),
|
||||
rtabmapNodeName_("rtabmap")
|
||||
@@ -541,7 +542,7 @@ void GuiWrapper::commonMultiCameraCallback(
|
||||
odomHeader.frame_id = odomFrameId_;
|
||||
}
|
||||
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, frameId, odomHeader.stamp, tfListener_, waitForTransform_?waitForTransformDuration_:0);
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, frameId, odomHeader.stamp, tfBuffer_, waitForTransform_?waitForTransformDuration_:0);
|
||||
cv::Mat covariance = cv::Mat::eye(6,6,CV_64FC1);
|
||||
if(odomMsg.get())
|
||||
{
|
||||
@@ -608,7 +609,7 @@ void GuiWrapper::commonMultiCameraCallback(
|
||||
depth,
|
||||
cameraModels,
|
||||
stereoCameraModels,
|
||||
tfListener_,
|
||||
tfBuffer_,
|
||||
waitForTransform_?waitForTransformDuration_:0.0,
|
||||
imagesAlreadyRectified))
|
||||
{
|
||||
@@ -625,7 +626,7 @@ void GuiWrapper::commonMultiCameraCallback(
|
||||
odomSensorSync_?odomHeader.frame_id:"",
|
||||
odomHeader.stamp,
|
||||
scan,
|
||||
tfListener_,
|
||||
tfBuffer_,
|
||||
waitForTransform_?waitForTransformDuration_:0))
|
||||
{
|
||||
ROS_ERROR("Could not convert laser scan msg! Aborting rtabmap_viz update...");
|
||||
@@ -640,7 +641,7 @@ void GuiWrapper::commonMultiCameraCallback(
|
||||
odomSensorSync_?odomHeader.frame_id:"",
|
||||
odomHeader.stamp,
|
||||
scan,
|
||||
tfListener_,
|
||||
tfBuffer_,
|
||||
waitForTransform_?waitForTransformDuration_:0))
|
||||
{
|
||||
ROS_ERROR("Could not convert 3d laser scan msg! Aborting rtabmap_viz update...");
|
||||
@@ -734,7 +735,7 @@ void GuiWrapper::commonStereoCallback(
|
||||
odomHeader.frame_id = odomFrameId_;
|
||||
}
|
||||
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, frameId, odomHeader.stamp, tfListener_, waitForTransform_?waitForTransformDuration_:0);
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, frameId, odomHeader.stamp, tfBuffer_, waitForTransform_?waitForTransformDuration_:0);
|
||||
cv::Mat covariance = cv::Mat::eye(6,6,CV_64FC1);
|
||||
if(odomMsg.get())
|
||||
{
|
||||
@@ -797,7 +798,7 @@ void GuiWrapper::commonStereoCallback(
|
||||
left,
|
||||
right,
|
||||
stereoModel,
|
||||
tfListener_,
|
||||
tfBuffer_,
|
||||
waitForTransform_?waitForTransformDuration_:0.0,
|
||||
imagesAlreadyRectified))
|
||||
{
|
||||
@@ -813,7 +814,7 @@ void GuiWrapper::commonStereoCallback(
|
||||
odomSensorSync_?odomHeader.frame_id:"",
|
||||
odomHeader.stamp,
|
||||
scan,
|
||||
tfListener_,
|
||||
tfBuffer_,
|
||||
waitForTransform_?waitForTransformDuration_:0))
|
||||
{
|
||||
ROS_ERROR("Could not convert laser scan msg! Aborting rtabmap_viz update...");
|
||||
@@ -828,7 +829,7 @@ void GuiWrapper::commonStereoCallback(
|
||||
odomSensorSync_?odomHeader.frame_id:"",
|
||||
odomHeader.stamp,
|
||||
scan,
|
||||
tfListener_,
|
||||
tfBuffer_,
|
||||
waitForTransform_?waitForTransformDuration_:0))
|
||||
{
|
||||
ROS_ERROR("Could not convert 3d laser scan msg! Aborting rtabmap_viz update...");
|
||||
@@ -907,7 +908,7 @@ void GuiWrapper::commonLaserScanCallback(
|
||||
odomHeader.frame_id = odomFrameId_;
|
||||
}
|
||||
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, frameId, odomHeader.stamp, tfListener_, waitForTransform_?waitForTransformDuration_:0);
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, frameId, odomHeader.stamp, tfBuffer_, waitForTransform_?waitForTransformDuration_:0);
|
||||
cv::Mat covariance = cv::Mat::eye(6,6,CV_64FC1);
|
||||
if(odomMsg.get())
|
||||
{
|
||||
@@ -960,7 +961,7 @@ void GuiWrapper::commonLaserScanCallback(
|
||||
odomSensorSync_?odomHeader.frame_id:"",
|
||||
odomHeader.stamp,
|
||||
scan,
|
||||
tfListener_,
|
||||
tfBuffer_,
|
||||
waitForTransform_?waitForTransformDuration_:0))
|
||||
{
|
||||
ROS_ERROR("Could not convert laser scan msg! Aborting rtabmap_viz update...");
|
||||
@@ -975,7 +976,7 @@ void GuiWrapper::commonLaserScanCallback(
|
||||
odomSensorSync_?odomHeader.frame_id:"",
|
||||
odomHeader.stamp,
|
||||
scan,
|
||||
tfListener_,
|
||||
tfBuffer_,
|
||||
waitForTransform_?waitForTransformDuration_:0))
|
||||
{
|
||||
ROS_ERROR("Could not convert 3d laser scan msg! Aborting rtabmap_viz update...");
|
||||
@@ -1024,7 +1025,7 @@ void GuiWrapper::commonOdomCallback(
|
||||
|
||||
std_msgs::Header odomHeader = odomMsg->header;
|
||||
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, odomMsg->child_frame_id, odomHeader.stamp, tfListener_, waitForTransform_?waitForTransformDuration_:0);
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, odomMsg->child_frame_id, odomHeader.stamp, tfBuffer_, waitForTransform_?waitForTransformDuration_:0);
|
||||
cv::Mat covariance = cv::Mat::eye(6,6,CV_64FC1);
|
||||
if(odomMsg.get())
|
||||
{
|
||||
@@ -1113,7 +1114,7 @@ void GuiWrapper::commonSensorDataCallback(
|
||||
odomHeader.frame_id = odomFrameId_;
|
||||
}
|
||||
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, frameId, odomHeader.stamp, tfListener_, waitForTransform_?waitForTransformDuration_:0);
|
||||
Transform odomT = rtabmap_conversions::getTransform(odomHeader.frame_id, frameId, odomHeader.stamp, tfBuffer_, waitForTransform_?waitForTransformDuration_:0);
|
||||
cv::Mat covariance = cv::Mat::eye(6,6,CV_64FC1);
|
||||
if(odomMsg.get())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user