PX4如何开启本地在环仿真?如何将仿真地点定位为本地位置?你进来就对了!
视频预览:3架无人机在环仿真
3架仿真
jmavsim本地坐标启动教程
1.首先执行仿真命令
n414@414:~/001/Firmware$ make px4_sitl_default jmavsim
出现左边界面就说明该仿真是可以进行仿真的!由于我在自己写的代码里面启动,所以出现右边提示,正常是不出现的。
接下来,正式执行命令:
n414@414:~/001/Firmware$ export PX4_HOME_LAT=32.141985431
n414@414:~/001/Firmware$ export PX4_HOME_LON=118.528072900
n414@414:~/001/Firmware$ export PX4_HOME_ALT=(海拔高度用默认就可以,不需要自己添加)
以上,坐标经纬度需要根据自己所在的位置进行添加修改
下面就选择使用多少架无人机进行仿真实验
n414@414:~/001/Firmware$ ./Tools/sitl_multiple_run.sh 10//首先需要开启的
最后面的数字需要根据自己的需求进行更改!
n414@414:~/001/Firmware$ ./Tools/jmavsim_run.sh -l
第一架的编号可以采用上面这条指令!
n414@414:~/001/Firmware$ ./Tools/jmavsim_run.sh -p 4561 -l
开启第二架可以使用上面这条指令!编号是4561,依次进行添加!
重新添加新的无人机需要开启新的终端,并且每次在启动仿真的时候需要先输入定位的位置!
二、获取实时经纬度点
本教程基于二次开发的QGC进行点经纬度坐标的获取,即数据仅可通过地面站获取,由于本地面站是实验室内部资料,无法共享!
通过点击QGC地面站自带地图获取实时经纬度坐标,获取代码如下:(文件:preplanview.qml)
输出位置:(文件:PrePlanController.cpp)
//"A"代表总区域,"S"代表划分出的子区域,"T"代表子区域规划的路径,"H"代表起降点,"M"代表目标,"W"代表威胁
void PrePlanController::addAreaPoint(const QString typeName, const int seq, double pointLat, double pointLong,bool isSendSignal,int pointMapX,int pointMapY,QString findWMVeiche,QString findWMTime)
{qDebug()<<"类型:"<<typeName<<"Lat"<<QString::number(pointLat,'f',10)<<"Lon"<<QString::number(pointLong,'f',10);AreaDataType* obj=getArea(typeName,seq);double radius1=AreaDataType::const_radius; //测试用if(typeName=="M")radius1=AreaDataType::const_radius;if(obj==nullptr){obj=new AreaDataType();obj->init(typeName,seq);if(typeName=="A") //区域{obj->setDisplayColor("salmon");obj->setPathColor("lightsalmon");}else if(typeName=="S"){ obj->setDisplayColor("orange");obj->setPathColor("brown");}else if(typeName=="T"){if(seq%2==0){obj->setDisplayColor("goldenrod");obj->setPathColor("gold");}else{obj->setDisplayColor("green");obj->setPathColor("lightgreen");}}else if(typeName=="W"){ obj->setDisplayColor("red");}else if(typeName=="M"){ obj->setDisplayColor("green");}else if(typeName=="H"){obj->setDisplayColor("blue");}_areaList.append(obj);emit addPointToAreaListChanged();}if(typeName=="H") //特例处理,起降点只能有一个{updateAreaPoint(getPointName(typeName,seq,0),pointLat,pointLong,pointMapX,pointMapY,radius1);}else{obj->addAreaPoint2(pointLat,pointLong,radius1,true,pointMapX,pointMapY,findWMVeiche,findWMTime);//by gyg20201107if(typeName=="W" || typeName=="M"){sendThreatTargetToWeb();}emit addPointToAreaListChanged();}
}
//提示:qDebug()<<"类型:"<<typeName<<"Lat"<<QString::number(pointLat,'f',10)<<"Lon"<<QString::number(pointLong,'f',10);//需要添加QString::number(pointLat,'f',10),10是输出小数点后10位小数,否则qDebug()输出为默认位数
相关文章:

Blender从头到尾创建低多边形角色学习教程 Low Poly Characters – Blender Bitesize Course
从头到尾创建低多边形角色。 你会学到: Blender界面的基础。 基本建模技术。 如何遵循字符引用? 如何创造和塑造自己的角色(不同风格、发型和服装)。 纹理字符。 索具和动画介绍(用于你的游戏引擎或动画)。 调整您下载的资产包角色,以创建新的不同角色。…

