使用ros hector_mapping建地图

ros中建地图方式有两种:

首先1、首先下载hector_slam包到你工作空间的src下
命令:

cd ~/catkin/src
git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git
cd ..
catkin_make

在~/catkin_ws/src/hector_slam/hector_slam_launch/launch/新建一个demo.launch

<?xml version="1.0"?>
<launch>
 <include file="$(find rplidar_ros)/launch/rplidar.launch"/>
  <node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0.0 0.0 0.0 0 0 0.0 /odom /base_link 10"/>
  <node pkg="tf" type="static_transform_publisher" name="base_frame_laser" args="0 0 0 0 0 0 /base_link /laser 10"/>
  <!--<node pkg="rviz" type="rviz" name="rviz"
    args="-d $(find hector_slam_launch)/rviz_cfg/mapping_demo.rviz"/>-->
  <include file="$(find hector_mapping)/launch/mapping_default.launch"/>
  <node pkg="rviz" type="rviz" name="rviz" args="-d rviz_cfg.rviz"/>
  <include file="$(find hector_geotiff)/launch/geotiff_mapper.launch"/>
</launch>

修改~/catkin_ws/src/hector_slam/hector_mapping/launch/mapping_default.launch

<?xml version="1.0"?>
<launch>
 <arg name="tf_map_scanmatch_transform_frame_name" default="/scanmatcher_frame"/>
<arg name="base_frame" default="base_link"/>
<arg name="odom_frame" default="base_link"/>
<arg name="pub_map_odom_transform" default="true"/>
 <arg name="scan_subscriber_queue_size" default="5"/>
<arg name="scan_topic" default="scan"/>
<arg name="map_size" default="2048"/>
 <node pkg="hector_mapping" type="hector_mapping" name="hector_mapping" output="screen">
  <!-- Frame names -->
   <param name="map_frame" value="map" />
  <param name="base_frame" value="$(arg base_frame)" />
  <param name="odom_frame" value="$(arg base_frame)" />
   <!-- Tf use -->
  <param name="use_tf_scan_transformation" value="true"/>
   <param name="use_tf_pose_start_estimate" value="false"/>
   <param name="pub_map_odom_transform" value="$(arg pub_map_odom_transform)"/>
<!-- Map size / start point -->
   <param name="map_resolution" value="0.050"/>
    <param name="map_size" value="$(arg map_size)"/>
    <param name="map_start_x" value="0.5"/>
    <param name="map_start_y" value="0.5" />
    <param name="map_multi_res_levels" value="2" />
 <!-- Map update parameters -->
 <param name="update_factor_free" value="0.4"/>
  <param name="update_factor_occupied" value="0.7" />
   <param name="map_update_distance_thresh" value="0.2"/>
<param name="map_update_angle_thresh" value="0.9" />
 <param name="laser_z_min_value" value = "-1.0" />
  <param name="laser_z_max_value" value = "1.0" />
  <!-- Advertising config -->
 <param name="advertise_map_service" value="true"/>
 <param name="scan_subscriber_queue_size" value="$(arg scan_subscriber_queue_size)"/>
 <param name="scan_topic" value="$(arg scan_topic)"/>
    <param name="tf_map_scanmatch_transform_frame_name" value="$(arg tf_map_scanmatch_transform_frame_name)" />
 </node>
</launch>

我用的是rplidar激光雷达,主要价格比较便宜

修改rplidar驱动文件
在rplidar_ros/src/node.cpp中找到
nh_private.param<std::string>("frame_id", frame_id, "laser_frame");
将其改成:
nh_private.param<std::string>("frame_id", frame_id, "laser");
编译后运行:
roslaunch hector_slam_launch demo.launch

时间: 2025-01-04 11:05:05

使用ros hector_mapping建地图的相关文章

(ros/navigation/gmapping)导航/建地图

