ROS联合Webots实现3d建图(一)Ubuntu20.04 A_LOAM环境搭建(完美运行)
ROS联合Webots实现3d建图(一)Ubuntu20.04 A_LOAM环境搭建(完美运行)
注意:
- 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识
ubuntu版本:20.04
webots版本:2021a
ros版本:noetic
1. A_LOAM建图算法介绍
A_LOAM是由港科大沈老师组的Shaozu Cao根据LOAM源码改写的A-LOAM版本。相比于原始的LOAM开源代码,A-LOAM中坐标系定义较为清晰,利用Ceres开源优化库,简化了后端优化求解过程,较容易理解。与LOAM类似,A-LOAM可分为三部分:scanRegistration, odometry, mapping。其中,scanRegistration部分主要负责实时从原始激光雷达点云中提取线和面特征点,odometry部分负责利用scanRegistration部分提取出的特征点,关联特征并计算估计帧间的相对运,mapping部分负责以1Hz的频率更新维护特征地图,同时利用帧到地图的配准,提高里程计轨迹精度。
LOAM论文地址
LOAM论文解析地址
2. 安装 A_LOAM
Github开源地址:https://github.com/HKUST-Aerial-Robotics/A-LOAM
$ cd ~/catkin_ws/src
$ git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
下载完源码后直接编译是不能通过的,需要进行一些修改才行。
可以看到在A_LOAM/src文件夹下有四个.cpp文件,分别为kittiHelper.cpp;laserMapping.cpp;laserOdometry.cpp;scanRegistration.cpp
2.1 修改方法:
- 将四个.cpp文件中的
/camera_init
修改为camera_init
- 将
scanRegistration.cpp
中的#include <opencv/cv.h>
修改为#include <opencv2/imgproc.hpp>
- 修改
kittiHelper.cpp
中CV_LOAD_IMAGE_GRAYSCALE
为cv::IMREAD_GRAYSCALE
2.2 修改完成后进入工作空间根目录,过程如下所示:
$ cd ~/catkin_ws/
$ catkin_make
编译如果出现以下错误:
error: #error PCL requires C++14 or above
解决办法
在CMakeLists.txt中添加,如下指令即可成功编译
set( CMAKE_CXX_STANDARD 14)
2.测试
下载nsh_indoor_outdoor.bag 测试数据到你的YOUR_DATASET_FOLDER
$ roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
$ rosbag play YOUR_DATASET_FOLDER/nsh_indoor_outdoor.bag
效果如下所示:
结语
本文也是基于笔者的学习和使用经验总结的,主观性较强,如果有哪些不对的地方或者不明白的地方,欢迎评论区留言交流~
为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。
加群链接
✌Bye
ROS联合Webots实现3d建图(一)Ubuntu20.04 A_LOAM环境搭建(完美运行)相关推荐
- ROS联合webots实战案例目录
注意: 在学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识 这个教程能手把手带领大家解决webots和ROS联合仿真的问题,我也是摸爬滚打完成的,希望能帮助到大家. 后续依旧会发 ...
- ROS联合Webots之舵轮篇-搭建舵轮底盘
Webots搭建麦克纳姆轮底盘教程 ubuntu版本:20.04 webots版本:2021a ros版本:noetic 0.前言 之前笔者出过ROS联合webots开发教程,在教程中使用的是双轮差动 ...
- 开源自主导航小车MickX4(八)LeGo-LOAM 室外3D建图
开源自主导航小车MickX4(八)LeGo-LOAM 室外3D建图 1 安装 LeGO-LOAM 1.1安装依赖项 2 运行 LeGO-LOAM 2.1 运行论文demo 2.2 修改配置文件 2.3 ...
- 使用ros3d.js实现web 端3D建图
使用ros3d.js实现web 端3D建图 使用ros3d.js实现web 端3D建图 前端资源下载: ros3d地图与小车模型显示-机器学习文档类资源-CSDN下载
- 基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程
序言:由于Cartographer 有很多的安装教程,所以这里就不再赘述.本人申明,本文中所用图片均为自己实验所得,仅供大家科研交流所用,不得用于其他任何商业用途! 首先展示一下在地下车库的建图效果. ...
- 关于机器人状态估计(10)-VSLAM与VIO的3D建图,重定位与世界观综述
近期我国迎来了cov海啸,其实我也不知道我羊了没有,但并没有什么不舒服同时因为我没有测,那自然是没有羊,或者是薛定谔的羊. 近年另外一块工作的综述,这篇科普的同时,也会包含部分有价值的信息. 一. 摘 ...
- VSLAM与VIO的3D建图,重定位与世界观综述
作者 | 紫川Purple River 编辑 | 汽车人 原文链接:zhuanlan.zhihu.com/p/592225457 点击下方卡片,关注"自动驾驶之心"公众号 ADA ...
- 开源自主导航小车MickX4(七)cartographer 室外3D建图
开源自主导航小车MickX4(七)cartographer 室外3D建图 1 cartographer 3D建图demo 1.1 cartographer 安装 1.2 3D数据集建图 1.3 3D定 ...
- ROS 教程2 机器人雷达建图 蒙特卡洛定位 导航 路径规划 仿真
ros 机器人雷达建图 蒙特卡洛定位 导航 路径规划 仿真 move_base gmapping acml 博文github 一.安装 turtlebot 移动机器人底座 进行导航 1.安装系统依赖 ...
最新文章
- 厦门大学和福州大学计算机专业哪个好,福州大学和厦门大学的土木工程哪个好...
- Hbase Memstore刷新方式与Region的数目上限
- LeetCode 551. Student Attendance Record I
- java quartz mybatisplus_Springboot+redis+SpringMVC+Mybatis Plus分布式开发系统源码
- docker镜像分层原理
- 【韦东山嵌入式Linux】Linux命令入门笔记
- 开源GIS(八)——开源GIS简史
- Excel利用宏进行VBA编程
- iOS开发常用网址(最全)
- Ubuntu18中调用cv2.imshow及PIL库遇到的bug “: cannot connect to X server”及display-im6.q16: unable to open X。。。
- 【OI备忘录】dalao博文收藏夹
- 分词并去停用词自定义函数:seg_word(sentence)
- 字体的报警 Font shape `TU/ptm/m/n‘ undefined(Font) using `TU/lmr/m/n‘ instead
- ZBrush自定义笔刷
- 韩剧你是我的命运分集大结局
- 计算机组成原理笔记——随机存取存储器
- 机器学习已迫在眉睫——李烨
- 实现nginx的https 功能报错:
- 2020年甘肃省土地利用数据(矢量)
- Codevs 3111 CYD啃骨头
热门文章
- PowerDesigner模型与数据类型
- 基于Java毕业设计高校毕业生就业满意度调查统计系统源码+系统+mysql+lw文档+部署软件
- 什么是JavaScript;JS的基本语法
- AD设计产品,手工贴片样机你不知道的小妙招
- java中的scanner是什么_Java中的Scanner类是什么?何时引入?
- 计算1900-2012年的所有天数
- 机房精密空调低压报警与故障维修方法
- 2020年中国西瓜种植面积、产量、进出口及消费现状分析「图」
- android备忘录怎么设置闹钟,荣耀备忘录的提醒闹钟怎么设置?
- 对Java新员工培训练习的评价:玩具