一、velodyne-VLP16使用教程

请看官一定要参看以下网址教程,都是本人血泪史!

https://www.cnblogs.com/gdut-gordon/p/11228297.html

二、LOAM及其改进版本

2.1 源码

1)作者J Zhang,已取消开源。

该库融合二维hokuyo雷达和IMU构建三维空间点云地图。

2)作者laboshinl,https://github.com/laboshinl/loam_velodyne

该库能兼容velodyne16线,32线,64线。不同型号的雷达要对相应的参数进行修改。

3)作者tcts-mvcp,https://github.com/tcts-mvcp/loam_velodyne

Change point type to PointXYZINormal, and store original coordinate and intensity data, which are useful for applications like land markers recognition or ground segmentation, to normal and curvature, respectively.

4)作者RobustFieldAutonomyLab,https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/

This repository contains code for a lightweight and ground optimized lidar odometry and mapping (LeGO-LOAM) system for ROS compatible UGVs. The system takes in point cloud from a Velodyne VLP-16 Lidar (placed horizontal) and optional IMU data as inputs. It outputs 6D pose estimation in real-time.

The author use IMU integration to obtain the initial guess between two lidar transformation.

2.2 运行LOAM

roslaunch loam_velodyne loam_velodyne.launch

1)跑数据集

read from velodyne [VLP16 sample pcap] (https://midas3.kitware.com/midas/folder/12979)

roslaunch velodyne_pointcloud VLP16_points.launch pcap:="/home/laboshinl/Downloads/velodyne.pcap"

play sample velodyne data from [VLP16 rosbag] (https://db.tt/t2r39mjZ). “-r 0.5”降低数据播放频率

rosbag play ~/Downloads/velodyne.bag -r 0.5

2)利用VLP16实时采集数据

roslaunch velodyne_pointcloud VLP16_points.launch calib:="/path/to/VLP16.yaml"

在RVIZ里面,在PointCloud2选项卡中添加/velodyne_cloud_registered,设置decay time为1000ms。

2.3 运行Lego-LOAM

roslaunch lego_loam run.launch

Notes: The parameter "/use_sim_time" is set to "true" for simulation, "false" to real robot usage.

1)跑数据集

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

--clock  是个巨坑,详情参考,https://www.cnblogs.com/gdut-gordon/p/10643426.html

2)用VLP16和IMU采集实时数据

roslaunch velodyne_pointcloud VLP16_points.launch calib:="/path/to/VLP16.yaml"
rosrun lpms_imu lpms_imu_node _sensor_model:="LPMSB2-9BA395" _port:="00:04:3E:9B:A3:95" /imu:=/imu/data

Notes:

在lego_loam中,作者并没有进行lidar和imu的联合标定!作者仅仅把lidar和imu的坐标系三个轴方向对齐,坐标系原点存在偏移。

如果想联合标定IMU和lidar,可参考以下博文。

https://www.cnblogs.com/gdut-gordon/p/10146050.html

三、LeGO-Loam的融合里程计

可以通过 /tf 来查看融合后的里程计。

3.1 如何查看ROS中的 /tf 信息

1) rviz中添加 /TF 选项卡可视化;

2) 利用 /tf 的命令行功能查看;

3.2 融合里程计的 /tf 表示

节点/featureAssociation 发布了雷达里程计,frame id为 /laser_odom,10HZ;

节点/mapOptmization 发布了地图优化的里程计,frame id为 /aft_mapped,2HZ;

节点/transformFusion 订阅了来自上述两个节点的里程计topic,融合计算,发布最终的里程计,frame id为 /camera, 10HZ;

以上3个 /tf 信息流,其 parent frame id 都是 /camera_init。

注意:camera指的是lidar!IMU 的 /tf 数据流并没有发布出来!

想法、问题记录:

2. As stated in https://github.com/daobilige-su/loam_velodyne using loam for one of the test data gates_oscillating_motion.bag does not get the clear result as in the demo video of the original author. http://www.frc.ri.cmu.edu/%7Ejizhang03/Videos/gates_oscillating_motion.mp4

In my thought it might be an issue of IMU data processing in the code, as gates_oscillating_motion.bag containing IMU data, and in my experience including IMU data does not improve loam.

3. loam-velodyne的改进方案

Change point type to PointXYZINormal, and store original coordinate and intensity data, which are useful for applications like land markers recognition or ground segmentation, to normal and curvature, respectively.

https://github.com/tcts-mvcp/loam_velodyne

fix a bug on laserOdometry.cpp to get rid of the matrix NaN error during L-M optimization step

https://github.com/daobilige-su/loam_velodyne

7. #About ring#However, it failed. I debugged the node and found that KITTI dataset just provide 4 values (x y z intensity) without rings. When I read the code, I noticed that rings value can be determined by elevation of every point, and I am trying to use the same scheme

9. cloudcompare

10.Jacobian matrix

https://github.com/laboshinl/loam_velodyne/issues/3#issuecomment-354786065https://github.com/laboshinl/loam_velodyne/issues/3#issuecomment-374575581

11.How to visualize the fully registered map in RViz

