LeGO-LOAM 源码阅读笔记(imageProjecion.cpp)_lego_loam full_cloud_info-程序员宅基地

技术标签: SLAM  LeGO-LOAM  

LeGO-LOAM是一种在LOAM之上进行改进的激光雷达建图方法,建图效果比LOAM要好,但是建图较为稀疏,计算量也更小了。

本文原地址:wykxwyc的博客

github注释后LeGO-LOAM源码:LeGO-LOAM_NOTED
关于代码的详细理解,建议阅读:

1.地图优化代码理解

2.图像重投影代码理解

3.特征关联代码理解

4.LeGO-LOAM中的数学公式推导

以上博客会随时更新,如果对你有帮助,请点击注释代码的github仓库右上角star按钮,你的鼓励将给我更多动力。

imageProjecion.cpp概述

imageProjecion.cpp进行的数据处理是图像映射,将得到的激光数据分割,并在得到的激光数据上进行坐标变换。

imageProjecion

imageProjecion()构造函数的内容如下:

  1. 订阅话题:订阅来自velodyne雷达驱动的topic
    • "/velodyne_points"(sensor_msgs::PointCloud2),订阅的subscriber是subLaserCloud
  2. 发布话题,这些topic有:
    • "/full_cloud_projected"(sensor_msgs::PointCloud2)
    • "/full_cloud_info"(sensor_msgs::PointCloud2)
    • "/ground_cloud"(sensor_msgs::PointCloud2)
    • "/segmented_cloud"(sensor_msgs::PointCloud2)
    • "/segmented_cloud_pure"(sensor_msgs::PointCloud2)
    • "/segmented_cloud_info"(cloud_msgs::cloud_info)
    • "/outlier_cloud"(sensor_msgs::PointCloud2)

然后分配内存(对智能指针初始化),初始化各类参数。

上述的cloud_msgs::cloud_info是自定义的消息类型,其具体定义如下:

Header header 

int32[] startRingIndex  // 长度:N_SCAN
int32[] endRingIndex    // 长度:N_SCAN

float32 st
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wykxwyc/article/details/98317100

智能推荐

WPS Office 国际版 添加中文语言包 及相关问题_wps国际版中文语言包-程序员宅基地

文章浏览阅读3.8w次,点赞7次,收藏11次。WPS Office 国际版添加中文语言包1 如何添加中文1.1 准备mui文件夹(包含中文语言包) 建议先安装 WPS Office 国内版,提取其中的mui文件夹; 它应当包含以下目录: mui\default mui\zh_CN 也可通过网上下载。1.2 安装语言包删除 “ kingsoft\WPS Office\ ”目..._wps国际版中文语言包

Scrapy集成Selenium ChromeDriver_scrapy driver-程序员宅基地

文章浏览阅读2.7k次。官网chromedriverchromedriver-downloadsRunning Selenium Headless with Chrome安装chrome浏览器1、windows可通过 帮助->关于Google Chrome查看已安装的Chrome版本2、linuxTODO下载chromdriver下载链接:https://sites.google.com/a/chromium.org/chromedriver/downloads1、选择对应的版本2、选择对应的操作系_scrapy driver

00_Ubuntu系统入门_ubuntu入门-程序员宅基地

文章浏览阅读3k次,点赞11次,收藏88次。Ubuntu系统入门,shell,Makefile。_ubuntu入门

【bzoj1798】[Ahoi2009]Seq 维护序列seq 线段树-程序员宅基地

文章浏览阅读252次。原题题解:线段树区间乘法,lazy标记的更新对于我这种萌新来说是个难点qwq。先理清楚想好了再写。先乘后除,一步一步慢慢来。//bzoj1798 [Ahoi2009]维护序列#include<iostream>#include<cstdio>#include<cstring>#define lson l,m,pos<<1#define rs...

微信小程序使用weui样式框架-程序员宅基地

