XTDrone-多机仿真-配置教程

启动python脚本生成多机launch文件

cd ~/XTDrone/coordination/launch_generator
python3 generator.py

将生成出来的launch文件复制到PX4固件的launch文件夹

cp ~/XTDrone/coordination/launch_generator/multi_vehicle.launch ~/PX4_Firmware/launch/

启动多机PX4仿真

cd ~/PX4_Firmware/
roslaunch px4 multi_vehicle.launch

键入如下命令修改启动脚本

gedit ~/XTDrone/communication/multi_vehicle_communication.sh
#!/bin/bash
iris_num=0
typhoon_h480_num=0
solo_num=3
plane_num=3
rover_num=3
standard_vtol_num=0
tiltrotor_num=0
tailsitter_num=0
# 上面是需要按照所启动的无人机的数量进行相应的修改vehicle_num=0
while(( $vehicle_num< iris_num)) 
dopython3 multirotor_communication.py iris $vehicle_num&let "vehicle_num++"
donevehicle_num=0
while(( $vehicle_num< typhoon_h480_num)) 
dopython3 multirotor_communication.py typhoon_h480 $vehicle_num&let "vehicle_num++"
donevehicle_num=0
while(( $vehicle_num< solo_num)) 
dopython3 multirotor_communication.py solo $vehicle_num&let "vehicle_num++"
donevehicle_num=0
while(( $vehicle_num< plane_num)) 
dopython3 plane_communication.py $vehicle_num&let "vehicle_num++"
donevehicle_num=0
while(( $vehicle_num< rover_num)) 
dopython3 rover_communication.py $vehicle_num&let "vehicle_num++"
donevehicle_num=0
while(( $vehicle_num< standard_vtol_num)) 
dopython3 vtol_communication.py standard_vtol $vehicle_num&let "vehicle_num++"
donevehicle_num=0
while(( $vehicle_num< tiltrotor_num)) 
dopython3 vtol_communication.py tiltrotor $vehicle_num&let "vehicle_num++"
donevehicle_num=0
while(( $vehicle_num< tailsitter_num)) 
dopython3 vtol_communication.py tailsitter $vehicle_num&let "vehicle_num++"
done

注意:需要以python3来运行.py文件!!!

然后输入如下命令运行此脚本建立通信

cd ~/XTDrone/communication
bash multi_vehicle_communication.sh

连接成功后的示例:

建立通信后,可以在control目录下分别启动对应机型的键盘控制脚本,即可实现利用键盘同时控制多机型。

具体方法示例:

启动3架solo和3架iris四旋翼无人机的键盘控制脚本

分别在两个窗口输入如下命令

cd ~/XTDrone/control/keyboard
python3 multirotor_keyboard_control.py solo 3 vel

注意:第二个参数“3”需要改成前面launch文件中所启动的solo无人机个数

cd ~/XTDrone/control/keyboard
python3 multirotor_keyboard_control.py iris 3 vel

注意:第二个参数“3”需要改成前面launch文件中所启动的solo无人机个数

键盘控制脚本起飞后就可以在各个键盘中控制同类无人机的飞行了

多无人机起飞后的仿真效果:

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

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

相关文章

MyBatis框架基础

文章目录 1 MyBatis概述2 MyBatis入门2.1 相关依赖2.2 properties配置文件2.3 预编译SQL 3 基本操作3.1 新增操作3.2 删除操作3.3 更新操作3.4 查询操作 4 动态SQL4.1 XML映射文件4.2 if/set/where标签4.3 foreach标签4.4 sql/include标签 5 参考资料 1 MyBatis概述 MyBatis是…

每日复盘-202406019

今日关注&#xff1a; 20240619 六日涨幅最大: ------1--------300868--------- 杰美特 五日涨幅最大: ------1--------300462--------- 华铭智能 四日涨幅最大: ------1--------300462--------- 华铭智能 三日涨幅最大: ------1--------300462--------- 华铭智能 二日涨幅最大…

IntelliJ IDEA软件下载安装手册:从官方下载到配置启动全流程详解(Windows版)

一、访问官方下载页面 首先&#xff0c;您需要通过官方渠道访问IntelliJ IDEA的下载页面。在您的浏览器中输入官方网址&#xff1a; https://www.jetbrains.com/idea/download/&#xff0c;进入官方下载页面。 二、选择合适的版本下载 在官方下载页面&#xff0c;您将看到多…

Linux虚拟机安装nginx并进行浏览器访问 - 附带常见问题和常用指令(实施必备)

1、Linux安装Nginx 1.1、下载Nginx安装包 Linux Nginx-1.25.5 官方其他版本 1.2、解压安装包 tar -zxvf nginx-1.25.5.tar.gz 1.3、安装依赖包 由于我使用的是1.25.5版本&#xff0c;所以需要加入依赖包 # yum install pcre pcre-devel # yum install zlib-devel 1.4、配置…

[linux] 系统的基本使用

