Pixhawk无人机-ArduPilot 软件SITL仿真模拟飞行(SITL+Mission Planner结合)

news2024/11/23 20:06:21

本文的目的是将SITL仿真结合Missionplanner地面站,之后再探索SITL仿真结合QGC地面站。

Pixhawk无人机扩展教程(7)—SITL+MP/QGC运行教程中指出,QGC地面站是安装在与SITL仿真软件一起的笔记本电脑上的,而MP地面站是安装在另外一台笔记本电脑上的。因此要注意连接IP地址的区别。

一、SITL和MP地面站的连接

1.不同IP地址时,连接SITL和MP地面站

当SITL仿真软件是在虚拟机的Ubuntu系统中,MP地面站在主机windows系统中,两个不同的IP地址,需要通过output语句列出MAVProxy转发数据的接口

MANUAL> output
MANUAL> 2 outputs
0: 127.0.0.1:14550
1: 127.0.0.1:14551

2.同一IP地址时,连接SITL和MP地面站

如果Mission Planner与MAVProxy在同一台机器上可以直接通过UDP直接连接,也就是SITL仿真软件和Missionplanner地面站都在虚拟机的Ubuntu系统中,仿照教程Ubuntu下MissionPlanner的安装,安装mono,就可以运行MissionPlanner的.exe的可执行文件了。

参考链接:https://blog.csdn.net/TLKids/article/details/122717540
对于ubuntu 18.04 , 使用官方给出的命令如下:

sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

最后安装mono即可,一般来说,大家安装 mono-complete就好

sudo apt install mono-devel

之后下载并使用MissionPlanner,我没有创建快捷脚本,每次打开 MissionPlanner-1.3.74的文件夹,开启终端terminal,在终端运行指令:

mono MissionPlanner.exe

即可打开mp地面站,然后再启动无人机模拟器:
1、首先要进入需要仿真的多旋翼无人机的目录下:

cd ardupilot/ArduCopter

2.可以启动模拟器了:

sim_vehicle.py --console --map

3、MP地面站选择UDP连接方式,其就会自动连接上模拟器。

在这里插入图片描述

二、使用MP地面站控制ArduPilot 在SITL上运行

1、直接使用 Mission Planner模拟飞行

我看了很多博客写这个能直接使用地面站设置航点然后控制SITL自主飞行,简单尝试一个计划起飞,循迹,降落。
比如博客:

  • ArduPilot飞控之Mission Planner模拟
  • ArduPilot飞控之Mission Planner模拟
  • MissionPlanner入门教程-航点规划-模拟器

未实现-遇到的问题:
里面步骤和操作视频都有,操作视频使用的mp地面站好像是英语版的,笔者没有实现成功,我遇到的问题是解锁后飞不起来,又重新上锁了,不知道为什么,等我实现后再把这个博客更新一下。

操作步骤:

  1. 设置Home位置
  2. 建立waypoints(默认飞机高度100米,请根据实际情况调整)
  3. 设置RTH点位
  4. 设置起飞模式Guided/Stablized
  5. 解锁飞机 起飞
  6. 设置自动循迹
  7. 观察飞机循迹飞行情况

注:这里因为是模拟,所以没有做过多参数约束的介绍。反正模拟环境不会对任何东西造成危险和损害。但是如果实际飞行需要注意飞行高度和空间障碍物的规避,以及地面人员财产安全问题。

官方视频:
Mission Planner SITL Demo

  • https://www.youtube.com/watch?v=XY2mnqYl9a0
  • https://www.bilibili.com/video/BV1Uv4y157Xr/?spm_id_from=888.80997.embed_other.whitelist&vd_source=53b1ba83bdd252b2d49cb1ce4e368d5b

2、使用 Mission Planner设置航点路线,在MAVProxy的控制终端输入指令,控制无人机起飞。

1)在 Mission Planner中设置航点路线

在这里插入图片描述
为了后续加载好用,把该航点线路保存下来,保存为planA.waypoints航点文件。

在这里插入图片描述
在这里插入图片描述
打开内容如下图。
在这里插入图片描述

2)再打开一个终端窗口,快捷键:Ctrl+Alt+T,在这个终端里启动仿真:

cd ardupilot/ArduCopter
sim_vehicle.py --console --map

