Fixed all -Wtype-limits warnings

This commit is contained in:
matlabbe
2024-11-15 14:13:13 -08:00
parent 966feefb35
commit a584245029
9 changed files with 107 additions and 107 deletions

View File

@@ -219,7 +219,7 @@ private:
bool hasColor_;
float rangeMax_;
bool rayTracing_;
unsigned int emptyFloodFillDepth_;
unsigned int emptyFloodFillDepth_;
};
} /* namespace rtabmap */

View File

@@ -4753,7 +4753,7 @@ void Rtabmap::setMemoryThreshold(int maxMemoryAllowed)
{
//must be positive, 0 mean inf memory allowed (no memory limit)
_maxMemoryAllowed = maxMemoryAllowed;
if(_maxMemoryAllowed < 0)
if(maxMemoryAllowed < 0)
{
ULOGGER_WARN("maxMemoryAllowed < 0, then setting it to 0 (inf).");
_maxMemoryAllowed = 0;

View File

@@ -66,7 +66,7 @@ void OccupancyGrid::setMap(const cv::Mat & map, float xMin, float yMin, float ce
{
for(int j=0; j<map_.cols; ++j)
{
const char value = map_.at<char>(i,j);
const char value = map_.at<signed char>(i,j);
float * info = mapInfo_.ptr<float>(i,j);
if(value == 0)
{
@@ -116,15 +116,15 @@ cv::Mat OccupancyGrid::getMap(float & xMin, float & yMin) const
const float * info = mapInfo_.ptr<float>(i, j);
if(info[3] == 0.0f)
{
map.at<char>(i, j) = -1; // unknown
map.at<signed char>(i, j) = -1; // unknown
}
else if(info[3] >= occThr)
{
map.at<char>(i, j) = 100; // unknown
map.at<signed char>(i, j) = 100; // unknown
}
else
{
map.at<char>(i, j) = 0; // empty
map.at<signed char>(i, j) = 0; // empty
}
}
}
@@ -155,11 +155,11 @@ cv::Mat OccupancyGrid::getProbMap(float & xMin, float & yMin) const
const float * info = mapInfo_.ptr<float>(i, j);
if(info[3] == 0.0f)
{
map.at<char>(i, j) = -1; // unknown
map.at<signed char>(i, j) = -1; // unknown
}
else
{
map.at<char>(i, j) = char(probability(info[3])*100.0f); // empty
map.at<signed char>(i, j) = char(probability(info[3])*100.0f); // empty
}
}
}
@@ -447,7 +447,7 @@ void OccupancyGrid::assemble(const std::list<std::pair<int, Transform> > & newPo
UASSERT_MSG(pt.y >=0 && pt.y < map.rows && pt.x >= 0 && pt.x < map.cols,
uFormat("%d: pt=(%d,%d) map=%dx%d rawPt=(%f,%f) xMin=%f yMin=%f channels=%dvs%d",
kter->first, pt.x, pt.y, map.cols, map.rows, ptf[0], ptf[1], xMin, yMin, iter->second.channels(), mapInfo.channels()-1).c_str());
char & value = map.at<char>(pt.y, pt.x);
signed char & value = map.at<signed char>(pt.y, pt.x);
if(value != -2)
{
float * info = mapInfo.ptr<float>(pt.y, pt.x);
@@ -523,7 +523,7 @@ void OccupancyGrid::assemble(const std::list<std::pair<int, Transform> > & newPo
for(int j=ptBegin.y; j<ptEnd.y; ++j)
{
UASSERT(j < map.rows && i < map.cols);
char & value = map.at<char>(j, i);
signed char & value = map.at<signed char>(j, i);
float * info = mapInfo.ptr<float>(j, i);
int nodeId = (int)info[0];
if(value != -1)
@@ -573,7 +573,7 @@ void OccupancyGrid::assemble(const std::list<std::pair<int, Transform> > & newPo
UASSERT_MSG(pt.y>=0 && pt.y < map.rows && pt.x>=0 && pt.x < map.cols,
uFormat("%d: pt=(%d,%d) map=%dx%d rawPt=(%f,%f) xMin=%f yMin=%f channels=%dvs%d",
kter->first, pt.x, pt.y, map.cols, map.rows, ptf[0], ptf[1], xMin, yMin, jter->second.channels(), mapInfo.channels()-1).c_str());
char & value = map.at<char>(pt.y, pt.x);
signed char & value = map.at<signed char>(pt.y, pt.x);
if(value != -2)
{
float * info = mapInfo.ptr<float>(pt.y, pt.x);
@@ -638,7 +638,7 @@ void OccupancyGrid::assemble(const std::list<std::pair<int, Transform> > & newPo
{
for(int j=1; j<map.cols-1; ++j)
{
char & value = map.at<char>(i, j);
signed char & value = map.at<signed char>(i, j);
if(value == -2)
{
value = 0;

View File

@@ -320,7 +320,7 @@ OctoMap::OctoMap(const LocalGridCache * cache, const ParametersMap & parameters)
Parameters::parse(parameters, Parameters::kGridRayTracing(), rayTracing_);
Parameters::parse(parameters, Parameters::kGridGlobalFloodFillDepth(), emptyFloodFillDepth_);
UASSERT(emptyFloodFillDepth_>=0 && emptyFloodFillDepth_<=16);
UASSERT(emptyFloodFillDepth_<=16);
UDEBUG("rangeMax_ =%f", rangeMax_);
UDEBUG("rayTracing_ =%s", rayTracing_?"true":"false");

View File

@@ -359,7 +359,7 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
cv::Point2i pt((ptf[0]-xMin)/cellSize, (ptf[1]-yMin)/cellSize);
UASSERT_MSG(pt.y>0 && pt.y<map.rows && pt.x>0 && pt.x<map.cols,
uFormat("id=%d, map min=(%f, %f) max=(%f,%f) map=%dx%d pt=(%d,%d)", kter->first, xMin, yMin, xMax, yMax, map.cols, map.rows, pt.x, pt.y).c_str());
char & value = map.at<char>(pt.y, pt.x);
signed char & value = map.at<signed char>(pt.y, pt.x);
if(value != -2)
{
value = 0; // free space
@@ -385,7 +385,7 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
{
for(int j=ptBegin.y; j<ptEnd.y; ++j)
{
map.at<char>(j, i) = -2; // free space (footprint)
map.at<signed char>(j, i) = -2; // free space (footprint)
}
}
}
@@ -398,7 +398,7 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
cv::Point2i pt((ptf[0]-xMin)/cellSize, (ptf[1]-yMin)/cellSize);
UASSERT_MSG(pt.y>0 && pt.y<map.rows && pt.x>0 && pt.x<map.cols,
uFormat("id=%d: map min=(%f, %f) max=(%f,%f) map=%dx%d pt=(%d,%d)", kter->first, xMin, yMin, xMax, yMax, map.cols, map.rows, pt.x, pt.y).c_str());
char & value = map.at<char>(pt.y, pt.x);
signed char & value = map.at<signed char>(pt.y, pt.x);
if(value != -2)
{
value = 100; // obstacles
@@ -416,44 +416,44 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
{
for(int j=0; j<map.cols; ++j)
{
if(map.at<char>(i, j) == -2)
if(map.at<signed char>(i, j) == -2)
{
updatedMap.at<char>(i, j) = 0;
updatedMap.at<signed char>(i, j) = 0;
}
if(i >=2 && i<map.rows-2 && j>=2 && j<map.cols-2)
{
if(map.at<char>(i, j) == -1 &&
map.at<char>(i+1, j) != -1 &&
map.at<char>(i-1, j) != -1 &&
map.at<char>(i, j+1) != -1 &&
map.at<char>(i, j-1) != -1)
if(map.at<signed char>(i, j) == -1 &&
map.at<signed char>(i+1, j) != -1 &&
map.at<signed char>(i-1, j) != -1 &&
map.at<signed char>(i, j+1) != -1 &&
map.at<signed char>(i, j-1) != -1)
{
updatedMap.at<char>(i, j) = 0;
updatedMap.at<signed char>(i, j) = 0;
}
else if(map.at<char>(i, j) == 100)
else if(map.at<signed char>(i, j) == 100)
{
// obstacle/empty/unknown -> remove empty
// unknown/empty/obstacle -> remove empty
if((map.at<char>(i-1, j) == 0 || map.at<char>(i-1, j) == -2) &&
map.at<char>(i-2, j) == -1)
if((map.at<signed char>(i-1, j) == 0 || map.at<signed char>(i-1, j) == -2) &&
map.at<signed char>(i-2, j) == -1)
{
updatedMap.at<char>(i-1, j) = -1;
updatedMap.at<signed char>(i-1, j) = -1;
}
else if((map.at<char>(i+1, j) == 0 || map.at<char>(i+1, j) == -2) &&
map.at<char>(i+2, j) == -1)
else if((map.at<signed char>(i+1, j) == 0 || map.at<signed char>(i+1, j) == -2) &&
map.at<signed char>(i+2, j) == -1)
{
updatedMap.at<char>(i+1, j) = -1;
updatedMap.at<signed char>(i+1, j) = -1;
}
if((map.at<char>(i, j-1) == 0 || map.at<char>(i, j-1) == -2) &&
map.at<char>(i, j-2) == -1)
if((map.at<signed char>(i, j-1) == 0 || map.at<signed char>(i, j-1) == -2) &&
map.at<signed char>(i, j-2) == -1)
{
updatedMap.at<char>(i, j-1) = -1;
updatedMap.at<signed char>(i, j-1) = -1;
}
else if((map.at<char>(i, j+1) == 0 || map.at<char>(i, j+1) == -2) &&
map.at<char>(i, j+2) == -1)
else if((map.at<signed char>(i, j+1) == 0 || map.at<signed char>(i, j+1) == -2) &&
map.at<signed char>(i, j+2) == -1)
{
updatedMap.at<char>(i, j+1) = -1;
updatedMap.at<signed char>(i, j+1) = -1;
}
if(erode)
@@ -461,18 +461,18 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
obstacleIndices.push_back(std::make_pair(i, j));
}
}
else if(map.at<char>(i, j) == 0)
else if(map.at<signed char>(i, j) == 0)
{
// obstacle/empty/obstacle -> remove empty
if(map.at<char>(i-1, j) == 100 &&
map.at<char>(i+1, j) == 100)
if(map.at<signed char>(i-1, j) == 100 &&
map.at<signed char>(i+1, j) == 100)
{
updatedMap.at<char>(i, j) = -1;
updatedMap.at<signed char>(i, j) = -1;
}
else if(map.at<char>(i, j-1) == 100 &&
map.at<char>(i, j+1) == 100)
else if(map.at<signed char>(i, j-1) == 100 &&
map.at<signed char>(i, j+1) == 100)
{
updatedMap.at<char>(i, j) = -1;
updatedMap.at<signed char>(i, j) = -1;
}
}
}
@@ -490,16 +490,16 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
{
int i = iter->first;
int j = iter->second;
int touchEmpty = (map.at<char>(i+1, j) == 0?1:0) +
(map.at<char>(i-1, j) == 0?1:0) +
(map.at<char>(i, j+1) == 0?1:0) +
(map.at<char>(i, j-1) == 0?1:0);
if(touchEmpty>=3 && map.at<char>(i+1, j) != -1 &&
map.at<char>(i-1, j) != -1 &&
map.at<char>(i, j+1) != -1 &&
map.at<char>(i, j-1) != -1)
int touchEmpty = (map.at<signed char>(i+1, j) == 0?1:0) +
(map.at<signed char>(i-1, j) == 0?1:0) +
(map.at<signed char>(i, j+1) == 0?1:0) +
(map.at<signed char>(i, j-1) == 0?1:0);
if(touchEmpty>=3 && map.at<signed char>(i+1, j) != -1 &&
map.at<signed char>(i-1, j) != -1 &&
map.at<signed char>(i, j+1) != -1 &&
map.at<signed char>(i, j-1) != -1)
{
erodedMap.at<char>(i, j) = 0; // empty
erodedMap.at<signed char>(i, j) = 0; // empty
}
}
map = erodedMap;
@@ -677,7 +677,7 @@ cv::Mat create2DMap(const std::map<int, Transform> & poses,
cv::Point2i end((ptr[0]-xMin)/cellSize, (ptr[1]-yMin)/cellSize);
if(end!=start)
{
map.at<char>(end.y, end.x) = 100; // obstacle
map.at<signed char>(end.y, end.x) = 100; // obstacle
}
}
}
@@ -703,7 +703,7 @@ cv::Mat create2DMap(const std::map<int, Transform> & poses,
cv::Point2i end((pt[0]-xMin)/cellSize, (pt[1]-yMin)/cellSize);
if(end!=start)
{
if(localScans.size() > 1 || map.at<char>(end.y, end.x) != 0)
if(localScans.size() > 1 || map.at<signed char>(end.y, end.x) != 0)
{
rayTrace(start, end, map, true); // trace free space
}
@@ -730,12 +730,12 @@ cv::Mat create2DMap(const std::map<int, Transform> & poses,
cv::Point2i end((pt[0]-xMin)/cellSize, (pt[1]-yMin)/cellSize);
if(end!=start)
{
if(localScans.size() > 1 || map.at<char>(end.y, end.x) != 0)
if(localScans.size() > 1 || map.at<signed char>(end.y, end.x) != 0)
{
rayTrace(start, end, map, true); // trace free space
if(map.at<char>(end.y, end.x) == -1)
if(map.at<signed char>(end.y, end.x) == -1)
{
map.at<char>(end.y, end.x) = 0; // empty
map.at<signed char>(end.y, end.x) = 0; // empty
}
}
}
@@ -879,14 +879,14 @@ void rayTrace(const cv::Point2i & start, const cv::Point2i & end, cv::Mat & grid
for(int y = lowerbound; y<=(int)upperbound; ++y)
{
char * v;
signed char * v;
if(swapped)
{
v = &grid.at<char>(x, y);
v = &grid.at<signed char>(x, y);
}
else
{
v = &grid.at<char>(y, x);
v = &grid.at<signed char>(y, x);
}
if(*v == 100 && stopOnObstacle)
{
@@ -909,7 +909,7 @@ cv::Mat convertMap2Image8U(const cv::Mat & map8S, bool pgmFormat)
{
for (int j = 0; j < map8S.cols; ++j)
{
char v = pgmFormat?map8S.at<char>((map8S.rows-1)-i, j):map8S.at<char>(i, j);
signed char v = pgmFormat?map8S.at<signed char>((map8S.rows-1)-i, j):map8S.at<signed char>(i, j);
unsigned char gray;
if(v == 0)
{
@@ -950,7 +950,7 @@ cv::Mat convertImage8U2Map(const cv::Mat & map8U, bool pgmFormat)
{
for (int j = 0; j < map8U.cols; ++j)
{
unsigned char v = pgmFormat?map8U.at<char>((map8U.rows-1)-i, j):map8U.at<char>(i, j);
unsigned char v = pgmFormat?map8U.at<signed char>((map8U.rows-1)-i, j):map8U.at<signed char>(i, j);
char occupancy;
if(pgmFormat)
{
@@ -987,7 +987,7 @@ cv::Mat convertImage8U2Map(const cv::Mat & map8U, bool pgmFormat)
}
}
map8S.at<char>(i, j) = occupancy;
map8S.at<signed char>(i, j) = occupancy;
}
}
return map8S;
@@ -1001,20 +1001,20 @@ cv::Mat erodeMap(const cv::Mat & map)
{
for(int j=0; j<map.cols; ++j)
{
if(map.at<char>(i, j) == 100)
if(map.at<signed char>(i, j) == 100)
{
// remove obstacles which touch at least 3 empty cells but not unknown cells
int touchEmpty = (map.at<char>(i+1, j) == 0?1:0) +
(map.at<char>(i-1, j) == 0?1:0) +
(map.at<char>(i, j+1) == 0?1:0) +
(map.at<char>(i, j-1) == 0?1:0);
int touchEmpty = (map.at<signed char>(i+1, j) == 0?1:0) +
(map.at<signed char>(i-1, j) == 0?1:0) +
(map.at<signed char>(i, j+1) == 0?1:0) +
(map.at<signed char>(i, j-1) == 0?1:0);
if(touchEmpty>=3 && map.at<char>(i+1, j) != -1 &&
map.at<char>(i-1, j) != -1 &&
map.at<char>(i, j+1) != -1 &&
map.at<char>(i, j-1) != -1)
if(touchEmpty>=3 && map.at<signed char>(i+1, j) != -1 &&
map.at<signed char>(i-1, j) != -1 &&
map.at<signed char>(i, j+1) != -1 &&
map.at<signed char>(i, j-1) != -1)
{
erodedMap.at<char>(i, j) = 0; // empty
erodedMap.at<signed char>(i, j) = 0; // empty
}
}
}