How to save the fully registered map in .pcd**

https://github.com/laboshinl/loam_velodyne/issues/3#issuecomment-385203738
https://github.com/laboshinl/loam_velodyne/issues/41

使用velodyne16线激光雷达跑loam-velodyne的更多相关文章

  1. 使用ros_driver运行velodyne16线激光雷达

    一.使用ros_driver运行VLP16 推荐网址: http://blog.csdn.net/littlethunder/article/details/51920681 https://www. ...

  2. lego loam 跑镭神32线激光雷达

    师弟反应镭神32线激光雷达(32C)录制的数据包不能跑lego loam,这里就总结一下. 首先lego loam默认的接受的topic name是velodyne_points,点云的frame_i ...

  3. 激光雷达 LOAM 论文 解析

    转自:https://blog.csdn.net/hltt3838/article/details/109261334 固态激光雷达的一段视频:https://v.qq.com/x/page/a078 ...

  4. Velodyne VLP-16激光雷达数据分析

    Velodyne VLP-16激光雷达数据分析 Velodyne VLP-16激光雷达保持了 Velodyne 在 LiDAR 中的突破性重要功能:实时收发数据.360 度全覆盖.3D 距离测量以及校 ...

  5. Lidar激光雷达市场

    Lidar激光雷达市场 近年来,激光雷达技术在飞速发展,从一开始的激光测距技术,逐步发展了激光测速.激光扫描成像.激光多普勒成像等技术,如今在无人驾驶.AGV.机器人等领域已相继出现激光雷达的身影. ...

  6. TOF摄像机可以替代Flash激光雷达吗?

    TOF摄像机可以替代Flash激光雷达吗? 一.基于ToF技术的Flash激光雷达 基本成像原理上ToF Camera与LiDAR相同,都采用飞行时间测距技术(包括利用APD或SPAD的直接测距法,和 ...

  7. 用于激光雷达的 APD,SPAD 和 SiPM 分析

    1. 术语及定义 1.1 激光雷达,Light Detection And Range, LiDAR  发射激光光束,并接收回波以获取目标三维和/或速度信息的系统: 1.2 机械旋转激光雷达,Mech ...

  8. Metrics:如何让线上应用更加透明?

    1. 上期我们结合<SRE Google 运维解密>,对监控系统进行了一次脉络梳理,知道一旦离开了监控系统,我们就没法辨别一个服务是不是在正常提供服务,就如同线上的服务在随风裸奔. 文章分 ...

  9. Autoware 培训笔记 No. 4——寻迹

    1. 前言 好多初创公司公布出来的视频明显都是寻迹的效果,不是说寻迹不好,相反可以证明,寻迹是自动技术开始的第一步. 自动驾驶寻迹:一种能够自动按照给定的路线(通常是采用不同颜色或者其他信号标记来引导 ...

随机推荐

  1. [RESTful] DHC Client

    安装Chrome的DHC插件, 进入DHC Client谷歌插件网页. 安装到Chrome浏览器: 点击Chrome设置 点击扩展程序 把刚刚下载的文件解压缩 把 .crx 后缀的文件直接拖入Chro ...

  2. JavaScript中Ajax的用法

    XMLHttpRequest 对象的属性和方法: open(method,url,async) 规定请求的类型.URL 以及是否异步处理请求 send(string)   将请求发送到服务器. res ...

  3. javascript 字符串处理

    ---恢复内容开始--- 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串 ...

  4. docker配置代理的用户名密码

    公司访问外网全部需要经过代理服务器,在使用docker的过程中,发现就算为docker配置了代理,还是会因为没有代理服务器认证,导致pull操作失败,报如下错误: Error response fro ...

  5. .NET并行计算和并发11:并发接口 IProducerConsumerCollection

    using System; using System.Collections; using System.Collections.Generic; using System.Collections.C ...

  6. wpf 依赖属性介绍

    微软在wpf中推出le 附加属性 这个新概念 简单来说,本来自己这个类是不具备该行为,但是在特殊情况下需要用到该属性 比如在 TextBox 本来是不具备,几行几列 跨行等 行为 ,但是如果  把他放 ...

  7. Flask-----Flask里引用哈希密码

    哈希密码(Password Hash): 对口令进行一次性的加密处理而形成的杂乱字符串.这个加密的过程被认为是不可逆的,也就是说,人们认为从哈希串中是不可能还原出原口令的.(这句话是比较官方的解释). ...

  8. 自定义注解(spring)

    终于有时间可以在这里写一篇博文了,今天写一下我在项目中用到的自定义注解,就是在每次操作项目的时候,想把它的操作加在我的数据库中,简单地说就是日志管理,这些东西都写完之后,我就问我自己,问什么要自定义注 ...

  9. golang struct

    ex1 /* https://golangbot.com/structs/ struct 结构 结构就是一组字段. */ package main import "fmt" // ...

  10. excel 用VBA将所有单元格内容全部转换为文本

    Sub 将所有列全部转换为文本() t=timer 'Cells(Rows.Count, 1).End(xlUp).Row 获取第一列最后一个非空单元格的行号 s = Cells(, Columns. ...