就可以出现仿真界面了:我们可以在终端输入相应的指令来控制飞机,然后再console和map里观察飞机的飞行状况
在MAVProxy的控制终端输入指令,让无人机起飞
输入:

mode  guided
arm throttle
takeoff 20

切换飞行:

mode  auto

可观察到,自主飞行到第一个点

上述指令解释:首先如果成功启动仿真环境后,若是选择的是旋翼无人机,此时无人机处于STABILIZE(自稳模式),此时只能通过模拟要控制输入的油门、横滚、偏航和俯仰来控制无人机,在此模式下仿真也经常会Crash&&TakeDown,炸机没商量。所以加载飞行计划之后,一般通过mode guided先切换到导引模式,在此模式解锁起飞,然后切换到自动模式完成飞行计划。

STABILIZE > mode guided
GUIDED > arm throttle
在这里插入图片描述

GUIDED > takeoff 40
在这里插入图片描述

GUIDED > mode auto
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开始降落
在这里插入图片描述
降落完毕锁定:
在这里插入图片描述
也可以在未到达最后一个点的时候,输入指令mode rtl使得RTL无人机自动返航
GUIDED > mode rtl

3、导入航点文件设置航点路线,在MAVProxy的控制终端输入指令,控制无人机起飞。

再打开一个终端窗口,快捷键:Ctrl+Alt+T,在这个终端里启动仿真:

cd ardupilot/ArduCopter
sim_vehicle.py --console --map

启动完成,我们导入刚才保存的航点文件看看运行效果。

wp load  ../Tools/autotest/planA.waypoints

导入后,地图上会显示出导入的航点路径
在这里插入图片描述
可以再输入:

mode  guided
arm throttle
takeoff 20

切换飞行:

mode  auto

可观察到,自主飞行到第一个点

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

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

相关文章

分布式锁的应用场景与分布式锁实现(二):基于Redis实现分布式锁

分布式锁的应用场景与分布式锁实现(一):传统锁处理并发及传统锁的问题 基于Redis实现分布式锁 所有代码已同步到GitCode:https://gitcode.net/ruozhuliufeng/distributed-project.git 基本实现 ​ 借助Redis中的命令setnx(key&a…

ES6-ES13学习笔记(5.0)

ES2022的函数 //findLast findLastIndex() ES2022 发现在电脑自带的联想浏览器不支持此函数,还报错了 对于ECMA的支持还和浏览器有关以及浏览器版本有关,然后我使用Google浏览器就可以正常使用, 1.扩展运算符:三个点... ..…

第一行代码 第十三章 高级技巧

第13章 高级技巧 全局获取Context的技巧 回想这么久以来我们所学的内容,你会发现有很多地方都需要用到Context,弹出Toast的时候需要,启动活动的时候需要,发送广播的时候需要,操作数据库的时候需要,使用通…

图解LeetCode链表题(中等)剖析

文章目录 💐文章导读💐1.合并零之间的结点解题思路 💐2.链表中最大孪生和解题思路 💐3.链表的随机节点解题思路 💐4.复杂链表的复制解题思路 💐5.两辆交换两表中的节点解题思路 💐文章导读 &…

关于python pycharm中输出的内容不全的解决办法

控制台输出: 解决方案: pandas 库 # 显示所有列 pd.set_option(display.max_columns, None) # 显示所有行 pd.set_option(display.max_rows, None) # 设置value的显示长度 pd.set_option(max_colwidth, 100) # 设置1000列时才换行 pd.set_option…

DataFrame/字典/列表之间的相互转换

DataFrame —> 字典 参考:pandas关于to_dict的使用_pandas to_dict_曼珠沙华Devil的博客-CSDN博客 pandas提供了 DataFrame.to_dict() 函数,将DataFrame类型转化为字典类型 DataFrame.to_dict(orientdict) # orient 可省略 对于写入的orient不同…

闭包基本知识汇总

闭包基本知识汇总 一、什么是闭包? 闭包是指有权限访问另一个函数作用域中的变量的函数,在Javascript中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成 “定义在一个函数内部的函数” 。所以,在本…

AI当道,元宇宙赛道是风口还是噱头?