概述 http://wiki.ros.org/gmapping Gmapping包包含OpenSlam的Gmapping的一个ROS封装.Gmapping 的ROS节点slam_gmapping提供基于激光的SLAM(同时定位和创建地图).依靠移动机器人收集的激光和位姿数据,使用slam_gmapping可以创建2维栅格地图. 外部文档 主要是一个第三方包. 硬件需求 使用slam_gmapping,需要移动机器人提供里程计数据,并且水平安装固定激光测距仪.slam_gmapping节点试图转换

(ros/navigation/slam_gmapping) map_server地图服务器

http://wiki.ros.org/map_server 概述 map_server提供map_server ROS节点,它提供地图数据作为一个ROS服务器.也提供map_saver命令行功能,能动态生成保存到文件中的地图. 地图格式 包中通过工具操作的地图是以成堆的文件存储的.YAML文件描述地图的元数据,并命名image文件.Image文件编码占用数据. Image 格式 Image 以对应单元的颜色描述世界中每个单元的占用状态.白色单元格表示自由,黑色单元格表示占用,两种颜色之间的单元

ROS Navigation中的map_server地图包功能和使用

博客参考 http://wiki.ros.org/map_server 和 https://www.ncnynl.com/archives/201708/1897.html 1. 安装map_server sudo apt-get install ros-kinetic-map-server 2. 具体使用说明 map_server使得地图的数据变成 ros 的service 可以被调用.其中以两种方式存储.一个是yaml文件,他存储了数据的元数据.一个是image file   他编码了地图的

ROS与智能机器人技术发展路径探索

ROS与智能机器人技术发展路径探索 Sonictl, Ang 2015 序 本文按照目标路径.需求.资源.方法.计划为提纲,根据本人对市场.技术.商业模式等的经验理解,梳理总结 ROS 和机器人技术对于机器人研发团队来讲,可能的发展方向.可行性分析.前景展望等. 据我sonictl了解及调研, ROS 已经逐渐占据了机器人开源控制软件平台领域几乎用户量最大的地位.原因主要是:1. ROS 的维护团队比较强大. 2. ROS的架构相对科学. 3. ROS 核心团队针对目前主流的机器人硬件,比如AB

人工智能快速平台搭建,超详细黄金价值指南

人工智能的平台搭建是此次入坑,做一个参加人工智能大赛的需要,从无厘头的小白开始,总结了很多经验,文章是精心总结的希望对你有用.1Python: 安装网址 https://www.cnblogs.com/yqpy/p/9116590.html Unbutu安装pip: 参考网址:https://blog.csdn.net/weixin_37911283/article/details/70799481 Pycharm安装添加源: sudo add-apt-repository ppa:mystic

Cocos2D-Android-1之源码详解:22.TileMapTest

package org.cocos2d.tests; import java.util.HashMap; import javax.microedition.khronos.opengles.GL10; import org.cocos2d.actions.base.CCRepeatForever; import org.cocos2d.actions.instant.CCCallFuncN; import org.cocos2d.actions.interval.CCFadeIn; impor

cocos2dx for lua A*寻路算法实现2

关于A*算法的实现过程,简单来说就是一个计算权限的过程. 首先,创建一个地图节点类,"MapNode.lua" local MapNode = class("MapNode") function MapNode:ctor() self._row = 0--行 self._col = 0--列 self._parent = nil--父节点 self._f = 0--当前节点的总开销 self._g = 0--当前节点的累计开销 self._h = 0--启发因子 e

rbx1包里机器人仿真程序的实践

git clone https://github.com/pirobot/rbx1.git 1.打开一个终端 cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src roslaunch rbx1_bringup fake_turtlebot.launch 2.新打开一个终端 cd ~/catkin_ws/ catkin_make source ./devel/setup.bash cd src roslaunch rbx1_nav

python folium 库学习

一.简介 folium是js上著名的地理信息可视化库leaflet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm或自行获取的osm资源和地图原件进行地理信息内容的可视化,以及制作优美的可交互地图.其语法格式类似ggplot2,是通过不断添加图层元素来定义一个Map对象,最后以几种方式将Map对象展现出来. 而在Map对象的生成形式上,可以在定义所有的图层内容之后,将其保存为html文件在浏览器中独立显示,也可