【ros实践2】turtlebot3建图与导航

2024-02-04 19:18

本文主要是介绍【ros实践2】turtlebot3建图与导航,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

turtlebot3建图与导航

  • 建图
  • 导航

建图

1.启动tb3模型和仿真环境

export TURTLEBOT3_MODEL=burger    ## TURTLEBOT3_MODEL有burger, waffle或waffle_pi三种
roslaunch turtlebot3_gazebo turtlebot3_world.launch

在这里插入图片描述

2.打开新终端,启动slam建图

export TURTLEBOT3_MODEL=burger  ## TURTLEBOT3_MODEL有burger, waffle或waffle_pi三种
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

在这里插入图片描述

3.打开新终端,启动键盘控制

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

使用键盘控制tb3在整个环境中运动(尽可能扫到所有区域)

在这里插入图片描述4.打开新终端,保存地图

rosrun map_server map_saver -f ~/map

建图完成,地图信息保存为两个文件:mao.pgm和map.yaml
其中map.yaml内容中:
(1)image对应所产生的
.pgm文件;
(2)resolution指地图分辨率,单位是meters/pixel,每个像素对应5米。
(3)origin对应地图的原点坐标,分别是x/y/yaw。
(4)negate是反转黑白。
(5)当占用概率超过占用阈值(occupied thresh)时,表示为黑色占用区域,而当占用概率小于自由阈值(free thresh)时,表示为白色占用区域。
*

导航

1.打开终端,加载仿真环境

export TURTLEBOT3_MODEL=burger ## TURTLEBOT3_MODEL有burger, waffle或waffle_pi三种
roslaunch turtlebot3_gazebo turtlebot3_world.launch

2.启动导航程序

export TURTLEBOT3_MODEL=burger ## TURTLEBOT3_MODEL有burger, waffle或waffle_pi三种
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

3.实测(引用https://blog.csdn.net/weixin_42032160/article/details/105440552)
(1)在rviz菜单中按下[2d pose estimate]时,会出现一个绿色箭头,将其拖拽至tb3机器人在地图中的位置,并按住鼠标左键,转动绿色箭头使其指向机器人的正前方.这是一种在初期为了估计机器人位置的命令。然后用turtlebot3_teleop_keyboard节点等来回移动机器人,搜集周围的环境信息,找出机器人当前位于地图上的位置。经过了这个过程后,机器人将绿色箭头指定的位置和方向作为初始位置,推定自己的位置和方向。

(2)一切准备就绪后,下面下达移动命令。如果在RViz的菜单中按[2D Nav Goal],会出现一个非常大的绿色箭头。该绿色箭头是指定机器人的目的地的标记,箭头的起点是机器人的x、y位置,箭头方向是机器人的i方向。将此箭头移动到机器人的目的地,然后拖动,以设置方向。机器人将根据创建的地图躲避障碍物,移动到目的地.
在这里插入图片描述

这篇关于【ros实践2】turtlebot3建图与导航的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678541

相关文章

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再