一个新概念的诞生往往要经过无数次的锤炼,宛如一场漫长、深刻的头脑风暴。而发展到今天,处在风口之上,各行各业都急切往元宇宙概念靠拢,元宇宙已经与资本市场共舞。 伴随着全球多家行业巨头的布局以及元宇宙在游戏领域的率先落地…

c#快速入门(上)

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析2 目录 👉🏻 c#和c不同之处👉🏻程序文件的…

华为OD机试真题 Java 实现【简单的解压缩算法】【2023Q1 200分】,附详细解题思路

一、题目描述 现需要实现一种算法,能将一组压缩字符串还原成原始字符串,还原规则如下: 1、字符后面加数字N,表示重复字符N次。例如:压缩内容为A3,表示原始字符串为AAA。 2、花括号中的字符串加数字N&…

tcpdump 抓包工具详细图文教程(上)

目录 一、tcpdump 抓包工具的基本介绍和学习基础 1.1 常用的抓包工具 1.2 tcpdump 抓包工具介绍 二、tcpdump 抓包工具使用环境和初体验 2.1 编译安装 tcpdump 2.2 抓包 三、讲解 TCP 协议报文报头 四、tcpdump 抓包工具常规过滤规则 4.1 tcpdump 的 host 和 net 过…

Flutter 又一元老离职,感谢 Tim 这些年的付出

前天在 insiders 收到 Tim Sneath 的离职邮件时感觉很震惊,因为他绝对是 Flutter 团队的元老级人物,几乎每次一次 Flutter 版本发布和社区活动都有他的身影,可以说他是我的 Flutter 领路人之一。 Tim 是在 2017 加入 Flutter 团队&#xff0…

SpringCloud微服务踩坑系列:UnknownContentTypeException

错误信息如下: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.cyf.internalCommon.dto.ResponseResult] and content type [text/plain;charset…

使用WordPress提高企业敏捷性

喜欢WordPress的原因有很多:该平台非常适合内容管理以及控制预算。此外, 在 提高开发效率和简化项目管理方面,WordPress可以通过多种方式提供帮助。 对于任何企业业务,目标始终是在不影响质量的情况下更快地启动项目、发布修复和…

day3 -- select语句学习

文章目录 数据库和表的准备selectselect order byselect whereselect 高级过滤操作使用通配符进行过滤使用正则表达式进行搜索 数据库和表的准备 下载《mysql必知必会》提供的脚本用于创建样例表 cd /mnt/d/unix_dir wget https://forta.com/wp-content/uploads/books/067…

【Linux从入门到精通】进程的状态

当我们了解到进程是什么东西后,我们再来看看进程都会有那些状态。本篇文章会对进程的不同状态进行详解,希望会对你的理解有所帮助! 文章目录 一、了解进程的不同状态 二、详解进程的不同状态 2、1 R运行状态(running) …

开源赋能 普惠未来|中软国际寄语 2023 开放原子全球开源峰会

中软国际作为行业领先的全球化软件与信息技术服务企业及数字化转型服务商,近年来积极布局开源生态(OpenHarmony、openEuler)、智能云、ERP、AIGC、教育科技、智能车六大赛道,加速业务转型创新。 中软国际为开放原子开源基金会白金…

文字环绕图片效果实现

书接上回,我们来讲讲如何实现“文字环绕图片”的效果吧。整体预计实现的效果如下: 日常杂谈 我喜欢看动漫,接下来的所有博客都会和我日常生活结合在一起写,这样感觉会让自己的博客会有温度,我感觉每个人都应该有自己的…

最新喜讯|易知微入选2023数字孪生解决方案提供商TOP50

近日,互联网周刊发布《2023数字孪生解决方案提供商TOP50》,杭州易知微科技有限公司在榜。 中国科学院主管的《互联网周刊》,创刊于1998年,是中国最具公信力的杂志之一,其颁布的榜单极具权威性与专业度,对产…

基于非局部图注意力网络的鲁棒三维形状分类

文章目录 Robust 3D Shape Classification via Non-local Graph Attention Network摘要本文方法Global Structure Network (GSN)Global Relationship Network (GRN)Local Feature Learning based on MLP-STNetwork Channel Fusion ModuleGlobal descriptor 实验结果 Robust 3D …