目录

  • 写在前面
  • 操作
    • 环境准备
    • 代码准备
      • LOAM代码
      • gazebo代码
    • 联合运行
  • 总结

写在前面

我的本科毕设需要使用到LOAM算法,最近因为疫情原因,可能没有小车来操作,故学习了如何在gazebo中进行实物仿真。目前实现了gazebo和LOAM之间的配合。
本来打算在网上找一些资源,用起来会快一点,发现全网没有详细介绍如何在gazebo中实现LOAM算法的,倒是有一些介绍在gazebo中实现ORB-SLAM算法的,比如这个博客

https://blog.csdn.net/baidu_36211769/article/details/103374441

所以我打算写一片gazebo+LOAM的博客,才进入这个领域不久,希望前辈们批评指正,指点迷津。

操作

环境准备

Ubuntu版本为18.04
ros版本为melodic
gazebo版本为9

一般来讲,较新的ros版本都会自带gazebo,如果没有的话,可以安装一下,参考这个博客

https://blog.csdn.net/weixin_41045354/article/details/84881498

代码准备

前人栽树后人乘凉。总体的代码都是在已有基础上改动的。

LOAM代码

LOAM部分的代码本来想使用的2014年发表在RSS上的论文《LOAM:Lidar Odometry and Mapping in Real-time》的开源代码。源码地址在

https://github.com/laboshinl/loam_velodyne

但经过几次测试,发现存在一些地图畸变的问题,所以选择了以LOAM为基础比较容易上手的ALOAM代码。源码地址在

https://github.com/HKUST-Aerial-Robotics/A-LOAM

当然也可以选择LeGO-LOAM。源码地址在

https://github.com/RobustFieldAutonomyLab/LeGO-LOAM

下面以A-LOAM为例展开
网站上有具体的操作,这里我按我的步骤说明一下吧。
1、搭建环境依赖
主要用到的是Ceres Solver以及PCL
这个都比较常用,没有的话可以安装一下。
2、建立工作空间并编译
打开终端,输入

mkdir ~/A_LOAM_ws
cd ~/A_LOAM_ws
mkdir src
cd ~/A_LOAM_ws/src/
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
cd ~/A_LOAM_ws
catkin_make
source devel/setup.bash

在编译过程中如果遇到提示缺少库的话,大家按照自己的需要添加,应该问题不大。
2、测试
网站上给出的一些数据集地址都挂掉了,这里我找到一个数据集,大家可作为作为测试使用。
如果翻不了墙,可以在这里下载。
把这个包放在刚才建立的A_LOAM_ws目录下面,方便使用。
接着刚才的终端,运行LOAM算法,输入

roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

同一个目录下新建一个标签页或窗口,输入

rosbag play nsh_indoor_outdoor.bag

这个时候可以在自动打开的rivz窗口中看到LOAM的建图过程了,最后的结果如下

3、总结
大家如果想要弄懂其中的源码算法,可以参考大佬魏新slam的一些LOAM源码解析的博客,或介绍ALOAM的博客。
如果这一部分测试没有问题,就可以继续往下看了。

gazebo代码

这一部分是借鉴的clearpath公司开发的huskyA200的ROS和gazebo文件。其源代码链接

https://github.com/husky/husky

我进行的主要改动包括:原来需要joystick操作,现在改成了键盘控制;引入Velodyne包,将原有的sick的2D激光雷达改为了Velodyne的3D激光雷达;新增了一个museum.world文件,并使用此文件作为地图;打开gazebo自动打开键盘控制。
由于改动较多,所以这里直接给出改完之后的代码,网盘链接如下
链接: https://pan.baidu.com/s/1jtfdeIefaOJuRdPxb1YUZg
密码: ke9p

大家可以直接clone下来使用
具体操作如下
1、环境准备
因为在其中用到的Velodyne VLP-16传感器并不是ros自带的,所以需要自己下载。
打开终端,输入

sudo apt-get install ros-melodic-velodyne
sudo apt-get install ros-melodic-velodyne-*

如果ros版本不是melodic,请换成相应名称

