ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)

这篇具有很好参考价值的文章主要介绍了ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导航实现:SLAM建图

先安装相关的ROS功能包:

  • 安装 gmapping 包(用于构建地图):sudo apt install ros-<ROS版本>-gmapping

  • 安装地图服务包(用于保存与读取地图):sudo apt install ros-<ROS版本>-map-server

  • 安装 navigation 包(用于定位以及路径规划):sudo apt install ros-<ROS版本>-navigation

  新建功能包,并导入依赖: gmapping map_server amcl move_base,其中gampping用于构建地图,map_server用于保存与读取地图,amcl用于定位,move_base用于路径规划

(1)编写gmapping相关的launch文件

复制并修改如下:

<launch>
<param name="use_sim_time" value="true"/>是否使用仿真时间(仿真时要设置为True)
    <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">
      <remap from="scan" to="scan"/>设置雷达话题,前面仿真雷达设置的话题就是scan
      <param name="base_frame" value="base_footprint"/><!--底盘坐标系-->
      <param name="odom_frame" value="odom"/> <!--里程计坐标系-->
      <param name="map_update_interval" value="5.0"/>地图更新频率间隔
      <param name="maxUrange" value="16.0"/>雷达测试范围最大16m
      <param name="sigma" value="0.05"/>
      <param name="kernelSize" value="1"/>
      <param name="lstep" value="0.05"/>
      <param name="astep" value="0.05"/>
      <param name="iterations" value="5"/>
      <param name="lsigma" value="0.075"/>
      <param name="ogain" value="3.0"/>
      <param name="lskip" value="0"/>
      <param name="srr" value="0.1"/>
      <param name="srt" value="0.2"/>
      <param name="str" value="0.1"/>
      <param name="stt" value="0.2"/>
      <param name="linearUpdate" value="1.0"/>
      <param name="angularUpdate" value="0.5"/>
      <param name="temporalUpdate" value="3.0"/>
      <param name="resampleThreshold" value="0.5"/>
      <param name="particles" value="30"/>
      <param name="xmin" value="-50.0"/>
      <param name="ymin" value="-50.0"/>
      <param name="xmax" value="50.0"/>
      <param name="ymax" value="50.0"/>
      <param name="delta" value="0.05"/>
      <param name="llsamplerange" value="0.01"/>
      <param name="llsamplestep" value="0.01"/>
      <param name="lasamplerange" value="0.005"/>
      <param name="lasamplestep" value="0.005"/>
    </node>

    <node pkg="joint_state_publisher" name="joint_state_publisher" type="joint_state_publisher" />
    <node pkg="robot_state_publisher" name="robot_state_publisher" type="robot_state_publisher" />

    <node pkg="rviz" type="rviz" name="rviz" />
    <!-- 可以保存 rviz 配置并后期直接使用-->
    <!--
    <node pkg="rviz" type="rviz" name="rviz" args="-d $(find my_nav_sum)/rviz/gmapping.rviz"/>
    -->
</launch>

(2)启动Gazebo仿真环境和编写好的slam.launch文件

(3)在RVIZ中添加组件

  • 添加机器人模型RobotModel

  • 添加Laserscan并设置Topic话题scan

  • 添加坐标系组件TF,Fram下即可找到map,odom

  • 添加map组件用于建图,设置topic,发布话题栅格地图数据,这里设置为map

    即可看到如下效果:

ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)

(4)在rviz中配置好之后,可以将目前配置保存:左上角save config as,保存到该功能包的config文件夹下,并在rivz启动中添加参数,以后启动就可以自动配置。

<node pkg="rviz" type="rviz" name="rviz" args="-d $find(功能包名) 功能包内的相对路径"/>

(5)启动键盘控制节点

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

  控制小车运动,绕着地图走一圈建图。

SLAM建图

  建图结果如图所示,白色部分是无障碍物可以走的地方,黑色圈出部位为障碍物信息。

ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)
(6)保存地图map_server

  如果直接关闭rviz退出,那么建好的地图将会消失,所以要编写launch文件进行保存操作

<launch>
    <arg name="filename" value="$(find mycar_nav)/map/nav" />
    <node name="map_save" pkg="map_server" type="map_saver" args="-f $(arg filename)" />
</launch>

  可以看到在指定路径下产生了两个文件map_save.pgm和map_save.yaml

ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)
(7)读取地图信息(map_server包里的map_server)

  新建launch文件,使用map_server调用上一步保存的map_save.yaml文件

代码示例如下:

<launch>
    <node pkg="map_server" type="map_server" name="map_server" args="$(find 功能包名)/功能包内到yaml文件的路径"/>
</launch>

  这样,之前我们发布的信息就会以话题的形式发布了,要看到地图的可视化效果我们需要借助rviz,可以在终端打开rviz并加入map插件,选择topic为map,即可看到效果。
ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)文章来源地址https://www.toymoban.com/news/detail-467136.html

