From 8c1513bc3bfc16e15bfde9573895e20edb4a617f Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sat, 22 Mar 2025 21:14:47 -0700 Subject: [PATCH 1/3] cherry pick https://github.com/introlab/rtabmap_ros/commit/70ddb3fc839394a5b440fee56f1877c508d6b9ea --- rtabmap_slam/src/CoreWrapper.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rtabmap_slam/src/CoreWrapper.cpp b/rtabmap_slam/src/CoreWrapper.cpp index a26a58e3..ec9cc4a1 100644 --- a/rtabmap_slam/src/CoreWrapper.cpp +++ b/rtabmap_slam/src/CoreWrapper.cpp @@ -2815,7 +2815,10 @@ bool CoreWrapper::updateRtabmapCallback(std_srvs::Empty::Request&, std_srvs::Emp NODELET_INFO("2D mapping = %s", twoDMapping_?"true":"false"); } rtabmap_.parseParameters(parameters_); - mapsManager_.setParameters(parameters_); + // Don't reset map in localization mode + if(rtabmap_.getMemory()->isIncremental()) { + mapsManager_.setParameters(parameters_); + } return true; } From e1e2ce5eced1c05b478454b5f2de22484f04873a Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sat, 29 Mar 2025 11:58:39 -0700 Subject: [PATCH 2/3] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bf16e219..8a22a85b 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ This section shows how to install RTAB-Map ros-pkg on **ROS Noetic** (Catkin bui ```bash cd ~/catkin_ws git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros - catkin_make -j4 + catkin_make -DCMAKE_BUILD_TYPE=Release -j4 ``` * Use `catkin_make -j1` if compilation requires more RAM than you have (e.g., some files require up to ~2 GB to build depending on gcc version). * Options: @@ -158,7 +158,7 @@ roscd rtabmap_ros git pull origin master roscd cd .. -catkin_make -j1 --pkg rtabmap_ros +catkin_make -j1 -DCMAKE_BUILD_TYPE=Release --pkg rtabmap_ros ``` From b0916ad14c8826f4bdba87cd17db0065bc6d6b84 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sat, 29 Mar 2025 12:36:43 -0700 Subject: [PATCH 3/3] imu_to_tf: fixed fixed_frame to base_frame orientation when IMU's frame z axis is not up accordingly to base frame --- rtabmap_util/src/nodelets/imu_to_tf.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rtabmap_util/src/nodelets/imu_to_tf.cpp b/rtabmap_util/src/nodelets/imu_to_tf.cpp index 49b22592..42d39713 100644 --- a/rtabmap_util/src/nodelets/imu_to_tf.cpp +++ b/rtabmap_util/src/nodelets/imu_to_tf.cpp @@ -87,8 +87,10 @@ private: } tf::StampedTransform tmp; - tfListener_.lookupTransform(msg->header.frame_id, baseFrameId_, msg->header.stamp, tmp); - tf::Transform t = tmp.inverse()*st*tmp; + tfListener_.lookupTransform(baseFrameId_, msg->header.frame_id, msg->header.stamp, tmp); + tf::Quaternion q; + q.setRPY(0.0,0.0,tf::getYaw(tmp.getRotation())); + tf::Transform t = tf::Transform(q)*st*tmp.inverse(); // base_frame orientation st.setRotation(t.getRotation()); st.child_frame_id_ = baseFrameId_; }