同样的方法安装realsense(小车也有相机,开不开都行,但为了编译需要安装包)

sudo apt-get install ros-melodic-realsense2-camera
sudo apt-get install ros-melodic-realsense2-description

还要安装键盘控制的包。
打开终端,输入

sudo apt-get install ros-melodic-teleop-twist-keyboard

如果ros版本不是melodic,请换成相应名称
2、建立工作空间并编译
使用网盘链接,直接新建husky_ws文件夹,再建立src文件夹,解压到src下面即可正常编译。
在编译过程中如果遇到提示缺少库的话,大家按照自己的需要添加。
3、测试
打开终端,输入

source devel/setup.bash
roslaunch husky_gazebo husky_playpen.launch

可能会出现一些标红报错的现象,但并不影响使用,报错的节点大概有这些

最后终端界面为
可以发现自动打开了gazebo,界面为(使用不同world文件展示的环境会不一样,建议体现下载一些必要的模型文件,如果打开world黑屏,很有可能是缺失了里面的模型。也可以使用自己的world文件来进行,这样至少可以保证world可以打开)
此时鼠标点击终端,即可对小车进行控制,具体控制按钮可以在终端中已经说明。
如果想要查看其中的点云图像,可以新打开一个终端窗口,输入

rviz

打开rviz之后点击界面左下角的Add按钮,选择By topic,找到消息velodyne_points
点OK,将DIsplay工具栏的Gloabl Options中Fixed Frame选为base_link,即可看到点云
4、一些说明

  • 小车的初始直行速度和初始转弯速度可以在teleop_twist_keyboard包的teleop_twist_keyboard.py文件中修改,不想改的化运行之后临时键盘改也行
  • Lidar的参数,如Hz、samples等可在husky_description包中里husky.urdf.xacro文件中修改,默认参数在第一步下载的velodyne_description的文件VLP-16.urdf.xacro里,默认路径为/opt/ros/melodic/share/velodyne_description/urdf/VLP-16.urdf.xacro
  • 地图修改在husky_gazebo包的文件playpen.launch里,所有world文件也在这个包里的world文件夹下。
  • 其实小车也有一个realsense的RGBD摄像头,可以在husky_playpen.launch文件中,通过修改参数realsense_enabled打开使用

联合运行

在完成LOAM和husky gazebo的分别调试之后,便可以进行联合运行。
具体方法和分别调试是类似的,具体如下
打开终端,输入

cd ~/A_LOAM_ws
source devel/setup.bash
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

再开一个终端,输入

cd ~/husky_ws
source devel/setup.bash
roslaunch husky_gazebo husky_playpen.launch

这样就可以通过控制小车来走完这个地图,最后得到的地图如下

对比真实的线框图,我们可以发现建图是十分精确的

总结

虽然历经坎坷,但最后成功将gazebo和ALOAM算法结合在了一起,也得到了地图。
其实之前使用的LOAM算法,但总是出现一些奇怪的问题,所以换了ALOAM,当然也可以尝试使用LeGO-LOAM算法,毕竟算法是不断更新改进的,我们也要时刻站在巨人的肩膀上!

又使用LeGO-LOAM算法试了一下,得到的效果是这样的,感觉更好,欢迎大家使用

