Closed thisparticle closed 1 year ago
你好,我尝试在Ubuntu20.04 下面编译你的代码,最后会报下面的错误 No rule to make target '......./src/mVIL-Fusion/vils_estimator/src/lidar_functions/fast_gicp/build/libfast_gicp.a', needed by '......../mVIL-Fusion_ws/devel/lib/vils_estimator/vils_estimator'. Stop. make[1]: [CMakeFiles/Makefile2:2927: mVIL-Fusion/vils_estimator/CMakeFiles/vils_estimator.dir/all] Error 2
想请教一下这个问题怎么解决呀?
目前还没在20.04下测试过,我用的是16.0.4。可以尝试,在20.04系统下,重新编译fast-gicp库(lidar_functions/下的.zip),重新生成新的libfast_gicp.a文件,放到对应文件夹下。
你好,感谢你的帮助哈哈哈,现在编译通过了,我在跑你提供的数据集时发现,因子图的轨迹和vio的轨迹会有些差别,这是因为vio不准吗?还是我编译以后跑得不正常~
你好,感谢你的帮助哈哈哈,现在编译通过了,我在跑你提供的数据集时发现,因子图的轨迹和vio的轨迹会有些差别,这是因为vio不准吗?还是我编译以后跑得不正常~
是的,单目VIO在大尺度室外场景,一段时间的运行后会有较大累积误差。因此算法设计时主要将其作为预测,不考虑其全局一致性。最终的结果应注释掉前中端的可视化选项,后端的可视化内容是全局一致的。
你好,感谢你的帮助哈哈哈,现在编译通过了,我在跑你提供的数据集时发现,因子图的轨迹和vio的轨迹会有些差别,这是因为vio不准吗?还是我编译以后跑得不正常~
是的,单目VIO在大尺度室外场景,一段时间的运行后会有较大累积误差。因此算法设计时主要将其作为预测,不考虑其全局一致性。最终的结果应注释掉前中端的可视化选项,后端的可视化内容是全局一致的。
谢谢您的解答哈哈哈,我还有两个小问题想要麻烦您,一个是get_depth
中为什么要乘上这个转换呀,配置文件中不是已经写了雷达和相机的转换了吗
Matrix4f Tlc_;//this is a fake tem coordinate Tlc_ << 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0,0.0, 0.0, -1.0, 0.0,0.0, 0.0, 0.0, 0.0, 1.0;
还有就是我试着跑NTU-VIRAL数据集,但是跑了发现点云和图像没有配置对,您能提供一下您跑这个数据集的配置文件和launch文件吗?
你好,感谢你的帮助哈哈哈,现在编译通过了,我在跑你提供的数据集时发现,因子图的轨迹和vio的轨迹会有些差别,这是因为vio不准吗?还是我编译以后跑得不正常~
是的,单目VIO在大尺度室外场景,一段时间的运行后会有较大累积误差。因此算法设计时主要将其作为预测,不考虑其全局一致性。最终的结果应注释掉前中端的可视化选项,后端的可视化内容是全局一致的。
谢谢您的解答哈哈哈,我还有两个小问题想要麻烦您,一个是
get_depth
中为什么要乘上这个转换呀,配置文件中不是已经写了雷达和相机的转换了吗Matrix4f Tlc_;//this is a fake tem coordinate Tlc_ << 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0,0.0, 0.0, -1.0, 0.0,0.0, 0.0, 0.0, 0.0, 1.0;
还有就是我试着跑NTU-VIRAL数据集,但是跑了发现点云和图像没有配置对,您能提供一下您跑这个数据集的配置文件和launch文件吗?
不客气哈。 第一个问题,那个就是方便处理的一个临时的固定变换,yaml文件里就给正常的相机到雷达系变换阵就行。 第二个问题,建议用odom算法运行(注释掉localMapping.cpp中的#define FOR_GLOBAL),执行roslaunch vils_estimator mynteye_leishen_odom.launch (修改雷达launch文件中的lidar_topic为:/os1_cloud_node1/points),并添加以下内容到自定义yaml文件:
%YAML:1.0 imu_topic: "/imu/imu" image_topic: "/right/image_raw" lidar_topic: "/full_cloud"
use_mynteye_adapter: 1 model_type: PINHOLE camera_name: camera image_width: 752 image_height: 480 distortion_parameters: k1: -0.300267420221178 k2: 0.090544063693053 p1: 3.330220891093334e-05 p2: 8.989607188457415e-05 projection_parameters: fx: 4.313364265799752e+02 fy: 4.327527965378035e+02 cx: 3.548956286992647e+02 cy: 2.325508916495161e+02
estimate_extrinsic: 0 # 0 Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it.
extrinsicRotation: !!opencv-matrix rows: 3 cols: 3 dt: d data: [-0.01916508, -0.01496218, 0.99970437, 0.99974371, 0.01176483, 0.01934191, -0.01205075, 0.99981884, 0.01473287]
extrinsicTranslation: !!opencv-matrix rows: 3 cols: 1 dt: d data: [ 0.00519443, 0.1347802, 0.01465067 ]
gt_rli: !!opencv-matrix rows: 3 cols: 3 dt: d data: [ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0] gt_tli: !!opencv-matrix rows: 3 cols: 1 dt: d data: [ -0.05, 0.0, 0.055 ]
gt_rlc: !!opencv-matrix rows: 3 cols: 3 dt: d data: [ 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0] gt_tlc: !!opencv-matrix rows: 3 cols: 1 dt: d data: [ -0.025, 0.115, 0.015 ]
max_cnt: 150 # 150 max feature number in feature tracking min_dist: 30 # 30 min distance between two features freq: 10 #indoor:15 outdoor:10 # frequence (Hz) of publish tracking result. At least 10Hz for good estimation. If set 0, the frequence will be same as raw image F_threshold: 1.0 # ransac threshold (pixel) show_track: 1 # 1:publish tracking image as topic 0:publish lidar tracked image(green) equalize: 1 # if image is too dark or light, trun on equalize to find enough features fisheye: 0 # if using fisheye, trun on it. A circle mask will be loaded to remove edge noisy points
max_solver_time: 0.05 # max solver itration time (ms), to guarantee real time max_num_iterations: 30 # max solver itrations, to guarantee real time keyframe_parallax: 10.0 # keyframe selection threshold (pixel)
acc_n: 0.2 # accelerometer measurement noise standard deviation.
gyr_n: 0.1 # gyroscope measurement noise standard deviation.
acc_w: 5.0e-5 # accelerometer bias random work noise standard deviation.
gyr_w: 5.0e-6 # gyroscope bias random work noise standard deviation.
PBC_UX: 0.1 PBC_LX: 0.0 PBC_UY: 0.15 PBC_LY: 0.5 PBC_UZ: 0.1 PBC_LZ: 0.0 PLB_UX: 0.15 PLB_LX: 0.08 PLB_UY: 0.03 PLB_LY: -0.03 PLB_UZ: -0.10 PLB_LZ: -0.17 g_norm: 9.81 # gravity magnitude 9.7944 g_direction: !!opencv-matrix rows: 3 cols: 1 dt: d data: [0.0,0.0,0.0] ANGLE_VI: 30
estimate_td: 0 # online estimate time offset between camera and imu td: 0.0 # initial value of time offset. unit: s. readed image clock + td = real image clock (IMU clock)
rolling_shutter: 0 # 0: global shutter camera, 1: rolling shutter camera rolling_shutter_tr: 0 # unit: s. rolling shutter read out time per frame (from data sheet).
save_image: 0 # save image in pose graph for visualization prupose; you can close this function by setting 0 visualize_imu_forward: 0 # output imu forward propogation to achieve low latency and high frequence results visualize_camera_size: 0.5 # size of camera marker in RVIZ
LidarTimeStep: 0.1 MinDistance: 0.5 MaxDistance: 70.0
LeafSize: 0.3 NumThreads: 5 TransformationEpsilon: 0.0005 MaxCorrespondenceDistance: 0.8
show_lidar_constraint: 0 #white(lidar icp fail) green(VIO good) red(VIO drift) blue(zero velocity) purple(pure rotation) show_lidar2cam: 1 #show unit sphere pointcloud and tem_lidar_map project to camera image
add_lidar2cam: 1 add_lidar2lidar: 1 add_lps: 1
另外,VIRAL数据集实际上不太适用这个仓库版本中的mVIL-Fusion初始化算法(运动激励不够),所以有可能初始化会失败几次。
哈哈哈谢谢您!我尝试了一下,效果很好,但是确实有些序列会一直初始化失败,或者是中途飘了,请问你后续会更新公开的版本吗哈哈哈
哈哈哈谢谢您!我尝试了一下,效果很好,但是确实有些序列会一直初始化失败,或者是中途飘了,请问你后续会更新公开的版本吗哈哈哈
不客气哈,肯定会的,不过要过一阵了。后面想着针对像自动驾驶等应用时,激励不够场景的初始化改进,还有里程计加些新内容后再说。
你好,我尝试在Ubuntu20.04 下面编译你的代码,最后会报下面的错误 No rule to make target '......./src/mVIL-Fusion/vils_estimator/src/lidar_functions/fast_gicp/build/libfast_gicp.a', needed by '......../mVIL-Fusion_ws/devel/lib/vils_estimator/vils_estimator'. Stop. make[1]: [CMakeFiles/Makefile2:2927: mVIL-Fusion/vils_estimator/CMakeFiles/vils_estimator.dir/all] Error 2
想请教一下这个问题怎么解决呀?
您好,我在20.04下编译也遇到了问题,可以咨询一下各个库的版本吗
你好,我尝试在Ubuntu20.04 下面编译你的代码,最后会报下面的错误 No rule to make target '......./src/mVIL-Fusion/vils_estimator/src/lidar_functions/fast_gicp/build/libfast_gicp.a', needed by '......../mVIL-Fusion_ws/devel/lib/vils_estimator/vils_estimator'. Stop. make[1]: [CMakeFiles/Makefile2:2927: mVIL-Fusion/vils_estimator/CMakeFiles/vils_estimator.dir/all] Error 2 想请教一下这个问题怎么解决呀?
您好,我在20.04下编译也遇到了问题,可以咨询一下各个库的版本吗
libfast_gicp.a这个是单独build生成的,只需要CMAKE连接上就行,所以不同环境需要重新编译(或者直接在cmakelist里find然后自动编译链接)。整个代码就在16.04和18.04上测试过。GTSAM是4.0.2,其他库基本和VINS-mono的一致。
你好,我尝试在Ubuntu20.04 下面编译你的代码,最后会报下面的错误 No rule to make target '......./src/mVIL-Fusion/vils_estimator/src/lidar_functions/fast_gicp/build/libfast_gicp.a', needed by '......../mVIL-Fusion_ws/devel/lib/vils_estimator/vils_estimator'. Stop. make[1]: [CMakeFiles/Makefile2:2927: mVIL-Fusion/vils_estimator/CMakeFiles/vils_estimator.dir/all] Error 2 想请教一下这个问题怎么解决呀?
您好,我在20.04下编译也遇到了问题,可以咨询一下各个库的版本吗
libfast_gicp.a这个是单独build生成的,只需要CMAKE连接上就行,所以不同环境需要重新编译(或者直接在cmakelist里find然后自动编译链接)。整个代码就在16.04和18.04上测试过。GTSAM是4.0.2,其他库基本和VINS-mono的一致。
谢谢您的回复,这个具体怎么操作
libfast_gicp.a
我编译以后并没有产生这个文件libfast_gicp.a
libfast_gicp.a
我编译以后并没有产生这个文件libfast_gicp.a
.so也行
libfast_gicp.a
我编译以后并没有产生这个文件libfast_gicp.a
.so也行
还有好多eigen错误
fast_gicp/gicp/fast_vgicp_voxel.hpp:31:7: error: no matching function for call to ‘std::vector<Eigen::Matrix<int, 3, 1>, Eigen::aligned_allocator<Eigen::Matrix<int, 3, 1> > >::vector(~~~~~~~
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: candidate expects 2 arguments, 7 provided
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: candidate: ‘std::vector<T, Eigen::aligned_allocator~~~~~~~
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: candidate expects 2 arguments, 7 provided
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: candidate: ‘std::vector<T, Eigen::aligned_allocator~~~~~~~
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: candidate expects 1 argument, 7 provided
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: candidate: ‘template~~~~~~~
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: template argument deduction/substitution failed:
In file included from /home/wyw/ROS1_PROJECT/2023/VIL_ROS_calib/src/mVIL-Fusion/lidar_mapping/include/fast_gicp/fast_vgicp.hpp:16,
from /home/wyw/ROS1_PROJECT/2023/VIL_ROS_calib/src/mVIL-Fusion/lidar_mapping/src/globalMappingOcTree.cpp:17:
/home/wyw/ROS1_PROJECT/2023/VIL_ROS_calib/src/mVIL-Fusion/lidar_mapping/include/fast_gicp/gicp/fast_vgicp_voxel.hpp:31:7: note: candidate expects 3 arguments, 7 provided
31 | };
| ^
In file included from /usr/local/include/gtsam/3rdparty/Eigen/Eigen/StdVector:23,
from /usr/include/pcl-1.10/pcl/point_cloud.h:45,
from /home/wyw/ROS1_PROJECT/2023/VIL_ROS_calib/src/mVIL-Fusion/lidar_mapping/include/global_mapping/util.h:16,
from /home/wyw/ROS1_PROJECT/2023/VIL_ROS_calib/src/mVIL-Fusion/lidar_mapping/src/globalMappingOcTree.cpp:1:
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: candidate: ‘std::vector<T, Eigen::aligned_allocator~~~~~~~
/usr/local/include/gtsam/3rdparty/Eigen/Eigen/src/StlSupport/StdVector.h:75:3: note: candidate expects 1 argument, 7 provided
In file included from /home/wyw/ROS1_PROJECT/2023/VIL_ROS_calib/src/mVIL-Fusion/lidar_mapping/include/fast_gicp/fast_vgicp.hpp:16,
from /home/wyw/ROS1_PROJECT/2023/VIL_ROS_calib/src/mVIL-Fusion/lidar_mapping/src/globalMappingIkdTree.cpp:16:
/home/wyw/ROS1_PROJECT/2023/VIL_ROS_calib/src/mVIL-Fusion/lidar_mapping/include/fast_gicp/gicp/fast_vgicp_voxel.hpp: In member function ‘Eigen::Vector3i fast_gicp::GaussianVoxelMap
libfast_gicp.a
我编译以后并没有产生这个文件libfast_gicp.a
.so也行
我编译生成了libfast_gicp.so,我应该放到哪里,或者怎么设置路径
libfast_gicp.a
我编译以后并没有产生这个文件libfast_gicp.a
.so也行
我编译生成了libfast_gicp.so,我应该放到哪里,或者怎么设置路径 修改lidar_mapping和vils_estimator下的CMakeLists,将.a改成.so,再将生成的.so放到对应路径下即可。
你好,我尝试在Ubuntu20.04 下面编译你的代码,最后会报下面的错误 No rule to make target '......./src/mVIL-Fusion/vils_estimator/src/lidar_functions/fast_gicp/build/libfast_gicp.a', needed by '......../mVIL-Fusion_ws/devel/lib/vils_estimator/vils_estimator'. Stop. make[1]: [CMakeFiles/Makefile2:2927: mVIL-Fusion/vils_estimator/CMakeFiles/vils_estimator.dir/all] Error 2
想请教一下这个问题怎么解决呀?