LiDAR capture support in standalone library (#1264)

* Working rtabmap_lidar-mapping example (live and pcap)

* finalizing merge, added some deprecated

* fixed build

* Working deskewing for Lidar + Camera/IMU (no camera pose correction yet) and Lidar + Odom Sensor in main UI.

* backward compatibility

* fixed some not used variable warnings, fixed qt build for lidar mapping example

* Refactored CameraMobile, added AREngine background support, fixed LidarVPL16 build error with PCL 1.8

* ARCoreJava: buffer last depth image in case its stamp i higher than pose stamp. CameraMobile: added pose buffer. SensorCaptureThread: to get pose, odomSensor should be explicitly set, but can be same as lidar or camera  inputs.

* Working external lidar on iOS

* util3d::commonFiltering()/adjustNormalsToViewPoint() added organized cloud support. MainWindow: updated odomSensor setup

* fixed winsock include order

* reverted camera tool

* disable imu filtering when odom sensor is used

* Updated package version

* fixed windows build

* fixing more windows build erros
This commit is contained in:
matlabbe
2024-04-14 19:06:04 -07:00
committed by GitHub
parent 6a6913c939
commit 700704bec9
131 changed files with 10585 additions and 7476 deletions
+8 -8
View File
@@ -35,7 +35,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rtabmap/core/global_map/CloudMap.h>
#include <rtabmap/core/Graph.h>
#include <rtabmap/core/Memory.h>
#include <rtabmap/core/CameraThread.h>
#include <rtabmap/core/SensorCaptureThread.h>
#include <rtabmap/core/Odometry.h>
#include <rtabmap/core/OdometryInfo.h>
#include <rtabmap/utilite/UFile.h>
@@ -816,9 +816,9 @@ int main(int argc, char * argv[])
printf("Reprocessing data of \"%s\"...\n", inputDatabasePath.c_str());
std::map<std::string, float> globalMapStats;
int processed = 0;
CameraInfo info;
SensorData data = dbReader->takeImage(&info);
CameraThread camThread(dbReader, parameters); // take ownership of dbReader
SensorCaptureInfo info;
SensorData data = dbReader->takeData(&info);
SensorCaptureThread camThread(dbReader, parameters); // take ownership of dbReader
camThread.setScanParameters(scanFromDepth, scanDecimation, scanRangeMin, scanRangeMax, scanVoxelSize, scanNormalK, scanNormalRadius);
if(scanFromDepth)
{
@@ -849,11 +849,11 @@ int main(int argc, char * argv[])
while(skippedFrames-- > 0)
{
++processed;
data = dbReader->takeImage();
data = dbReader->takeData();
}
}
data = dbReader->takeImage(&info);
data = dbReader->takeData(&info);
if(scanFromDepth)
{
data.setLaserScan(LaserScan());
@@ -1099,7 +1099,7 @@ int main(int argc, char * argv[])
while(skippedFrames-- > 0)
{
processed++;
data = dbReader->takeImage(&info);
data = dbReader->takeData(&info);
if(!odometryIgnored && !info.odomCovariance.empty() && info.odomCovariance.at<double>(0,0)>=9999)
{
printf("High variance detected, triggering a new map...\n");
@@ -1113,7 +1113,7 @@ int main(int argc, char * argv[])
}
}
data = dbReader->takeImage(&info);
data = dbReader->takeData(&info);
if(scanFromDepth)
{
data.setLaserScan(LaserScan());