• LeGO-LOAM(1):运行LeGO-LOAM


    目录

    # 1 安装与编译

    ## 1.1 依赖项

    ### 1.1.1 ros

    ### 1.1.2 gtsam

    ## 1.2 编译

    # 2 系统介绍

    # 3 运行demo

    ### 3.1 数据下载

    ### 3.2 数据描述

    ### 3.3 demo运行

    ####(1)运行launch文件

    ####(2)播放数据文件

    #### (3)demo运行效果

    # 4 Stevens data-set

    ## 4.1 数据下载

    ## 4.2 数据说明与播放数据包方式

    ## 4.3 运行LeGO_LOAM效果


    # 1 安装与编译

    ## 1.1 依赖项

    ### 1.1.1 ros

    在indigo, kinetic, and melodic版本上测试过

    ### 1.1.2 gtsam

    gtsam全称为:Georgia Tech Smoothing and Mapping library即佐治亚理工大学平滑和建图库

    1. wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
    2. cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
    3. cd ~/Downloads/gtsam-4.0.0-alpha2/
    4. mkdir build && cd build
    5. cmake ..
    6. sudo make install

    ## 1.2 编译

    流程为:建立工作空间、下载源码、编译。

    第一次运行时使用"-j1"命令,是为了产生一些消息类型,如下所示;之后再运行就不需要使用"-j1"了

    1. cd xx/LeGO_ws
    2. mkdir src && cd src
    3. git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
    4. cd ..
    5. catkin_make -j1

    # 2 系统介绍

    LeGO LOAM特别针对地面车辆上水平放置的VLP-16进行了优化。它假设扫描中始终存在接地层。我们使用的UGV是Clearpath Jackal。它有一个内置IMU。

    该数据包在特征提取之前执行分割:

    激光雷达里程计执行两步 Levenberg Marquardt 优化以获得 6D 变换:

    roll pitch yaw示意图如下:

    # 3 运行demo

    ### 3.1 数据下载

    数据地址:https://github.com/RobustFieldAutonomyLab/jackal_dataset_20170608

    对应的google云盘:https://drive.google.com/drive/folders/1_t5fX5yIqY-y6sAifY8pVWX4O9LCK5R2

    点开云盘,只有下图所示的文件夹"same_start_end_position"可以下载

    下载解压后如下所示:

    ### 3.2 数据描述

    ros话题:

    雷达话题:`/velodyne_points`

    imu话题:`/imu/data`

    环境情况:有树木、草地、建筑物

    ### 3.3 demo运行

    demo运行分为两个部分,运行Lego_Loam的launch文件和播放数据文件。

    ####(1)运行launch文件

    运行launch:

    1. cd xx/LeGO_ws
    2. source devel/setup.bash
    3. roslaunch lego_loam run.launch

    注意:launch参数`/use_sim_time`设置为“true”用于模拟,“false”用于真实机器人使用;下面的步骤使用的是录制的数据包,此时`/use_sim_time`设置为“true”即可。理解`/use_sim_time`参考:https://blog.csdn.net/qq_39607707/article/details/123706557

    如果出现报错:

    [mapOptmization-7] process has died [pid 15154, exit code 127, cmd /home/meng/subject/LeGO_ws/devel/lib/lego_loam/mapOptmization __name:=mapOptmization

    报错原因是:缺少一些库。它们已安装但不可用,因为不在 LD_LIBRARY_PATH 环境变量中。所以将 /usr/local/lib 目录添加到变量中解决了我的问题。

    参考:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/issues/198

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

    新的运行launch步骤为:

    1. cd xx/LeGO_ws
    2. source devel/setup.bash
    3. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    4. roslaunch lego_loam run.launch

    效果如下:

    ####(2)播放数据文件

    rosbag play same_position.bag --clock --topic /velodyne_points /imu/data

    注意:虽然 /imu/data 是可选的,但如果提供它可以大大提高估计精度。

    `--clock` 理解参考:https://blog.csdn.net/qq_39607707/article/details/123706557,播放数据包的时候一定要带上

    `--topic` 播放指定话题

    #### (3)demo运行效果

    包括:edge features(边特征)、surface features(面特征)、trajector(轨迹)、map cloud(stack)(堆叠点云)

    包括:edge features(边特征)、surface features(面特征)、trajector(轨迹)

    # 4 Stevens data-set

    ## 4.1 数据下载

    github链接:https://github.com/TixiaoShan/Stevens-VLP16-Dataset

    google云盘链接:https://drive.google.com/drive/folders/16p5UPUCZ1uK0U4XE-hJKjazTsRghEMJa

    直接点击单个文件即可下载

    ## 4.2 数据说明与播放数据包方式

    包括的话题:

    1. /tf # 运行 LeGO-LOAM 不需要,使用 LeGO-LOAM 测试时不要发布
    2. /imu/data # 不与 VLP-16 对齐,仅提供初始转换猜测,对于运行 LeGO-LOAM 不是必需的
    3. # 参考前面的经验,播放数据时还是带上imu数据以提高精度
    4. /velodyne_points

    播放数据包的方式:

    rosbag play *.bag --clock --topic /velodyne_points /imu/data

    ## 4.3 运行LeGO_LOAM效果

    2018-05-18-14-49-12_0.bag :

    其他数据包自行跑跑看

  • 相关阅读:
    Autowired和Resource的关系
    ESP32s3 MSC/U盘 虚拟串口
    数字图像处理(分割)
    MySQL面试题
    拼多多anti-token 字段加解密学习分析
    ###SDL,JNI
    react快速开始(三)-create-react-app脚手架项目启动;使用VScode调试react
    web前端-html-css-雪碧图&精灵图(切换背景问题,闪烁原因,雪碧图说明,实例)
    Linux连接工具(一)XShell7(免费版)下载及安装步骤
    redux-获取导航标题案例(+react-intl 国际化)
  • 原文地址:https://blog.csdn.net/BIT_HXZ/article/details/127135551