如何在Gazebo中实现多机器人编队仿真

文章目录

  • 前言
  • 一、仿真前的配置
  • 二、实现步骤
    • 1.检查PC和台式机是否通讯成功
    • 2.编队中对单个机器人进行独立的控制
    • 3、对机器人进行编队控制


前言

实现在gazebo仿真环境中添加多个机器人后,接下来进行编队控制,对具体的实现过程进行记录。


一、仿真前的配置

本文的多机器人编队,在turtlebot3单个机器人的建图、导航等功能的基础上进行,需要在自己的远程PC和台式机中安装配置以下功能包

(1)turtlebot3单个机器人的配置:可以看之前的文章双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图

(2)进行多机器人编队仿真前需要将已经写好的FourTB3s功能包配置在自己的工作空间src文件夹下,且成功编译,如果不知道怎么编译可以看这篇ROS如何将拷贝的功能包成功运行在自己的工作空间中

(3)需要在自己的src文件夹中打开终端输入:

git clone https://gitee.com/kay2022/turbot3.git

下载一个turbot3的包,如果git clone遇到问题可以参考双系统 + Ubuntu20.04 + ros2 (foxy) git clone -b连接不成功的解决记得下载完成后要重新编译。

二、实现步骤

1.检查PC和台式机是否通讯成功

【PC端】 终端输入:roscore
【台式机】终端输入:rostopic list
通讯成功如下图(具体通信配置过程可参考:虚拟机作为master远程控制台式机中的机器人在仿真环境中进行slam地图构建与自主导航)
【PC显示】
在这里插入图片描述
【台式机显示】
台式机端

2.编队中对单个机器人进行独立的控制

【台式机】终端输入:roslaunch turtlebot3_gazebo test.launch 启动gazebo仿真环境(四个机器人,可以增添或减少可参考文章:在gazebo仿真环境中加载多个机器人)
加载成功界面:
在这里插入图片描述
【PC】终端输入:ROS_NAMESPACE=tb3_0 roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
注意:ROS_NAMESPACE=“后面接想要控制的机器人的名字”,这个名字要与写的加载gazebo的launch中起的机器人名字一致,启动后可通过键盘控制单个机器人移动。
在这里插入图片描述
可以在台式机gazebo的仿真环境中,指明某个机器人控制其独立的移动,如图控制tb3_0单个机器人的移动,若控制其他机器人同理。

在这里插入图片描述

在这里插入图片描述

3、对机器人进行编队控制

【PC】打开FourTB3文件夹,并在该文件夹下打开终端,输入:python3 FourTB3sPerform.py为方便机器人进行编队运动,可以将gazebo环境中的障碍物去掉
在这里插入图片描述【PC端显示】
在这里插入图片描述

【台式机显示】
在这里插入图片描述在这里插入图片描述
【总览】
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVAEE初阶相关内容第十二弹--多线程(进阶)

目录 一、JUC的常见类 1、Callable接口 1.1callable与runnable 1.2代码实例 (1)不使用Callable实现 (2)使用Callable实现 1.3理解Callable 1.4理解FutureTask 2、ReentrantLock 2.1ReentrantLock的用法 2.2ReentrantLoc…

【面试题】Js数组去重都有哪些方法?

前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 表妹一键制作自己的五星红旗国庆头像,超好看 1. indexOf 定义: indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置…

springboot整合sentinel完成限流

1、直入正题,下载sentinel的jar包 1.1 直接到Sentinel官网里的releases下即可下载最新版本,Sentinel官方下载地址,直接下载jar包即可。不过慢,可能下载不下来 1.2 可以去gitee去下载jar包 1.3 下载完成后,进行打包…

【办公小神器】:快速批量转换Word、Excel、PPT为PDF脚本!

文章目录 ✨哔哩吧啦✨脚本使用教程✨温馨小提示设置📚资源领取 专栏Python零基础入门篇🔥Python网络蜘蛛🔥Python数据分析Django基础入门宝典🔥小玩意儿🔥Web前端学习tkinter学习笔记Excel自动化处理 ✨哔哩吧啦 前…

[pai-diffusion]pai的easynlp的clip模型训练

EasyNLP带你玩转CLIP图文检索 - 知乎作者:熊兮、章捷、岑鸣、临在导读随着自媒体的不断发展,多种模态数据例如图像、文本、语音、视频等不断增长,创造了互联网上丰富多彩的世界。为了准确建模用户的多模态内容,跨模态检索是跨模态…

Ctfshow web入门 代码审计篇 web301-web310 详细题解 全

CTFshow 代码审计 web301 下载的附件的目录结构如下: 开题后界面,看见输入框,感觉是sql。 大概浏览一遍源码,我们可以发现在checklogin.php文件中有无过滤的SQL语句,SQL注入没得跑了。 这题SQL注入有三种做法。 方法一…

