SLAM实操入门(八):使用Robosence-16转换数据格式,进行基于A-Loam的三维SLAM

文章目录

  • 前言
  • 1 Robosence与Velodyne格式差异.
  • 2 格式转换
      • 2.1 rs_to_velodyne库
      • 2.2 目前支持:
  • 3 拉取工程并编译
      • 2.1 安装robosence雷达驱动(类似第六章):
      • 2.2 构建rs2vel工程:
  • 3 运行robosence雷达,并转换格式
  • 总结


前言

上文介绍使用自己的多线激光雷达来可视化、采数据,并使用港科大改进的A-Loam进行建图。

有朋友问说自己用的是Robosence的雷达,A-Loam的库是只是velodyne雷达的格式的,这一篇讲一讲怎么做一个数据转接,实现使用Robosence进行建图。

前文链接如下
  • SLAM实操入门(一):在已有WIN10的电脑上安装Ubuntu20.04

  • SLAM实操入门(二):Ubuntu20.04安装ROS Noetic并运行“小乌龟”程序

  • SLAM实操入门(三):Ubuntu20.04安装Turtlebot3并运行SLAM例程仿真

  • SLAM实操入门(四):使用ROS连接自己的激光雷达并可视化扫描结果

  • SLAM实操入门(五):无里程计仅使用激光雷达建图(GMapping算法)

  • SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化


  • SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM

1 Robosence与Velodyne格式差异.

rslidar和velodyne的格式有微小的区别

其中,rslidar的点云数据格式如下:

struct RsPointXYZIRT {PCL_ADD_POINT4D;uint8_t intensity;uint16_t ring = 0;double timestamp = 0;EIGEN_MAKE_ALIGNED_OPERATOR_NEW
} EIGEN_ALIGN16;
POINT_CLOUD_REGISTER_POINT_STRUCT(RsPointXYZIRT,(float, x, x)(float, y, y)(float, z, z)(uint8_t, intensity, intensity)(uint16_t, ring, ring)(double, timestamp, timestamp))

velodyne的点云数据格式如下:

struct RsPointXYZIRT {PCL_ADD_POINT4D;uint8_t intensity;uint16_t ring = 0;double timestamp = 0;EIGEN_MAKE_ALIGNED_OPERATOR_NEW
} EIGEN_ALIGN16;
POINT_CLOUD_REGISTER_POINT_STRUCT(RsPointXYZIRT,(float, x, x)(float, y, y)(float, z, z)(uint8_t, intensity, intensity)(uint16_t, ring, ring)(double, timestamp, timestamp))

2 格式转换

2.1 rs_to_velodyne库

使用一个将Robosense点云转换为Velodyne点云格式的ros工具,可直接用于下游算法,例如LOAM,LEGO-LOAM,LIO-SAM等。

rs_to_velodyne库安装的github参考地址:rs_to_velodyne

2.2 目前支持:

  1. [robosense XYZIRT] 至 [velodyne XYZIRT / XYZIR / XYZI]:(推荐)
    RS-16、RS-32、RS-Ruby、RS-BP 和 RS-Helios LiDAR 点云。

  2. [robosense XYZI] 至 [velodyne XYZIR]:
    RS-16 和 RS-Ruby LiDAR 点云,更多 LiDAR 模型支持即将推出。

注意:对于 rslidar_sdk v1.5+(2022),代码需要进行微小修改。

3 拉取工程并编译

2.1 安装robosence雷达驱动(类似第六章):

拉取驱动工程并编译:

cd
sudo mkdir -p rs_deiver/src
cd rs_deiver
catkin_make
cd src
git clone https://github.com/RoboSense-LiDAR/rslidar_sdk.git
cd ..
catkin_make
source devel/setup.bash

安装pcap依赖:

sudo apt-get install -y libpcap-dev

安装Yaml依赖(若已安装ROS desktop-full, 可跳过):

sudo apt-get install -y libyaml-cpp-dev 

2.2 构建rs2vel工程:

  • 回到主页,创建工程文件
cd
sudo mkdir -p catkin_rs2vel/src/
  • 进入工程文件中
cd catkin_rs2vel/src/
  • 拉取工程
sudo git clone https://github.com/HViktorTsoi/rs_to_velodyne.git
  • 返回上级目录,编译
cd ..
catkin_make

source一下bash文件以配置环境变量

source devel/setup.bash

3 运行robosence雷达,并转换格式

与第六章、第七章的方式相同,但是这里需要运行三个launch文件:

  • 1、robosence激光雷达驱动
roslaunch rslidar_sdk start.launch
  • 2、robosence to velodyne代码
