mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-04 16:57:46 +08:00
fix(rtabmap_slam): release scan mutex on conversion failure (#1459)
* fix(rtabmap_slam): release scan mutex on conversion failure
* test(rtabmap_slam): cover scan transform recovery in native tests
Replace the standalone reproducer with registered C++ GoogleTests for 2D and 3D scan recovery. Use real ROS inputs, separate DDS domains and bounded timeouts, and include rtabmap_slam in supported CI and coverage jobs.
Validated on Jazzy with RTAB-Map core 9ed83a7: both negative controls fail map recovery without the unlocks; both pass with the fix, followed by five repeated runs per case (10/10 passed). Broader distro CI has not been run locally.
* chore(rtabmap_slam): keep upstream submission focused on mutex fix
Remove the regression test and CI integration from the proposed diff. Retain the reproducer in commit 254ca3b so it can be offered separately with the validation evidence.
---------
Co-authored-by: Matthew Kotara <[email protected]>
Co-authored-by: matlabbe <[email protected]>
This commit is contained in:
co-authored by
Matthew Kotara
matlabbe
parent
335d155768
commit
853a434fe9
@@ -1801,6 +1801,7 @@ void CoreWrapper::commonLaserScanCallback(
|
||||
rtabmap_.getMemory() && uStrNumCmp(rtabmap_.getMemory()->getDatabaseVersion(), "0.11.10") < 0))
|
||||
{
|
||||
RCLCPP_ERROR(this->get_logger(), "Could not convert laser scan msg! Aborting rtabmap update...");
|
||||
syncDataMutex_.unlock();
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1819,6 +1820,7 @@ void CoreWrapper::commonLaserScanCallback(
|
||||
scanCloudIs2d_))
|
||||
{
|
||||
RCLCPP_ERROR(this->get_logger(), "Could not convert 3d laser scan msg! Aborting rtabmap update...");
|
||||
syncDataMutex_.unlock();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user