Turtlebot移动机器人gazebo仿真及自动导航(详细级)

news/2024/12/28 14:32:53/

目的:在仿真环境中控制Turtlebot3 Burger运动、slam和自动导航
环境:双系统下ROS为noetic。(其他版本的ROS注意在下载软件包时改成自己的ROS)
步骤:
(1).创建仿真环境:
1.打开gazebo:
两种方法:一种是在roscore里面打开rosrun gazebo_ros gazebo另一种是直接在终端里打开gazebo
2.菜单栏选择Edit(编辑)>Building Editor(模拟建筑物编辑器),或使用快捷键Ctrl+B打开环境编辑器
在这里插入图片描述3.选择左边区域Wall(墙壁),在界面右上侧二维视图区域单击鼠标左键开始绘制墙壁,移动鼠标可以拖动墙壁,会以橙色高量显示墙壁和其长度,再次单击鼠标左键确认墙壁的终点。可以选择继续移动鼠标以上一面墙壁的终点开始绘制下一面墙壁,也可以单击鼠标右键结束此面墙壁的绘制。
在这里插入图片描述4.绘制一个封闭仿真环境,绘制完成后可以对墙壁进行编辑和调整,鼠标左键双击需要编辑的墙壁可以弹出检查器,在检查器中可以对墙壁的位置、长度、厚度和高度等参数进行编辑。这里外墙长度设置可以不用改动,内外墙高度都设置为1.5m,厚度默认为0.15m。
在这里插入图片描述5. 给墙壁添加材质和纹理特征,选择左侧区域下方Add Texture(添加质地)中的Bricks(砖)选项,然后鼠标左键单击三维视图区域的外墙,即可以为外墙添加砖的纹理和质地。我们在外墙添加Bricks,在内墙添加wood
在这里插入图片描述6. 在菜单栏选择File(文件)>Save As(另存为),另存当前编辑好的仿真环境文件,选择一个保存路径(可以自己先创建一个文件)并取名为my_building(可自定义名称),保存完成之后可以看到生成一个名为my_building的文件夹,包含model.config和model.sdf两个文件。

在这里插入图片描述(2)移动机器人gazebo仿真:
1.安装依赖包:

sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers

(注意,我用的是noetic,大家要换成自己ROS版本)
2.创建ROS工作空间并下载Turtlebot移动机器人软件包:

mkdir -p ~/turtlebot_ws/src/ 
cd ~/turtlebot_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/turtlebot_ws 
catkin_make

如果下载出问题,注意换成手机热点
没问题后

export TURTLEBOT3_MODEL=burger  

(可以放进.bashrc文件里)

source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_gazebo turtlebot3_world.launch

然后将自己创建的仿真环境导入进来进行保存(在insert里找,一般在最下面)
在这里插入图片描述另存为(save world as),存到~/tutlebot_ws/src/turtlebot3_simulations/turtlebot3_gazebo/worlds/目录下
在这里插入图片描述名称我的是myworld1.world**(后缀必须是.world)**
打开~/tutlebot_ws/src/turtlebot3_simulations/turtlebot3_gazebo/launch/turtlebot3_world.launch文件,将其中加载仿真环境的命令改为:

<arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/myworld1.world"/>

在此文件中修改加载Turtlebot3模型在仿真环境中的初始位置:

 <arg name="x_pos" default="0.6"/><arg name="y_pos" default="-0.5"/><arg name="z_pos" default="0.0"/>

(使机器人保持在地图里面)
在这里插入图片描述3. 键盘控制仿真环境中的机器人运动:

export TURTLEBOT3_MODEL=burger      
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

4.地图构建与保存:
保持仿真环境和键盘控制窗口运行,打开一个新的终端窗口运行slam文件:

export TURTLEBOT3_MODEL=burger
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_slam turtlebot3_slam.launch

键盘控制机器人在环境中运动,创建满意的地图后用命令保存地图:

rosrun map_server map_saver -f ~tutlebot_ws/src/turtlebot3/turtlebot3_navigation