20145101《Java程序设计》第4周学习总结
20145101《Java程序设计》第4周学习总结 教材学习内容总结 第六章 继承与多态 继承:避免多个类间重复定义共同行为。把相同代码提升为父类 运用extends关键字的子类会继承扩充父类行为 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中&#…

反编译使用yield关键字的方法
我认为这是一个真命题:“没有用.NET Reflector反编译并阅读过代码的程序员不是专业的.NET程序员”。.NET Reflector强大的地方就在于可以把IL代码反编译成可读性颇高的高级语言代码,并且能够支持相当多的“模式”,根据这些模式它可以在一定程…

Android studio 启动自学模式
今天在网上看到了编译Android的软件Android studio,出于对Android的学习兴趣,我打算开始新一轮的Android的学习。今天就是在网上,以及图书馆里查找了有关Android studio的书籍,但是由于Android是在13年才开始发布的原因吧&#x…

AutoCAD 2D与3D大师班学习教程 AutoCAD 2D and 3D Masterclass
用实例和解决问题的方法完成从基础到专业的AutoCAD课程。 你会学到什么 AutoCAD课程包含创建计划和模型的命令和不同方法的详细使用。 本课程包括对AutoCAD中使用的所有命令和工具的详细解释。 课程内容是按时间顺序设计的,以了解承担项目的实际方法。 本课程包含两…

威纶通宏开机后使用初始化宏指令_【操作系统】我们按下电脑开机键的背后发生了什么?...
作者:CVNot链接:https://juejin.im/post/5e8844996fb9a03c6675b9d6操作系统是什么?操作系统是用来管理计算机硬件的软件,狭义上实现该定义的为操作系统内核;而更加宽泛的操作系统概念为根据内核对外提供了一些OS服务&a…

Linux常用压缩与解压缩命令
.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d…

【Kubernetes】如何使用Kubeadm部署K8S集群
一 . 准备机器 本次环境采用华为云ECS弹性云服务器部署(也可以使用VMware) vm01(2V4G): Ubuntu_18.04作为K8S master节点 vm02(1V1G): Ubuntu_18.04作为K8S node节点 备注: 以下所有…

解决ORA-28000: the account is locked
在oracle中,连续十次尝试登陆不成功,那么此账户将会被锁定(lock)。当使用被锁定的账户登录时,系统会报错:ORA-28000: the account is locked。查询FAILED_LOGIN_ATTEMPTS参数默认值,这个参数限制…
Android sudio Day01-1
今天我开始学习Android studio的第二天,主题是Android studio的安装。 之前的学校学习都是使用Android开发者工具(Android development tools,ADT),而ADT作为一个Android开发工具,它是通过内置于Eclipse的…

学习用C#在Unity中创建一个2D Metroidvania游戏
学习用C#在Unity中创建一个2D Metroidvania游戏 你会学到: 构建2D Unity游戏 用C#编程 玩家统计,水平提升,米尔和远程攻击 敌方人工智能系统 制定级别和级别选择 Learn To Create A 2D Metroidvania Game in Unity With C# MP4 |视频:h264,…

3.27课·········悬浮动态分层导航与隐藏导航
例1:分层导航 <title>分层导航</title> <script src"../JavaScript/jquery-1.4.2.min.js">//引用外部JS代码 </script> <style> #apDiv1 {position: fixed;left: auto;top: auto;bottom: auto;width: 237px;height: auto;z-index: 2;m…

.sh是什么语言_shell的重生历史:从sh到bash
shell 门派之争Linux 中的 shell 有很多类型,其中最常用的几种是:Bourne shell (sh)、C shell (csh) 和 Korn shell (ksh),它们各有优缺点,用户则萝卜青菜,各有所爱。Bourne shell 出师不利Bash:Bourne aga…

【Docker】容器的几种网络模式
当你使用Docker时,你会发现需要了解很多关于网络的知识。Docker作为目前最火的轻量级容器引擎,因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求。本文介绍了Docker的4种网络模式。 1、首先我们先简单描述一下容器…

微信推送模板消息的PHP代码整理
本文为本人原创,未经许可,不可转载。 博主长期从事微信开发,微信开发相关问题和业务请联系qq 2580234897 最近做过一个需要推送消息的系统,就研究了一下微信的模板消息的推送。由于认证过的微信号,就用测试号做的&…
Android studio Day01-23
AndroidDay01-2(Android studio安装) 步骤如下: (1)下载Android studio下载地址:www.developer.android.com./sdk/installing/studio.html (2)双击安装,建议在studio安…

