双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图

2023-11-12

双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图

昨晚完成了ROS的多机通讯,还没来得及整理相关操作步骤,在进行实际小车的实验之前,还是先打算在仿真环境中进行测试,熟悉相关的操作步骤,计划通过虚拟机(笔记本)来操纵双系统(台式机)完成在仿真环境中的地图构建,导航等功能。
ps:别问为什么不直接通过向日葵远程操控,后面要进行实际环境中多机器人编队的测试,多机器人编队功能已经被写好了,但是需要安装在远程PC的工作空间中进行多机器人的控制
1、安装ROS(neotic)版本依赖

  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-rosserial-arduino \
  ros-noetic-rosserial-python 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* ros-noetic-rviz \
  ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers

ROS1和ROS2其他版本安装相关依赖参考网址(ROS1&ROS2依赖包)注意☝的是一行指令,分行输入会报错的。

2、安装turtlebot3软件包
Install TurtleBot3 via Debian Packages.

 sudo apt install ros-noetic-dynamixel-sdk
 sudo apt install ros-noetic-turtlebot3-msgs
 sudo apt install ros-noetic-turtlebot3

3、设置环境变量

 source ~/.bashrc

4、创建工作空间安装TB3功能包

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
git clone -b noetic-devel http://ghproxy.com/https://github.com/ROBOTIS-GIT/DynamixelSDK.git
git clone -b noetic-devel http://ghproxy.com/https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone -b noetic-devel http://ghproxy.com/https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone -b noetic-devel http://ghproxy.com/https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/catkin_ws && catkin_make

ROS1其他版本的TB3功能包参考ROS1功能包
ROS2(foxy)版本功能包参考ROS2功能包
注意ROS1&ROS2的其他版本连接中改对应版本名称
编译成功
在这里插入图片描述5、Gazebo仿真
(1)选择启动的机器人模型

export TURTLEBOT3_MODEL=waffle_pi
export TURTLEBOT3_MODEL=burger

(2)启动gazebo仿真环境

roslaunch turtlebot3_gazebo turtlebot3_world.launch

可能会出现以下报错:
在这里插入图片描述
找到错误原因“环境变量设置有问题”
错误原因为环境变量设置有问题(后面进行优化)
运行下方代码后再执行roslaunch

source ~/catkin_ws/devel/setup.bash
 roslaunch turtlebot3_slam turtlebot3_slam.launch

turtlebot3_world.launch
在这里插入图片描述
(3)启动rviz进行建图
打开新的终端,还要在输入一边机器人选择模型的指令,在输入以下指令(后面进行优化)

roslaunch turtlebot3_slam turtlebot3_slam.launch

(4)控制小车移动实现建图
打开新的终端,还要在输入一边机器人选择模型的指令

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

在这里插入图片描述
(5)保存地图:

rosrun map_server map_saver -f ~/map_world

在这里插入图片描述

地图自动保存在~/home/map目录下,名为map_world.yaml和map_world.pgm
在这里插入图片描述

优化

目前在启动机器人小车在仿真环境中的建图非常麻烦,每次启动新的节点都要输入指令选择一遍机器人的模型,且在启动turtlebot3_world.launch文件前还要进行以便环境的配置,总之是非常麻烦的!
下面把这些指令提前配置到source ~/.bashrc文件中
(1)手动配置
输入:

sudo gedit ~/.bashrc 

在文本的最后加入以下这些指令:

source ~/catkin_ws/devel/setup.bash
export TURTLEBOT3_MODEL=waffle_pi//如果你要选择burger型机器人输入export TURTLEBOT3_MODEL=burger
export ROS_DOMAIN_ID=30 #TURTLEBOT3
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/catkin_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models

然后保存后关闭文件,打开终端输入source ~/.bashrc更新环境即可完成。
(2)输入指令配置
我参考其他配置环境指令,输入后可达到相同效果。

echo 'source ~/catkin_ws/devel/setup.bash' >> ~/.bashrc
echo 'export TURTLEBOT3_MODEL=waffle_pi' >> ~/.bashrc
echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
echo 'export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/catkin_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models' >> ~/.bashrc

输入完成后打开新终端输入:

source ~/.bashrc

设置完成后,现在启动建图,仅需要输入:
(1)启动gazebo仿真环境

roslaunch turtlebot3_gazebo turtlebot3_world.launch

(2)启动RVIZ

roslaunch turtlebot3_slam turtlebot3_slam.launch

(3)启动键盘控制节点即可

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图 的相关文章