(3)自动导航:
保持仿真环境运行,关闭其余窗口运行的文件,运行自动导航文件:

export TURTLEBOT3_MODEL=burger
source ~/turtlebot_ws/devel/setup.bash
roslaunch turtlebot3_navigation turtlebot3_navigation.launch

鼠标左键选择rviz工具栏的“2D Pose Estimate”重定位仿真环境中机器人位置和地图中一致,然后选择rviz工具栏中“2D Nav Goal”选项,长按鼠标左键在地图上为机器人指定一个导航目标点。松开鼠标后,在短时间内规划出了一条最优的路径,机器人开始向目标点运动。

在这里插入图片描述
在这里插入图片描述到此结束。创建工作空间


http://www.ppmy.cn/news/907334.html

相关文章

安卓开发加载地图控件

最近在写毕设需要一个截图。然鹅代码在学校的实验室电脑。所以为了有个界面我又从头开始写了代码。其中地图加载是第一步。。然鹅!!百度地图文档一如既往的晦涩,可能是我是属于根骨清奇馋阿里那些人的知识。。。 准备工作: 1.选择高德地图。Android studio。 百度地图官方…

Android中配置高德地图和定位蓝点

最近一直在学习android&#xff0c;学到地图这里&#xff0c;遇到的坑也不少&#xff0c;所以就把它分享出来&#xff0c;一和大家一起学习&#xff0c;二为以后写项目看&#xff0c; 一.获取key 1.创建应用 首先&#xff0c;您得上&#xff08;高德地图开放平台官网&#x…

Android BLE开发 百度地图 大神博客简书传送门合集

一、踩坑 踩坑1&#xff1a; 问题Q&#xff1a;方法报错、标红、Android Studio提示必须添加权限检查。 解决S&#xff1a;不用管&#xff0c;一样能够正常运行&#xff01; 踩坑2&#xff1a; 问题Q&#xff1a;权限报错、标红、提示必须是系统应用才可以使用。 解决S&#…

1.stm32开发板:基于温湿度传感器获取数据,并将数据打印在开发板的数码管进行显示

1.应用层代码 #include "head.h" #include "user.h" /*******根据温湿度传感器获取数据并将数据在数码管上显示精度在两位数*********/ int main(int argc, char const *argv[]) {int tem, hum;float tem_h, hum_h;int number -1;// 用于将温湿度的数据读…

Android 百度地图开发--- 导航功能输入起始地址实现导航,地址解析与反解析的使用

转载请注明出处http://blog.csdn.net/u012324136/article/details/50826147 本人主要介绍安卓开发使用百度地图实现导航功能&#xff0c;用户可以输入当前位置和目的地&#xff0c;实现导航。 首先&#xff0c;我们需要当用户输入具体接到地址后将具体街道的地址转化为经度和…

百度地图怎么查看全景(教程)

手机地图导航可以帮助用户快速定位到目的地。还可以查看周边商圈。出行非常方便。使用百度地图还可以精细到查看全景视角。遇到小区、体育场馆。还可以切换查看内景。要如何开启全景图呢&#xff1f; 百度地图查看全景怎么做 1.进入百度地图首页面。点击右侧图层按钮。更改地…

Win10快捷键大全快速开发切换操作之道

目录 第一部分&#xff1a;Windows10系统快捷键 复制、粘贴和其他常规快捷键 Windows徽标键快捷键 命令提示符快捷键 对话框快捷键 文件资源管理器快捷键 虚拟桌面快捷键 任务栏快捷键 《设置》快捷键 第二部分&#xff1a;Windows10应用的快捷键 《Microsoft Edge浏…

Android AVD Manager - 安卓虚拟机的设置

AVD Manager : Android Virtual Device Manager QVGA :240x320 quarter of VGA HVGA :320x480 Half of VGA VGA :480x640 WVGA :480x800 Wide VGA FWVGA:480x854 AVD设置技巧 实际AVD设置说明 iu手动安装下硬件加速: SDK Manager - Extra: SDK 目录下&#xff1a; silent_…