A-LOAM源码编译运行
运行A-LOAM问题记录
ceres问题
- 需要重新安装ceres库,十四讲中的ceres库太老,不适用。从官网下载安装稳定版的ceres库。点击
latest stable release
下载,不建议适用git克隆(太慢)。 - 在编译ceres库的时候,程序卡死,建议多编译几次,安装官网教程来,并行数选择222,太高会卡死。
catkin_make
编译A-LOAM
中ceres
报错,新版的ceres需要C++14,最新版的需要C++17,在A-LOAM中的CMakeLists.txt
中修改**C++**编译版本为141414或171717
-j16报错
catkin_make
编译-j16
报错,编译时用终端命令覆盖脚本命令,降低并行数目,如-j4
CV报错
catkin_make
编译CV
报错,我的电脑有两个版本的OpenCV
,在CMakeLists.txt
中指定依赖的OpenCV
版本即可,find_package(OpenCV 3 REQUIRED)
其他教程
A-LOAM运行和常见问题及解决方法
编译A-LOAM时Ceres库报错
KITTI数据集使用
KITTI数据集文件树如下:
.
|-- data_odometry_color
| `-- dataset
| `-- sequences
| |-- 00
| | |-- calib.txt
| | |-- image_2
| | |-- image_3
| | `-- times.txt
| `-- 01
| `-- image_2
|-- data_odometry_gray
| `-- dataset
| `-- sequences
| |-- 00
| | |-- calib.txt
| | |-- image_0
| | |-- image_1
| | `-- times.txt
| `-- 01
| `-- image_0
|-- data_odometry_velodyne
| `-- dataset
| `-- sequences
| |-- 00
| | `-- velodyne
| `-- 01
| `-- velodyne
|-- kitti.bag
`-- velodyne`-- odometry|-- data_object_image_2.zip|-- data_object_label_2| `-- training| `-- label_2`-- data_object_label_2.zip
- 其中,图片序列文件中
image_0、image_1
分别表示相机的左目和右目的图像序列,相机的标定结果在文件calib.txt
中,记录相机帧的时间戳在文件times.txt
中
KITTI Lidar数据集
- Kitti数据集没有提供相应的ros包,需要我们自己来写一个接口将Kitti数据转成ros包来把数据送到程序中去(播包)
- A-LOAM作者提供了一个结点
kitti_helper
来处理KITTI数据集。 - 运行程序只需要灰度图像序列和lidar里程计序列即可
修改参数
修改kitti_helper.aunch
中的参数
- 修改
dataset_folder
的值为/learn/Dataset/KITTI/
- 修改
output_bag_file
的值为/learn/Dataset/KITTI/kitti.bag
修改kittiHelper.cpp
文件中的路径变量值
修改时间戳路径
std::string timestamp_path = "data_odometry_gray/dataset/sequences/" + sequence_number + "/times.txt";
对应的左右目图片路径
left_image_path << dataset_folder << "data_odometry_gray/dataset/sequences/" + sequence_number + "/image_0/" << std::setfill('0') << std::setw(6) << line_num << ".png";
right_image_path << dataset_folder << "data_odometry_gray/dataset/sequences/" + sequence_number + "/image_1/" << std::setfill('0') << std::setw(6) << line_num << ".png";
修改lidar数据的路径
lidar_data_path << dataset_folder << "data_odometry_velodyne/dataset/sequences/" + sequence_number + "/velodyne/" << std::setfill('0') << std::setw(6) << line_num << ".bin";
编译运行
修改完参数后要保存文件,重新编译运行ros包,然后刷新一下工作空间。
namt:~/cat_kin_ws$ catkin_make
namt:~/cat_kin_ws$ source ./devel/setup.bash
开始运行
namt:~/cat_kin_ws$roslaunch aloam_velodyne kitti_helper.launch
新终端,打开rviz
namt:~/cat_kin_ws$ rviz
- 在图示的地方条件左目、右目图像,点云
- 然后因为点云的默认坐标是
map
,修改为程序中的camera_init
,然后若觉得lidar束太小,可以修改尺寸。
以play bag的方式运行
首先在新终端起一个roscore
然后在kitti数据集bag文件目录下play bag
rosbag play kitti.bag
在工作空间目录下使用rviz实时查看,然后同上边一样添加左右图像、点云,修改坐标系。效果和使用结点一样。
最终效果图:
A-LOAM源码编译运行相关推荐
- 闪来币SunlightCoin源码编译运行
SunlightCoin 源码编译运行 SunlightChain is a public blockchain. Anyone can participate in the development ...
- Flink 源码解析 —— 源码编译运行
更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章. 前言 之前自己本地 clone 了 Flink 的源码,编 ...
- [EOS源码分析]1.EOS源码编译运行
本文所有实践都是基于EOS dawn-v4.1.0,请切到该分支然后实践 切换命令:git checkout dawn-v4.1.0 目前网络上都是针对老版EOS2.0源码编译的文章,我在mac上参考 ...
- 经典坦克大战1990--Windows下源码编译运行,培养编程兴趣,提高项目经验和能力
1 介绍 ✨ 该经典坦克大战1990版,由C/C++编写,源码来自于GitHub的大佬krystiankaluzny,本文仅提供Windows下的编译&运行详细步骤,以供爱好者在此基础上进行开 ...
- OpenDlight MD-SAl应用开发(二)- ODL源码编译运行
目录 1.下载odl发布版本进行编译运行 2.解压之后,进入 .../bin目录 3.运行odl 4.安装feature 5.运行odl 经过<OpenDlight MD-SAl应用开发(一)- ...
- jw player 源码编译运行笔记
A.下载必须软件 下载5.7 版本的jw play 源码 svn co http://developer.longtailvideo.com/svn/tags/mediaplayer-5.7 下载 F ...
- centos 访问网页重启php_php项目上线基于docker运行php+源码编译实现Nginx+阿里云RDS连接实现...
项目背景: 公司项目上线要求运维把上线工作做好,并实现稳定性运行,活不多说,干! 环境要求: CentOS Linux release 7.2.1511 (Core) docker 版本:19.03. ...
- android 源码编译 模拟器emulator启动,Android 模拟器运行编译后的源码
下载Android源码以及如何编译,这里就不多介绍了,照着www.android.com给的步骤进行,主要介绍一下使用make命令编译好了源码之后,如何使用模拟器来运行生成的镜像之类的文件. 方式应该 ...
- Linux环境下Arm端源码编译OpenCV+ncnn目标检测模型实例运行调试完整实践记录
今天需要在嵌入式设备端运行C的程序,里面有依赖OpenCV的部分,这就需要编译安装好OpenCV才行,这个对于我来说还是比较陌生的,我很少用C,所以这里面也没少折腾,一路上遇上了很多的报错,这里我将完 ...
最新文章
- VUE 框架添加全局公共方法 , 保留小数点后两位
- PPT | Docker定义存储-让应用无痛运行
- php仓储管理系统 eku_河南物流仓储外包哪里有 极鹭云仓
- 小学经历——我家有猪
- 无意中发现的,自己看吧
- REST + Spring Security会话问题
- 完全CSS实现鼠标移上出现层的效果(超简单)
- java web开发环境搭建
- android应用开发(22)---Activity的生命周期
- py库: GUI(tkinter)
- python必备基础代码-python基础知识和练习代码
- 引发电气火灾火警的原因(转载)
- HP 招聘性能测试PM 北京/上海 长期招聘
- Appium下载遇到的问题
- maven配置smartupload_SmartUpload文件上传组件的使用教程
- Windows下 Jenkins 下载、安装
- LSTM(Long Short Term Memory)和RNN(Recurrent)教程收集 (知乎)
- angular引入ng-zorro中的icon图标方法
- 数字电视标准5种规格720p、1080i和…
- react 实现图片的滚动缩放和按住鼠标左键移动图片效果