用户系统&#xff1a; 之前提到&#xff0c;linux是个多用户系统&#xff0c;所以要使用linux&#xff0c;首先你得是个用户 用户&#xff1a;普通用户管理员 每一个用户有自己的用户名密码&#xff0c; 会话(session):一个终端使用服务器的全过程 从你用户登录&#xff0c;到你…

Office--加载宏-CS上线

免责声明:本文仅做技术交流与学习... 目录 关于宏上线的格式: 操作流程: 其他office文本的上线格式一样: 关于宏上线的格式: doc宏病毒: 1-生成格式为dotm 只要点启用宏就上线 2-生成格式为()word 97-2003 .doc) 被杀 操作流…

关于Java的一点小小知识点(杂谈)

1&#xff0c;Resource和Autowire的区别 在java代码中可以使用Autowire或者Resource注解方式进行装配&#xff0c;这两个注解的区别是&#xff1a; Autowire默认按照类型装配&#xff0c;默认情况下它要求依赖对象必须存在如果允许为null&#xff0c;可以设置它required属性为…

JAVA实现利用phantomjs对URL页面(网页)进行转图片保存

一、前期准备 1、下载phantomjs工具 地址&#xff1a;https://phantomjs.org/download.html 解压到指定文件夹&#xff0c;后续代码要调用该工具&#xff0c;记住路径 2、准备好模板NetToPicMoban.js 用于给phantomjs提供需要执行的js&#xff0c;具体放在那看自己的需求&…

51单片机STC89C52RC——3.1 数码管静态展示

目的 让数码管在指定位置显示指定数字 一&#xff0c;STC单片机模块 二&#xff0c;数码管 2.1 数码管位置 2.2 生活中用到的数目管 红绿灯 LED数码管在生活中随处可见&#xff0c;洗衣机、电饭煲、热水器、微波炉、冰箱、这些最基本的家用电器上基本都用到了这种7段LED数…

广告权重及出价解析

由于算法一直在不断改变&#xff0c;所以公式只能作为参考&#xff0c;不过核心是不变的。一、广告权重及出价解析 链接质量分CTR分值**CR分值&#xff08;点击率*转化率&#xff09;广告质量分广告出价*链接质量分我们的出价下一名产品的广告质量评分/我们的链接质量分0.01 …

Spring Bean详解

Spring Bean作用域 默认情况下&#xff0c;所有的 Spring Bean 都是单例的&#xff0c;也就是说在整个 Spring 应用中&#xff0c; Bean 的实例只有一个 如果我们需要创建多个实例的对象&#xff0c;那么应该将 Bean 的 scope 属性定义为 prototype&#xff0c;如果 Spring 需…

嵌入式linux系统中SPI子系统验证03

今天主要给大家分享一下&#xff0c;如何使用SPI总线进行验证的方法。 第一&#xff1a;SPI验证流程 1. echo 1 > /dev / spidev3.0 2&#xff0e;逻辑分析仪抓波形 3.十六进指转化为十进制 4.ASCII字符代码表匹配 第二&#xff1a;SPI验证结果 第三&#xff1a;设备…

“论数据访问层设计技术及其应用”写作框架,系统架构设计师

论文真题 在信息系统的开发与建设中&#xff0c;分层设计是一种常见的架构设计方法&#xff0c;区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性&#xff0c;使设计结构清晰&#xff0c;便于提高复用能力和产品维护能力。一种常见的层次划分模…

eclipse如何导入springboot项目

打开eclipse 找到你的springboot项目 点击finish即可 test02就已经导入进去了 配置一下maven 在将那个springboot项目刷新一下即可 运行成功

得物面试:什么是零复制?说说 零复制 底层原理?(吊打面试官)

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的零复制的问题&#xff1a; 说一说Rocketmq、是如何实现每秒上百万数据的超…

【C++11】详谈隐式类型转换

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; C进阶 &#x1f389;其它专栏&#xff1a; C初阶 | Linux | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解 C11中 隐式类型转换 的相关内容。 如果看到最后您觉得这篇文章写得…

实现跑马灯

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 namespace 跑马灯 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){Color[] colors { Color.Red, Color.Green, Color.Yellow };T…

JAVA每日作业day6.19

ok了家人们今天继续学习面向对象&#xff0c;话不多说看看今天学了什么 一.面向对象-封装 1&#xff0c;private private:私有的 权限修饰符 是一个成员修饰符&#xff0c;修饰成员变量 被private修饰的成员变量和成员方法只能在本类中使用 对外访问使用是 set XXX 和 get X…

IO流2.

字符流-->字符流的底层其实就是字节流 public class Stream {public static void main(String[] args) throws IOException {//1.创建对象并关联本地文件FileReader frnew FileReader("abc\\a.txt");//2.读取资源read()int ch;while((chfr.read())!-1){System.out…

pytorch库 02 Anaconda、Jupyter常用命令及操作

文章目录 一、Anaconda Prompt1、conda常用命令2、pip常用命令 二、Jupyter1、Jupyter常用命令及基本操作2、Jupyter代码补全插件安装 一、Anaconda Prompt 1、conda常用命令 下列命令可以在Anaconda Prompt中输入。 清屏&#xff1a; cls 查看帮助&#xff1a; conda -h 查…