运行A-LOAM问题记录

ceres问题

  • 需要重新安装ceres库,十四讲中的ceres库太老,不适用。从官网下载安装稳定版的ceres库。点击latest stable release下载,不建议适用git克隆(太慢)。
  • 在编译ceres库的时候,程序卡死,建议多编译几次,安装官网教程来,并行数选择222,太高会卡死。
  • catkin_make编译A-LOAMceres报错,新版的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的方式运行

  1. 首先在新终端起一个roscore

  2. 然后在kitti数据集bag文件目录下play bag

    rosbag play kitti.bag
    
  3. 在工作空间目录下使用rviz实时查看,然后同上边一样添加左右图像、点云,修改坐标系。效果和使用结点一样。

最终效果图:

A-LOAM源码编译运行相关推荐

  1. 闪来币SunlightCoin源码编译运行

    SunlightCoin 源码编译运行 SunlightChain is a public blockchain. Anyone can participate in the development ...

  2. Flink 源码解析 —— 源码编译运行

    更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章. 前言 之前自己本地 clone 了 Flink 的源码,编 ...

  3. [EOS源码分析]1.EOS源码编译运行

    本文所有实践都是基于EOS dawn-v4.1.0,请切到该分支然后实践 切换命令:git checkout dawn-v4.1.0 目前网络上都是针对老版EOS2.0源码编译的文章,我在mac上参考 ...

  4. 经典坦克大战1990--Windows下源码编译运行,培养编程兴趣,提高项目经验和能力

    1 介绍 ✨ 该经典坦克大战1990版,由C/C++编写,源码来自于GitHub的大佬krystiankaluzny,本文仅提供Windows下的编译&运行详细步骤,以供爱好者在此基础上进行开 ...

  5. OpenDlight MD-SAl应用开发(二)- ODL源码编译运行

    目录 1.下载odl发布版本进行编译运行 2.解压之后,进入 .../bin目录 3.运行odl 4.安装feature 5.运行odl 经过<OpenDlight MD-SAl应用开发(一)- ...

  6. jw player 源码编译运行笔记

    A.下载必须软件 下载5.7 版本的jw play 源码 svn co http://developer.longtailvideo.com/svn/tags/mediaplayer-5.7 下载 F ...

  7. centos 访问网页重启php_php项目上线基于docker运行php+源码编译实现Nginx+阿里云RDS连接实现...

    项目背景: 公司项目上线要求运维把上线工作做好,并实现稳定性运行,活不多说,干! 环境要求: CentOS Linux release 7.2.1511 (Core) docker 版本:19.03. ...

  8. android 源码编译 模拟器emulator启动,Android 模拟器运行编译后的源码

    下载Android源码以及如何编译,这里就不多介绍了,照着www.android.com给的步骤进行,主要介绍一下使用make命令编译好了源码之后,如何使用模拟器来运行生成的镜像之类的文件. 方式应该 ...

  9. Linux环境下Arm端源码编译OpenCV+ncnn目标检测模型实例运行调试完整实践记录

    今天需要在嵌入式设备端运行C的程序,里面有依赖OpenCV的部分,这就需要编译安装好OpenCV才行,这个对于我来说还是比较陌生的,我很少用C,所以这里面也没少折腾,一路上遇上了很多的报错,这里我将完 ...

最新文章

  1. VUE 框架添加全局公共方法 , 保留小数点后两位
  2. PPT | Docker定义存储-让应用无痛运行
  3. php仓储管理系统 eku_河南物流仓储外包哪里有 极鹭云仓
  4. 小学经历——我家有猪
  5. 无意中发现的,自己看吧
  6. REST + Spring Security会话问题
  7. 完全CSS实现鼠标移上出现层的效果(超简单)
  8. java web开发环境搭建
  9. android应用开发(22)---Activity的生命周期
  10. py库: GUI(tkinter)
  11. python必备基础代码-python基础知识和练习代码
  12. 引发电气火灾火警的原因(转载)
  13. HP 招聘性能测试PM 北京/上海 长期招聘
  14. Appium下载遇到的问题
  15. maven配置smartupload_SmartUpload文件上传组件的使用教程
  16. Windows下 Jenkins 下载、安装
  17. LSTM(Long Short Term Memory)和RNN(Recurrent)教程收集 (知乎)
  18. angular引入ng-zorro中的icon图标方法
  19. 数字电视标准5种规格720p、1080i和…
  20. react 实现图片的滚动缩放和按住鼠标左键移动图片效果

热门文章

  1. 转录组分析R基础知识
  2. Color Hunt 漂亮炫酷的配色小程序
  3. Understanding and Detecting Software Upgrade Failures in Distributed Systems
  4. 支付宝--扫码支付流程
  5. Java学习笔记(二十一)
  6. Qt QPushButton 添加图片
  7. 为什么不使用ipv6计算机网络,细说计算机网络中的ipv4和ipv6
  8. matlab左除与右除的区别
  9. Sass/Scss、Less 是什么?
  10. linux编程之mprotect