在Ubuntu18.04中使用gazebo配合LOAM算法仿真相关推荐

  1. Ubuntu18.04中Anaconda启动 Navigator

    Ubuntu18.04中Anaconda启动 Navigator 方法一: source ~/anaconda3/bin/activate root anaconda-navigator 1 2 方法 ...

  2. 在ubuntu14.04中安装gazebo

    在ubuntu14.04中安装gazebo 什么是Gazebo?** Gazebo是一款3D动态模拟器,能够在复杂的室内和室外环境中准确有效地模拟机器人群.与游戏引擎提供高保真度的视觉模拟类似,Gaz ...

  3. 在Ubuntu18.04中安装ROS IDE RoboWare Studio 和Visual Studio Code

    安装ROS IDE 前言 一.安装RoboWare Studio 二.安装Visual Studio Code 参考文献 前言 一款好的开发工具可以是开发效率提升,ROS官方推荐了常用的ROS开发环境 ...

  4. Ubuntu18.04中搭建事件相机模拟器rpg-esim环境

    Ubuntu18.04中搭建事件相机模拟器rpg-esim环境 esim 是 ETH 开发的一款的模拟事件相机工作原理的仿真器,其是基于ROS环境的,在安装esim环境之前,需要先安装ROS.在官方给 ...

  5. 在Ubuntu18.04中安装谷歌地球Google Earth

    在Ubuntu18.04中安装谷歌地球Google Earth Google Earth在Linux系统中(Ubuntu18.04)的安装方法 1.安装必备组建 2.下载Google Earth安装包 ...

  6. 在ubuntu18.04中分屏给PC显示器

    在ubuntu18.04中分屏给PC显示器 第一步:打开终端查看屏幕参数 eDP参数 ~$ xrandr Screen 0: minimum 8 x 8, current 3360 x 1080, m ...

  7. 解决在Ubuntu18.04中firefox打开网页出现建立安全失败并提示PR_END_OF_FILE_ERROR

    解决在Ubuntu18.04中firefox打开网页出现建立安全失败并提示PR_END_OF_FILE_ERROR 解决办法 打开设置 找到网络 打开网络代理栏中的最右边的按钮 选择自动

  8. 在Ubuntu18.04中安装wps并且解决文字字体缺失的问题

    在Ubuntu18.04中安装wps并且解决文字字体缺失的问题 在ubuntu中安装wps对于很多人来说会比较的简单,但是对于像我一样刚刚接触ubuntu的计算机小白来说,也并非很简单,安装的过程中也 ...

  9. 在ubuntu18.04中安装FFmepgz

    在ubuntu18.04中安装FFmepgz 不知道为什用这个方法找不到库(-lavfilter -lavdevice -lpostproc) 其余的都正常 步骤一:安装FFmpeg PPA sudo ...

最新文章

  1. 组合计数 ---- 2020 EC final B. Rectangle Flip 2(枚举+组合计数)
  2. C++ Primer 5th笔记(7)chapter7 类:构造函数、类类型转换、聚合类
  3. jmh 基准测试_JMH:如何设置和运行JMH基准
  4. ( linker command failed with exit code 1) 错误解决方案 项目使用的是pod
  5. “芯生力量,智能持久”出门问问全新发布TicWatch Pro 3
  6. linux mmu的实现的讲解_Linux_MMU
  7. 哈哈哈,看着问题一个个解决,很有满足感哦
  8. win10打开.heic文件
  9. SVN工具介绍- VisualSVN Server与TortoiseSVN
  10. 旷视研究院「技术圆桌派-上海专场 」报名启动!
  11. 静候Google I/O 2014大会开幕
  12. 中国十六烷基磷酸钾行业市场供需与战略研究报告
  13. MYSQL根据经纬度查询最近距离
  14. Java程序员转行都可以做什么呢?
  15. python自动拼图_Python图像处理——人物拼图游戏
  16. lol那个服务器有无限火力,全新游戏模式-无限火力上线
  17. 用Javascript实现关闭广告案例
  18. C++ 泛型编程(五) 模版重载与特例化
  19. Office - PPT 02
  20. 错误1053 服务没有及时响应启动或控制请求

热门文章

  1. 三分钟告诉你为什么再昂贵的普洱茶都只是用棉纸包装?
  2. pc调试微信h5页面提示Pending authentication:please accept debugging session on the device的解决方法
  3. 计算机网络传输介质的特点,计算机网络基础:数据通信技术之传输介质
  4. [VBA]EXCEL表格,运行VBA报错:运行时错误‘9’ 下标越界
  5. 【Python】Python生成随机的姓名
  6. 项目启动初始化SQL脚本
  7. verilog中的signed用法
  8. vue-3d-model:一个展示三维模型的 Vue 组件
  9. 超导量子计算机最新报道,量子效应的量子计算机,在高温超导体加持下,或将迎来重大突破!...
  10. 菜鸟也来编程序 Windows脚本一日通