随机推荐

  • STM32-按键输入

    1 硬件连接 1 1 mini 1 2 战舰 1 3 探索者 KEY0 gt PE4 上拉输入 KEY1 gt PE3 上拉输入 KEY2 gt PE2 上拉输入 WK UP gt PA0 下拉输入 按键输入最关键的是对按键的初始化和输入判
  • 数据结构小白之浅析二叉排序树(bst)

    1 什么是二叉排序树 二叉排序树 binary sort tree 简称为bst 是一种无论是查询还是添加都相对较快速的数据结构 相比于数组而言 未排序的数组 可以直接在数组的尾部进行添加数据 但是查找的速度慢 排序的数组 可以使用二分查找
  • Unity常见问题合集

    目录 前言 1 StopCoroutine并不能停止协程 2 GetComponentsInChildren如何获取隐藏物体 3 导入的模型无法编辑材质球属性 4 MeshRender更换材质球方法 5 两个模型动画不同步 播完后有延迟 前
  • HX711称重模块的使用

    HX711称重模块的使用 先贴一段文字 见多了可以跳过直接看下面 满量程输出电压 激励电压 灵敏度1 0mv v 例如 供电电压是5v 乘以灵敏度1 0mv v 满量程5mv 相当于有5Kg 重力产生时候产生5mV 的电压 2 概述 711
  • C++_tuple, tie, std::get<>

    catalog std get lt gt tuple源码 tie 用处 简化比较 std get lt gt 要么返回的是 引用 要么返回的是 const 常量引用 即 std get lt 0 gt t 他返回的 一定是 t这个tupl
  • Linux新手入门教程

    下面给你讲解新手第一次接触Linux操作系统 一 学习Linux 1 Linux系统 Linux命令 ssh websever apache MySQL 缓存 PHP Python java 必备服务 2 Linux能做什么 企业服务器 嵌
  • 开发者营地

    本文聚焦于Glide的源码 基于Glide4 11 0 一 简介 Glide的GitHub Glide是一个快速高效的Android图片加载库 注重于平滑的滚动 Glide提供了易用的API 高性能 可扩展的图片解码管道 decode pi
  • WebSocket学习

    从搜索引擎搜索资料 https www runoob com html html5 websocket html WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 WebSocket 使得客户端和
  • ISO/OSI七层模型

    想要让两台PC进行通信 必须使用相同的信息交换规则 我们把计算机网络中用于规定信息的格式 以及如何发送和接受信息的一套规则称谓网络协议或者通信协议 我们为了减少网络设计的复杂 人们按功能将计算机网络划分为多个不同功能的层 网络体系结构就是网
  • 游戏的基础—三消-1

    三消 简单的理解就是3个在一起就消喽 这里我们就最简单的操作的三消为例 就是你触屏按下去 然后以当前的位置像周围4个方向寻找是否有相同类型的游戏实体 如果有的话 把它存进一个list的里面 这里要强调一下c 里面数组一般用list因为lis
  • 字节(飞书)暑期实习面试记录

    字节一面 2022 05 07 20 00 21 20 前导 面试官简单介绍字节和面试注意点 1 自我介绍 问实习能多久 2 项目介绍部分 问 实习了多久 介绍项目 项目收获 项目难点 怎样轮询日志的 因为我项目介绍时候有提到 3 正片开始
  • 软考-信息管理——学习笔记_证

    前言 学习方法 应该达到 按照一级标题进行默写罗列 再默写二级标题默写罗列 最后按三级标题及知识点进行罗列 合同和法律篇 中标通知书发送30天内需签订合同 标底保密 招标文件发布起到截止日不得少于20天 不用招标的场景 需要采用不可代替的专
  • Eolink 旗下网关产品各版本功能及性能对比

    GoKu 网关提供企业版 EE 与开源版 CE 两个版本 满足不同阶段用户对于微服务的需求 两个版本均支持 私有云部署 开源版 CE 目前已停止维护 Apinto 开源版本是 Goku 开源版 CE 的一次架构升级 经过前面几年的网关架构和
  • 图像识别技术

    目录 1 什么是图像识别 2 图像识别的发展过程 3 图像识别的原理 4 图像识别的应用领域 5 图像识别未来的发展趋势 1 什么是图像识别 图像识别 又称为计算机视觉 是指利用计算机和人工智能技术对图像进行分析和理解 以自动识别和分类图像
  • Java并发之锁

    Java并发之锁 一 临界区 二 线程安全 三 解决临界区线程安全问题 四 Java对象头 五 重量级锁 Monitor 5 1 synchronized 5 1 1 synchronized加锁流程 六 轻量级锁 6 1 轻量级锁加锁流程
  • 信息收集的一些文件泄露

    1 robots txt文件泄露 放在网站的跟目录下 用于限制浏览器的访问 哪些可以抓取 哪些不能抓取 用于防止黑客 但是任何人可在url中直接通过 robots txt访问 导致网站结构被泄露 可对admin等重要文件设置密保保护 或者采
  • 【Python打包成exe方法】——已解决导入第三方包无法打包的问题​

    前言 在我们写代码的过程中 我们开发的脚本一般都会用到一些第三方包 可能别人也需要用到我们的脚本 如果我们将我们的xx py文件发给他 他是不能直接用的 他还需要安装python解释器 甚至还要安装我们用的那些第三方包 是不是有点小麻烦 但
  • Openmmlab(一)

    计算机视觉为研究如何自动理解图像和视频中的内容 运用于图像识别 人脸识别 计算机视觉应用 动漫特效 图像生成 风格迁移 虚拟主播 视频自动剪辑等 今日的计算机视觉 文字描述生成图片 视觉大模型 神经渲染CityNeRF 开源成为人工智能领域
  • js逆向webpack

    扣代码会遇到的基本2种形式 1 webpack function x 这里的x是存放模块1 模块2那个数组 function xx yy yy是存放模块1 模块2的数组下标 x yy call 模块参数1 模块参数2 模块参数3 必有一个加
  • 双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图

    双系统ubuntu20 04 neotic版本 从0实现Gazebo仿真slam建图 昨晚完成了ROS的多机通讯 还没来得及整理相关操作步骤 在进行实际小车的实验之前 还是先打算在仿真环境中进行测试 熟悉相关的操作步骤 计划通过虚拟机 笔记