Error with Reg/Strategy=2(VisIcp)
Hello @matlabbe
I construct LaserScan data using data.setLaserScan(LaserScan::backwardCompatibility(scanData, 0, 40, rtabmap::Transform::getIdentity())) in CameraRealSense2.cpp because I use RealSense435 and scanData is a cv::Mat from a 2D lidar.
Then I set Icp/RangeMin=0.001 and Icp/RangeMax=40.0 (I don't why but if I don't set, it will get bug). When I run rtabmap-rgbd_mapping 8, I meet three different situation and want to ask you how to solve the last two situation.๐
- When set
Reg/Strategy=0, everything works well and can see laser scan data fromrtabmap-databaseViewerbut I think lidar data didn't used to compute pose's transform. - When set
Reg/Strategy=1, it works but the pose only appears in a plane (because it's a 2d lidar๐) and console prints:[ WARN] (2023-04-24 16:30:36.389) util3d_filtering.cpp:241::commonFiltering() Voxel filter is applied, but normal parameters are not set and input scan has normals. The returned scan has no normals. - When set
Reg/Strategy=2, it prints warning all the time and a dense pointcloud with a red background:[ WARN] (2023-04-24 16:38:36.077) OdometryF2M.cpp:572::computeTransform() Unknown registration error
Do I need to set other parameters? (My main goal is to add 2d lidar data to stereo or rgbd camera using RTAB-Map in standalone version. I have already done two things: made up LaserScan data and set Reg/Strategy=2 in Parameters.h)
Thanks for your reading!๐
Is your main goal also doing only 3DoF SLAM? If so, I would go for option 2 Reg/Strategy=1. The filtering warning is that the provided scan is detected to have normals in it, but the filtering approach of ICP registration uses Icp/VoxelSize to maybe 5 and Icp/PointToPlaneK/Icp/PointToPlaneRadiusare not set. Are you usingIcp/PointToPlane`?
Icp/RangeMin and Icp/RangeMax should be optional, not sure what bug you are seeing about that.