# 对于XYZI格式的点云来自/rslidar_points
rosrun rs_to_velodyne rs_to_velodyne XYZI XYZIR

也可能是下面其中某个,根据需求试一试
XYZIRT 输入:
对于来自 /rslidar_points 的 XYZIRT 格式点云,最新的 rslidar_sdk 驱动程序才能获取此类点云

rosrun rs_to_velodyne rs_to_velodyne XYZIRT XYZIRT
# or
rosrun rs_to_velodyne rs_to_velodyne XYZIRT XYZIR
# or
rosrun rs_to_velodyne rs_to_velodyne XYZIRT XYZI
  • 3、A-Loam建图代码
 roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

结果如下

建图结果


总结

本文介绍了使用Velodyne的16线激光雷达进行建图,算法是港科大2014年重构的A-Loam,希望能帮到大家。

  • SLAM实操入门(一):在已有WIN10的电脑上安装Ubuntu20.04

  • SLAM实操入门(二):Ubuntu20.04安装ROS Noetic并运行“小乌龟”程序

  • SLAM实操入门(三):Ubuntu20.04安装Turtlebot3并运行SLAM例程仿真

  • SLAM实操入门(四):使用ROS连接自己的激光雷达并可视化扫描结果

  • SLAM实操入门(五):无里程计仅使用激光雷达建图(GMapping算法)

  • SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化

  • SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/430197.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2012年408考研真题-数据结构

8.【2012统考真题】求整数n(n≥0)的阶乘的算法如下&#xff0c;其时间复杂度是(&#xff09;。 int fact(int n){ if(n<1) return 1; return n*fact (n-1); } A. O(log2n) B. O(n) C. O(nlog2n) D. O(n^2) 解析&#xff1a; 观察代码&#xff0c;我们不…

Matlab Simulink 主时间步(major time step)、子时间步(minor time step)

高亮颜色说明&#xff1a;突出重点 个人觉得&#xff0c;&#xff1a;待核准个人观点是否有误 高亮颜色超链接 文章目录 对Simulink 时间步的理解Simulink 采样时间的类型Discrete Sample Times(离散采样时间)Controllable Sample Time(可控采样时间) Continuous Sample Times(…

在MAC中Ollama开放其他电脑访问

ollama安装完毕后默认只能在本地访问&#xff0c;之前我都是安装其他的软件之后可以结合开放其他端口访问&#xff0c;其实是可以新增或修改下电脑的系统配置&#xff0c;就可以打开端口允许除本机IP或localhost访问。 步骤如下&#xff1a; 1、查看端口&#xff08;默认是&…

Shelly实测天工的音乐创作功能,写了一首歌,来听听效果

​ 大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 在数字时代的洪流中&#xff0c;我始终…

杀软对抗 ---> Perfect Syscall??

好久没更了&#xff0c;今天想起来更新了&#x1f60b;&#x1f60b;&#x1f60b;&#x1f60b; 目录 1.AV && EDR 2.Perfect Syscall&#xff1f;&#xff1f; 3.Truly Perfect ??? 在开始之前先来展示一下这次的免杀效果 1.AV && EDR 360 天擎EDR …

Python模块和包:自定义模块和包③

文章目录 一、模块1.1 什么是模块1.2 创建模块1.3 导入模块1.4 模块的命名空间 二、包2.1 什么是包2.2 创建包2.3 导入包2.4 包的命名空间 三、综合详细例子3.1 项目结构3.2 模块代码student.pycourse.pymanager.py 3.3 主程序代码main.py 3.4 运行结果 四、总结 Python模块和包…

Apifox 「定时任务」操作指南,解锁自动化测试的新利器

定时任务是按照预设时间自动执行的任务&#xff0c;它可以有效解决一些常见问题&#xff0c;比如频繁执行的回归测试和大规模的接口测试&#xff0c;这些任务需要在固定时间点或间隔周期内自动运行&#xff0c;以确保软件的持续集成和持续交付过程中的稳定性和可靠性。通过使用…

计算机网络34——Windows内存管理

1、计算机体系结构 2、内存管理 分为连续分配管理和非连续分配管理 在块内存在的未使用空间叫内部碎片&#xff0c;在块外存在的未使用空间叫外部碎片 固定分区分配可能出现内部碎片&#xff0c;动态分区分配可能出现外部碎片 3、逻辑地址和实际地址的互相转换 4、缺页中断 …

微信支付商户 - 如何开通商家转账到零钱

商家转账到零钱功能的快速开通&#xff0c;需要商家遵循一系列步骤并确保所有条件符合微信支付的要求。以下是一些关键步骤和注意事项&#xff0c;以确保商家可以最快开通该功能&#xff1a; 一、确认申请资格 1. 公司性质&#xff1a;确保申请主体为公司性质&#xff08;有限…