到了这里,关于ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu18.04 ROS melodic环境下,通过Gazebo软件仿真SLAM算法的学习(gmapping/karto/cartographer/hector)

    目录 一 环境场景搭建world 1.下载insert插件(该插件下会提供一些建好的场景,也可不下载) 2.环境搭建(自建) 3.保存环境 4.配置修改 5.启动环境 二 机器人模型URDF 1.模型创建的文件书写规范 2.检查文件格式是否正确 3.启动模型 三 机器人在场景中运动 1.机器人放在场景中

    2024年02月04日
    浏览(31)
  • ROS-基于PX4的无人机SLAM建图(Cartographer)仿真

    首先在电脑上安装好Ubuntu系统和ROS系统,我安装的是Ubuntu18.04和ROS Melodic,不同的Ubuntu版本对应不同的ROS版本 ROS发布日期 ROS版本 停止支持日期 对应Ubuntu版本 2018年5月23日 ROS Melodic Morenia 2023年5月 Ubuntu 18.04 2016年5月23日 ROS Kinetic Kame 2021年4月 Ubuntu 16.04 (Xenial) Ubuntu 15.10 (Wily) 201

    2024年02月15日
    浏览(30)
  • 高翔ORB-SLAM2稠密建图编译(添加实时彩色点云地图+保存点云地图)

    本文写于2022年5月18日。 Ubuntu18.04 + ROS melodic ORBSLAM2_with_pointcloud_map 是基于 ORB_SLAM2 改动的, ORB_SLAM2 编译前一些库的安装以及编译时的报错参考此篇博客 ORBSLAM2_with_pointcloud_map源码地址 将源码下载到 ~/catkin_ws/src 目录下面 如果没有安装 Ros Melodic ,参考Ubuntu18.04安装Ros Melodic 以及

    2024年01月23日
    浏览(58)
  • 基于机器人自主移动实现SLAM建图

    博客地址:https://www.cnblogs.com/zylyehuo/ 基于[移动机器人运动规划及运动仿真],详见之前的博客 移动机器人运动规划及运动仿真 - zylyehuo - 博客园 参考链接 Autolabor-ROS机器人入门课程《ROS理论与实践》 ubuntu 18.04

    2024年02月05日
    浏览(32)
  • Gazebo-Ros搭建小车和场景并运行slam算法进行建图4--为机器人添加运动控制器控制其移动

    1.要想机器人小车在gazebo中运动还需要为其添加运动插件 在文章3中的my_robot2.urdf 最下边(前边)添加如下部分: ​ 这里使用的二轮差速控制,选择对应的插件libgazebo_ros_diff_drive.so 添加上述部分,文章3中的my_robot2.urdf 更新为 --完整代码如下: 2.使用turtlebot3中的控制机器人的

    2023年04月11日
    浏览(80)
  • ROS2下使用TurtleBot3-->SLAM导航(仿真)RVIZ加载不出机器人模型

    在使用台式机进行仿真时,大部分例程很顺利,但在SLAM导航时,在RVIZ中却一直加载不出机器人模型,点击Navigation2 Goal选择目标点进行导航时,无响应。 启动后在RVIZ2和终端看到一个错误 按照官网的指令试了多次,一直无法加载,在网上赵的解决方案都是修改RVIZ里的各种设

    2024年02月09日
    浏览(33)
  • ROS学习笔记08、机器人导航仿真(slam、map_server、amcl、move_base与导航消息介绍)

    马上开学,目前学校很多实验室都是人工智能这块,大部分都是和机器人相关,然后软件这块就是和cv、ros相关,就打算开始学习一下。 本章节是虚拟机安装Ubuntu18.04以及安装ROS的环境。 学习教程:【Autolabor初级教程】ROS机器人入门,博客中一些知识点是来源于赵老师的笔记

    2023年04月12日
    浏览(33)
  • [slam]docker-slam下的建图与定位

    目录 1.实验目的: 2.实验设备: 3.各个传感器驱动使用步骤 4.实验原理 5.实验详细步骤、遇到的问题及解决方法 1.首先下载docker 2.下载.bag数据集和.tar数据压缩包 3.将.tar文件导入docker中(此步骤可能会较慢) 4.将镜像生成容器 5.进入容器 6.建图部分 1.下载gtsam库和geographiclib库

    2024年01月16日
    浏览(35)
  • SLAM【十一】建图

    建图的功能: 定位:第一次跑,就把地图保存下来,让机器人在下次开机后依然能够在地图中定位。 导航:需要创建稠密地图,因为要进行路径规划,需要知道 地图中那些地方可以通过,那些地方不可以通过 避障:与导航类似,但更注重局部的、动态的障碍物的处理。也需

    2023年04月13日
    浏览(26)
  • Docker搭建SLAM进行建图

    目录 [前言] Docker介绍 Docker使用步骤 1.将.tar文件导入docker中 2.查看镜像是否成功导入 3. 将镜像生成容器 4.docker使用方法 [前言] 本文主要介绍了使用docker-slam进行建图实验,博主的Ubuntu系统的内存不够用了,跑不了Docker,是在别人的电脑上跑的,故这里就无法提供相关的材料及

    2024年01月18日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包