Unity 3D学习视觉脚本无需编码即可创建高级游戏
在本课程中,您将学习如何在Unity中使用可视化脚本(以前称为Bolt)以及如何在不编写一行代码的情况下创建自己的高级游戏所需的一切。本课程将教你如何掌握可视化脚本,即使你以前没有任何关于unity或编程的经验。 课程获取:Unity 3D学习视觉脚…

树莓派siri homekit_利用树莓派Zero自制一款Homekit摄像头,看上去挺酷,手痒了吗?...
虽然最近相继有多款兼容homekit商用摄像头上市,如果您也和小编一样,喜欢动手,那么DIY一款Homekit摄像头,然后自己3D打印个外壳支架,是不是很酷?HKCam项目Home 4开发者Matthias提供了一个开源项目࿰…

如何释放电脑被限制的20%网速?
很多朋友不管是看电影还是玩游戏,总觉得自己的网速慢,这跟自己所办网络的带宽有一定关系,但我们也要知道,我们的电脑在买来时,默认是限制了20%网速的,如何释放这20%的网速,提高用户体验呢&#…

【Docker】registry部署docker私有镜像仓库
Docker Hub作为Docker默认官方公共镜像仓库,但是如果我们不想使用怎么办,第一我们可以替换默认镜像仓库为我们国内的一些镜像仓库,第二就是如我们自己搭建一个自己的私有镜像仓库,官方也提供docker registry镜像,使得搭…

JAVA 面向对象
1;什么叫面向对象:1;面向对象和面向过程是一种思想2;面向过程:强调的是功能行为3;面向对象:将功能进行封装,强调具备了功能的对象2;面向对象的特征:1…
Android studio Day02-1
AndroidDay02-1(project) 新建一个project,并选择一个自己project的存贮的位置 Android studio 2.3.1默认的最小的API为15 第一次使用并建立自己的project,软件进行相应的sdk其他的组建的安装 点击next进入下一个界面,…

Unity Pro builder创建模块化仓库建筑学习教程
Unity内部的专业3D编辑工作室 你会学到: 直接在Unity内部学习3D建模 使用专业构建器的专业方法 为您的游戏创建模块化资产 了解如何为您的三维模型设置纹理 三维资产的模块化布局 专业后期制作和轻烤 Unity Pro Builder Warehouse MP4 |视频:h264,1280720 |音频:AA…

C++拾遗(五)语句相关
前缀格式与后缀格式 对于表达式:后缀如 i 表达式的值仍是 i,在遇到下一个顺序点后再将 i 加1。前缀 i 表达式的值就是(i1),先计算表达式的值,不需要等待 顺序点。 对于类:前缀函数效…

github里的默认域_GitMAD 一款扫描Github上的敏感信息和数据泄漏工具
GitMAD是一个用于发现Github上的敏感信息和数据泄漏的工具。通过给定关键字或域,GitMAD便会搜索Github上托管的代码,以查找是否存在匹配项。一旦找到了匹配项,GitMAD将克隆存储库并在文件中搜索一系列可配置的正则表达式。然后,Gi…

【Docker】Docker的三大核心组件
镜像(Image)、容器(Container)、仓库(Repository)是我们常说的Docker的三大组件,接下来就让我们一起详细地探索一番吧。 一、镜像(Image) 什么是Docker镜像?…

很高兴开始博客之旅
来到博客园!,开启我的博客之旅,感觉棒棒哒转载于:https://www.cnblogs.com/pbnull/p/4562230.html
Android Studio Day02-2
AndroidDay02-2(AVD) Android APP编译的过程之中总是会需要进行相应的功能的调试,以及界面的布局设置在不同手机上的效果的展示。相应的Android平台都包含有Android虚拟设备管理器,Android虚拟设备管理器允许用户自己创建自己的虚…

网络增强现实开发简介 Introduction to Web AR development
搭配webXR、mindAR、three.js和tensorflow.js 你会学到: 获得构建不同类型的网络增强现实应用程序的实践经验,包括图像效果、人脸效果和世界效果 获得关于增强现实如何在网络浏览器中工作的基本理解 掌握使用WebXR、mind-ar-js和threejs构建web AR应用程序 学习使用…

umi脚手架搭建的项目_15天零成本搭建静态博客,托管于Github Page
博客地址技术栈概览前台:Umi(路由) Antd(视图) TypeScript(增加项目可维护性以及规范性)后台:Umi(路由) Antd(视图) TypeScript(增加项目可维护性以及规范性) Rematch(数据管理)服务:Egg.js(基于koa的下一代企业级应用框架) MongoDB搭建…