Linux:GlusterFS 集群

GlusterFS介绍 1)Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储. 2)Glusterfs通过TCP/IP或InfiniBand RDMA网络链…

Everything + Cpolar,打造在线搜索的终极神器

文章目录 前言1. 下载安装注册cpolar2. Everything安装和设置2.1 进入Everything官网进行下载2.2 对Everything文件进行设定 3. 创建cpolar内网穿透隧道4. 公网访问测试Everything5. 固定连接公网地址 前言 你还在用Windows资源管理器自带的搜索工具来搜索文件吗?这…

轮换对称性

二重积分 普通对称性–D关于 y x yx yx对称: ∬ D f ( x , y ) d σ { 2 ∬ D 1 f ( x , y ) d σ f ( x , y ) f ( y , x ) 0 f ( x , y ) − f ( y , x ) \iint_{D}f(x,y)d\sigma\begin{cases} 2\iint_{D_1}f(x,y)d\sigma\ \ \ \ \ \ f(x,y)f(y,x) \\ 0 \ \…

OpenStack创建云主机并连接CRT

文章目录 OpenStackT版创建云主机并连接CRT命令行操作(1)创建镜像(2)创建实例(3)创建网络创建内网创建外网 (4)创建安全组(5)创建路由(6&#xff…

1952-2018年中国各省份人均GDP数据(消涨处理)

1952-2018年中国各省份人均GDP数据(消涨处理) 1、时间:1952-2018年 2、范围:30省市 3、指标:人均GDP 4、来源:《新中国60周年统计汇编》和各省年鉴 5、指标解释: 过程为环比人均GDP指数转…

YSA Toon (Anime/Toon Shader)

这是一个Toon着色器/Cel阴影着色器,用于Unity URP 此着色器的目的是使角色或物体阴影实时看起来尽可能接近真实的动画或卡通效果 可以用于游戏,渲染,插图等 着色器特性,如:面的法线平滑、轮廓修复、先进的边缘照明、镜面照明、完全平滑控制 这个文档包括所有的功能https:/…

Eclipse ABAP ADT 集成详细安装教程

最近看到网上有个源码使用CDS做的,然后看了一下原来还可以用eclipse,趁热打铁,试了一把,最后成功了,中间可能会有一些报错,可以自己慢慢解决,大概就是这样的。 SAP的开发,有三种开发…

Java————List

一 、顺序表和链表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构, 常见的线性表:顺序表、链表、栈、队列… 线性表在逻辑上是线性结构,也就说是连续的一条直…

微信小程序与idea后端如何进行数据交互

交互使用的其实就是调用的req.get(url)方法 进行路径访问,你要先保证自己的springboot项目已经成功运行了: 如下: 如何交互的? 微信小程序:如下为index.js页面 在onLoad()事件中调用方法Project.findAllCities() 要…

贝叶斯滤波计算4d毫米波聚类目标动静属性

机器人学中有些问题是二值问题,对于这种二值问题的概率评估问题可以用二值贝叶斯滤波器binary Bayes filter来解决的。比如机器人前方有一个门,机器人想判断这个门是开是关。这个二值状态是固定的,并不会随着测量数据变量的改变而改变。就像门…

rv1126-rv1109-test

测试指令 播放音频:aplay aigei.wav 测试时间: 查看系统时间:date 设置时间:date -s "2023-09-21 16:00:00" 设置芯片时间:hwclock -w 查看芯片时间:hwclock 测试背光: echo 0 > sys/class/backlight/backlight/brightness echo 50 > sys/class/backlig…

期权如何交易?期权如何做模拟交易?

买卖期权的第一步就是要有期权账户,国内的期权品种有商品期权和ETF期权以及股指期权,每种的开户方式和要求都不同,下文为大家介绍期权如何交易?期权如何做模拟交易? 一、期权交易需要开立一个期权账户,可以…

【Spring Boot 源码学习】OnBeanCondition 详解

Spring Boot 源码学习系列 OnBeanCondition 详解 引言往期内容主要内容1. getOutcomes 方法2. getMatchOutcome 方法2.1 ConditionalOnBean 注解处理2.2 ConditionalOnSingleCandidate 注解处理2.3 ConditionalOnMissingBean 注解处理 3. getMatchingBeans 方法 总结 引言 上篇…

实战演练 | Navicat 常用功能之转储与运行 SQL 文件

数据库管理工作中,"转储 SQL 文件"和"运行 SQL 文件"是两个极为常见操作。一般来说,用户使用数据库管理工具或命令行工具来完成。Navicat 管理开发工具中的“转储 SQL 文件”和“运行 SQL 文件”功能具有直观易用的界面、多种文件格…