文章浏览阅读2.8k次。WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。包含button、cell、dialog、 progress、 toast、article、actionsheet、icon等各式元素。以下内容是纯UI库,如果想使用逻辑封装版本,请看小程序组件库 - WeUIWEUI的组件库这篇文章只介绍样式如何引入↓↓↓github下载:weui-wxss将dist文件导入到微信开发者工具3.看到这个界面就说明._weui样式

mysql中有检查约束吗_mysql中的检查约束有什么用-程序员宅基地

文章浏览阅读540次。mysql中的检查约束的作用:用来指定某列的可取值的范围。检查约束可以通过CREATE TABLE或ALTER TABLE语句来实现,根据用户实际的完整性要求来定义。在MySQL中,提供了CHECK检查约束用来指定某列的可取值的范围,它通过限制输入到列中的值来强制域的完整性。但是目前的MySQL版本只是对CHECK约束进行了分析处理,但会被直接忽略,并不会报错。MySQL 检查约束(CHECK)可..._在目前的mysol版本中,check完整性约束能够解析,但会被忽略

随便推点

Ubuntu下怎么通过命令完成蓝牙的配对和连接_ubuntu16.04 蓝牙怎么控制-程序员宅基地

文章浏览阅读1.9w次,点赞5次,收藏26次。1.输入hciconfig命令,确认你的蓝牙设备是否被系统识别,避免你插入多个蓝牙设备2.为你的蓝牙设备上电,输入hciconfig hci0 up3.输入bluetoothctl命令4.启动搜索模式,输入scan on5.当找到你需要连接的蓝牙设备时,输入scan off,停止探索6.完成配对输入pair 蓝牙地址(你需要连接的设备)7.手机端需要确认配对请求,之后ubu..._ubuntu16.04 蓝牙怎么控制

关于anaconda2和anconda3安装_anaconda2和3哪个好-程序员宅基地

文章浏览阅读1.1k次。前段时间因为学数据挖掘,要打开一个啥.ipynb,直接打开的话,嗯~ o(* ̄▽ ̄*)o,界面很不友好了,看不懂…….https://blog.csdn.net/qq_16633405/article/details/80198648 –如何打开.ipynb文件里面有提到三种方法,也有在线直接打开的,省事儿的很,懒人必备啊,但是考虑到身为一个IT界的小菜鸟,还是安anaconda吧,貌似考..._anaconda2和3哪个好

MATLAB中cvx工具箱的使用介绍-程序员宅基地

文章浏览阅读1.4k次,点赞10次,收藏26次。cvx工具箱_cvx工具箱

配置oracle用户的环境变量,window中oracle环境变量设置方法分享-程序员宅基地

文章浏览阅读686次。window server中Oracle的环境变量设置1、右击“我的电脑”->选择“属性”->选择“高级”->单击“环境变量”2、选择“Path”这一行,单击“编辑”,在“Path”的变量值文本框的最后面先加入一个分号“:”,然后再分号后面加入sqlplus文件的目录路径,如“C:\Program Files\oracle\product\10.2.0\db_1\BIN”,然后点..._windows系统oracle监听需要修改哪些环境变量

Oracle11g安装配置详细教程_oracle11g安装配置详细教程 csdn-程序员宅基地

文章浏览阅读701次,点赞22次,收藏9次。Oracle 11g的安装和配置是一个详尽的过程,涉及多个步骤。以下是基于Oracle 11g R2(第二个发布版本)在Windows环境下的安装和基本配置的概述。请注意,Oracle 11g在不同的操作系统上的安装步骤可能会有所不同,此处以Windows为例进行说明。_oracle11g安装配置详细教程 csdn

不能将参数1从 "_TCHAR*" 转换为"const char *"_无法将参数1 从tchar转换为ptchar-程序员宅基地

文章浏览阅读3.2k次,点赞3次,收藏3次。VS解决方案:项目——属性——配置——属性——常规——字符集:“使用Unicode字符集” 改为 “使用多字节字符集”。_无法将参数1 从tchar转换为ptchar