LVI-SAM、VINS-Mono、LIO-SAM算法的阅读参考和m2dgr数据集上的复现(留作学习使用)
ROS一键安装参考:
ROS的最简单安装——鱼香一键安装_鱼香ros一键安装-CSDN博客
opencv官网下载4.2.0参考:https://opencv.org/releases/page/3/
nvidia驱动安装:ubuntu18.04 安装显卡驱动 - 开始战斗 - 博客园
cuda搭配使用1+2
lvi-sam的evo评价参考:
SLAM_轨迹算法精度评价指标(ATE、RPE)_绝对轨迹误差-CSDN博客
Evo评测工具对VIORBSLAM2进行评估(详细步骤!!!)_viorbslam王京-CSDN博客
evo多路径画图:
轨迹评估工具使用:evo安装以及学习_evo轨迹评估-CSDN博客
(注意将保存的txt文件时间戳对应)
将evo输出轨迹图片上的字体更改大小:evo_config set plot_fontfamily serif plot_fontscale 0.6
(0.6就是你想要更改调整的字体大小)
LVI-SAM代码阅读参考:(文章末)
老板:2周搞定激光雷达-视觉-IMU多传感器融合方案!我该如何动手?
https://www.zhihu.com/people/gao-li-dong-62
https://www.zhihu.com/people/yu-you-wei-42/posts
LIO-SAM阅读:
源码解析参考:https://zhuanlan.zhihu.com/p/352039509
GitHub - smilefacehh/LIO-SAM-DetailedNote: LIO-SAM源码详细注释,3D SLAM融合激光、IMU、GPS
跑自己的数据集:LIO-SAM从0到1运行自己的数据集-CSDN博客
将KITTI数据集转为LIO-SAM算法可运行的.bag文件_kitti05-CSDN博客
VINS-Mono参考:
SLAM算法总结——经典SLAM算法框架总结_视觉slam算法-CSDN博客
数据集下载:
参考:KITTI数据集无法下载的解决方法_kitti数据集下载-CSDN博客
网站(代下载):下载
kitti数据集: The KITTI Vision Benchmark Suite
evo报错:
python版本切换:
sudo update-alternatives --config pythonpython 版本:python --version
pip版本: pip -V
python版本与pip 版本不对应:大概率是因为python2和python3共存,pip下载的版本都进到python3。更改:python -m pip install --user --upgrade pip==9.0.3
报错qt:pip install PySide2
python3.6.9+pip9.0.3+Pyside2+pip3 intstall PyQt5==5.14.0
LVI-SAM算法跑m2dgr:GitHub - hongyeah314/LVI-SAM-large-scale: LVI-SAM for easier using (更简单的使用LVI-SAM的方法)
VINS-Mono算法跑m2dgr:(最简单的办法是将上面lvi-sam算法中的M2DGR_camera.yaml放进去,修改一下路径问题如euroc_config.yaml中保存路径)
m2dgr数据集在vins mono运行_vins-mono跑m2dr的数据集-CSDN博客
M2DGR数据集在一些SLAM框架上的配置与运行:ORB-SLAM系列、VINS-Mono、LOAM系列、FAST-LIO系列、hdl_graph_slam-CSDN博客
保存路径输出为tum格式,修改visualization.cpp文件中的ofstream为
ofstream foutC("XX/XXX/XX输出路径.txt", ios::app);
foutC.setf(ios::fixed, ios::floatfield);
foutC << header.stamp.toSec() << " ";
foutC.precision(5);
foutC << estimator.Ps[WINDOW_SIZE].x() << " "
<< estimator.Ps[WINDOW_SIZE].y() << " "
<< estimator.Ps[WINDOW_SIZE].z() << " "
<< tmp_Q.w() << " "
<< tmp_Q.x() << " "
<< tmp_Q.y() << " "
<< tmp_Q.z() << endl;
// << estimator.Vs[WINDOW_SIZE].x() << ","
// << estimator.Vs[WINDOW_SIZE].y() << ","
// << estimator.Vs[WINDOW_SIZE].z() << ","
foutC.close();
lio-sam算法跑M2DGR数据集:
修改三个文件:
1.加入M2DGR.yaml文件(复制param.yaml文件中的内容,将部分内容修改为参考中的lio-sam中的yaml。参考:M2DGR数据集在一些SLAM框架上的配置与运行:ORB-SLAM系列、VINS-Mono、LOAM系列、FAST-LIO系列、hdl_graph_slam-CSDN博客)
2.根据上面1中的参考修改run.launch
3.修改mapOptimization.cpp,输出路径文件。(注意输出的时间戳是当前时间与初始时间的差值,可以更改输出为绝对时间,问deepseek)
//保存轨迹,path_save是文件目录,txt文件提前建好,/home/xxx/xxx.txt,
std::ofstream pose1("XXX/XXXXX/XX.txt", std::ios::app);
pose1.setf(std::ios::scientific, std::ios::floatfield);
pose1.precision(9);
// if(flag_tum=1){
static double timeStart = laserOdometryROS.header.stamp.toSec();
// flag_tum=0;
// }
auto T1 =ros::Time().fromSec(timeStart) ;
// tf::Quaternion quat;
// tf::createQuaternionMsgFromRollPitchYaw(double r, double p, double y);//返回四元数
pose1<< laserOdometryROS.header.stamp -T1<< " "
<< -laserOdometryROS.pose.pose.position.x << " "
<<- laserOdometryROS.pose.pose.position.z << " "
<< -laserOdometryROS.pose.pose.position.y<< " "
<< laserOdometryROS.pose.pose.orientation.x << " "
<< laserOdometryROS.pose.pose.orientation.y << " "
<< laserOdometryROS.pose.pose.orientation.z << " "
<< laserOdometryROS.pose.pose.orientation.w << std::endl;
pose1.close();
SLAM输出路径的文件是XX.csv格式转换为XX.txt格式:使用csv2txt:GitHub - gyk001/csv2txt: A python util package for convert a csv file to token separator txt file. 把csv文件转化为文本分隔符文件的工具包,单元格内容跨行也ok哦,支持自定义输出文件的分隔符
使用pip install csv2txt
csv2txt input.csv out.txt
但是格式输出的格式可能不对,注意用脚本修改一下。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)