mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Fixed OdomF2M ICP local scan transform bug (was not in 0.11.8)
This commit is contained in:
@@ -133,7 +133,7 @@ Transform OdometryF2F::computeTransform(
|
|||||||
info->words = newFrame.getWords();
|
info->words = newFrame.getWords();
|
||||||
|
|
||||||
info->localScanMapSize = tmpRefFrame.sensorData().laserScanRaw().cols;
|
info->localScanMapSize = tmpRefFrame.sensorData().laserScanRaw().cols;
|
||||||
info->localScanMap = util3d::transformLaserScan(tmpRefFrame.sensorData().laserScanRaw(), tmpRefFrame.sensorData().laserScanInfo().localTransform()*t);
|
info->localScanMap = util3d::transformLaserScan(tmpRefFrame.sensorData().laserScanRaw(), t*tmpRefFrame.sensorData().laserScanInfo().localTransform());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -334,7 +334,7 @@ Transform OdometryF2M::computeTransform(
|
|||||||
if(lastFrame_->sensorData().laserScanRaw().cols)
|
if(lastFrame_->sensorData().laserScanRaw().cols)
|
||||||
{
|
{
|
||||||
pcl::PointCloud<pcl::PointNormal>::Ptr mapCloudNormals = util3d::laserScanToPointCloudNormal(mapScan);
|
pcl::PointCloud<pcl::PointNormal>::Ptr mapCloudNormals = util3d::laserScanToPointCloudNormal(mapScan);
|
||||||
pcl::PointCloud<pcl::PointNormal>::Ptr frameCloudNormals = util3d::laserScanToPointCloudNormal(lastFrame_->sensorData().laserScanRaw(), lastFrame_->sensorData().laserScanInfo().localTransform() * newFramePose);
|
pcl::PointCloud<pcl::PointNormal>::Ptr frameCloudNormals = util3d::laserScanToPointCloudNormal(lastFrame_->sensorData().laserScanRaw(), newFramePose * lastFrame_->sensorData().laserScanInfo().localTransform());
|
||||||
|
|
||||||
pcl::IndicesPtr frameCloudNormalsIndices(new std::vector<int>);
|
pcl::IndicesPtr frameCloudNormalsIndices(new std::vector<int>);
|
||||||
int newPoints;
|
int newPoints;
|
||||||
@@ -534,7 +534,7 @@ Transform OdometryF2M::computeTransform(
|
|||||||
frameValid = true;
|
frameValid = true;
|
||||||
if (fixedMapPath_.empty())
|
if (fixedMapPath_.empty())
|
||||||
{
|
{
|
||||||
pcl::PointCloud<pcl::PointNormal>::Ptr mapCloudNormals = util3d::laserScanToPointCloudNormal(lastFrame_->sensorData().laserScanRaw(), lastFrame_->sensorData().laserScanInfo().localTransform() * newFramePose);
|
pcl::PointCloud<pcl::PointNormal>::Ptr mapCloudNormals = util3d::laserScanToPointCloudNormal(lastFrame_->sensorData().laserScanRaw(), newFramePose * lastFrame_->sensorData().laserScanInfo().localTransform());
|
||||||
scansBuffer_.push_back(std::make_pair(mapCloudNormals, pcl::IndicesPtr(new std::vector<int>)));
|
scansBuffer_.push_back(std::make_pair(mapCloudNormals, pcl::IndicesPtr(new std::vector<int>)));
|
||||||
map_->sensorData().setLaserScanRaw(util3d::laserScanFromPointCloud(*mapCloudNormals), LaserScanInfo(0,0));
|
map_->sensorData().setLaserScanRaw(util3d::laserScanFromPointCloud(*mapCloudNormals), LaserScanInfo(0,0));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user