【Docker】安装全流程与配置完整镜像源(可安装 nginx)

目录 一、卸载历史版本&#xff08;选&#xff09;二、配置 yum 源三、安装 docker四、配置 docker 镜像源加速&#xff08;选、强烈建议&#xff09;4.1 配置阿里镜像加速4.2 配置其他镜像源 五、启动 docker参考文章与视频 本文基于 Linux - CentOS 7 操作系统。 一、卸载历史…

Unity3D入门(二) :Unity3D实现视角的丝滑过渡切换

1. 前言 上篇文章&#xff0c;我们已经初步了解了Unity3D&#xff0c;并新建并运行起来了一个项目&#xff0c;使相机视角自动围绕着立方体旋转。 这篇文章&#xff0c;我们来讲一下Unity3D怎么过渡地切换视角。 我们继续是我上篇文章中的项目&#xff0c;但是需要向把Camera…

TFT-LCD显示屏(1.8寸 STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理&#xff1a;TFT-LCD色彩空间 三、程序设计 main.c文件 lcd.h文件 lcd.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 TFT-LCD&#xff0c;全称Thin Film Transistor Liquid Crystal Display&a…

Golang | Leetcode Golang题解之第409题最长回文串

题目&#xff1a; 题解&#xff1a; func longestPalindrome(s string) int {mp : map[byte]int{}for i : 0; i < len(s); i {mp[s[i]]}res : 0for _, v : range mp {if v&1 1 {res v - 1} else {res v}}if res<len(s) {res}return res }

C++笔记21•C++11的新特性•

相比于 C98/03&#xff0c;C11则带来了数量可观的变化&#xff0c;其中包含了约140个新特性&#xff0c;以及对C03标准中约600个缺陷的修正&#xff0c;这使得C11更像是从C98/03中孕育出的一种新语言。相比较而言&#xff0c;C11能更好地用于系统开发和库开发、语法更加泛华和简…

如何合并pdf文件,四款软件,三步搞定!

在数字化办公的浪潮中&#xff0c;PDF文档因其跨平台兼容性和安全性&#xff0c;成为了我们日常工作中不可或缺的一部分。然而&#xff0c;面对多个PDF文件需要整合成一个文件时&#xff0c;不少小伙伴可能会感到头疼。别担心&#xff0c;今天我们就来揭秘四款高效PDF合并软件&…

演示:基于WPF的DrawingVisual开发的Chart图表和表格绘制

一、目的&#xff1a;基于WPF的DrawingVisual开发的Chart图表和表格绘制 二、预览 钻井井轨迹表格数据演示示例&#xff08;应用Table布局&#xff0c;模拟井轨迹深度的绘制&#xff09; 饼图表格数据演示示例&#xff08;应用Table布局&#xff0c;模拟多个饼状图组合显示&am…

尚品汇-秒杀商品定时任务存入缓存、Redis发布订阅实现状态位(五十一)

目录&#xff1a; &#xff08;1&#xff09;秒杀业务分析 &#xff08;2&#xff09;搭建秒杀模块 &#xff08;3&#xff09;秒杀商品导入缓存 &#xff08;4&#xff09;redis发布与订阅实现 &#xff08;1&#xff09;秒杀业务分析 需求分析 所谓“秒杀”&#xff0…

又到了金九银十,你的简历写好了吗?

又到了金九银十的招聘季&#xff0c;不过这几年求职环境越来越差&#xff0c;相比于跳槽找新机会&#xff0c;大家可能更倾向于守住自己手头的工作&#xff0c;稳字当头。当然&#xff0c;也有很多工作实在干烦了的朋友&#xff0c;想要换个新赛道试试。今天就给大家带来一个新…

django实现开发、测试、生产环境配置区分

文章目录 一、为什么要区分开发 (dev)、测试 (test) 和生产 (prod) 环境二、django项目如何通过配置实现环境配置的区分1、针对不同的环境创建不同的设置文件settings.py2、在设置文件中根据需要进行配置区分3、根据不同的环境运行使用不同的设置文件 任何实际的软件项目中都要…

【中级通信工程师】终端与业务(二):终端产品

【零基础3天通关中级通信工程师】 终端与业务(二)&#xff1a;终端产品 本文是中级通信工程师考试《终端与业务》科目第二章《终端产品》的复习资料和真题汇总。终端与业务是通信考试里最简单的科目&#xff0c;有效复习通过率可达90%以上&#xff0c;本文结合了高频考点和近几…