mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 09:07:47 +08:00
Fixed PnP camera matrix empty when computing loop closure. Updated odometry nonholomic motion estimation (using arc around ICR).
This commit is contained in:
@@ -218,14 +218,15 @@ Transform Odometry::process(const SensorData & data, OdometryInfo * info)
|
||||
|
||||
if(!_holonomic)
|
||||
{
|
||||
float tmpY = x * tan(yaw);
|
||||
// arc trajectory around ICR
|
||||
float tmpY = yaw!=0.0f ? x / tan((CV_PI-yaw)/2.0f) : 0.0f;
|
||||
if(fabs(tmpY) < fabs(y) || (tmpY<=0 && y >=0) || (tmpY>=0 && y<=0))
|
||||
{
|
||||
y = tmpY;
|
||||
}
|
||||
else
|
||||
{
|
||||
yaw = atan(y/x);
|
||||
yaw = (atan(x/y)*2.0f-CV_PI)*-1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,14 +245,15 @@ Transform Odometry::process(const SensorData & data, OdometryInfo * info)
|
||||
}
|
||||
else if(!_holonomic)
|
||||
{
|
||||
float tmpY = x * tan(yaw);
|
||||
// arc trajectory around ICR
|
||||
float tmpY = yaw!=0.0f ? x / tan((CV_PI-yaw)/2.0f) : 0.0f;
|
||||
if(fabs(tmpY) < fabs(y) || (tmpY<=0 && y >=0) || (tmpY>=0 && y<=0))
|
||||
{
|
||||
y = tmpY;
|
||||
}
|
||||
else
|
||||
{
|
||||
yaw = atan(y/x);
|
||||
yaw = (atan(x/y)*2.0f-CV_PI)*-1;
|
||||
}
|
||||
}
|
||||
UASSERT_MSG(uIsFinite(x) && uIsFinite(y) && uIsFinite(z) &&
|
||||
|
||||
Reference in New Issue
Block a user