飞控学习随记

news2024/11/28 8:49:13

常见指令

编译Arduplane程序

cd ardupilot/
./waf plane	

进入 Tools/autotest 文件夹中,启动3D flightgear

./fg_quad_view.sh 

进入ArduPLane文件夹中,启动仿真

sim_vehicle.py --map --console -L KSFO

(-L 选择起飞位置)
解锁arm throttle
起飞takeoff 50

下载航点

wp load ../Tools/autotest/Generic_Missions/CMAC-circuit.txt
wp list

多机仿真

sim_vehicle.py --map --console -I 0 has FDM in/out ports of 9002/9003 / GCS connection UDP:14550 --sysid=1 
sim_vehicle.py --map --console -I 1 has FDM in/out ports of 9012/9013 / GCS connection UDP:14560 --sysid=2
sim_vehicle.py --map --console -I 2 has FDM in/out ports of 9022/9023 / GCS connection UDP:14570 --sysid=3
sim_vehicle.py --map --console -I 3 has FDM in/out ports of 9024/9025 / GCS connection UDP:14580 --sysid=4

或者
(注意无人机设定序号从0开始,实际序号从1开始)

sim_vehicle.py -v ArduPlane -n 3 --auto-sysid --mcast --console --map
sim_vehicle.py -v ArduPlane -n 4 --auto-sysid -i "0 1 2 3" --mcast --console --map

分别对无人机进行设置
更多参数设置可以参考Tools/autotest/sim_vehicle.py代码,或者启动仿真后,输入help查看命令帮助
所有命令如下:

accelcal        : do 3D accelerometer calibration
accelcalsimple  : do simple accelerometer calibration
adsb            : adsb control
ahrstrim        : do AHRS trim
alias           : command aliases
alllinks        : send command on all links
alt             : show altitude information
arm             : arm motors #解锁油门
attitude        : attitude
auxopt          : select option for aux switches on CH7 and CH8 (ArduCopter only)
bat             : show battery information
batreset        : reset battery remaining
calpress        : calibrate pressure sensors
camctrlmsg      : camctrlmsg
cammsg          : cammsg
cammsg_old      : cammsg_old
canforward      : enable CAN forwarding
capabilities    : fetch autopilot capabilities
changealt       : change target altitude
changealt_abs   : change target absolute altitude
click           : set click location
command_int     : execute mavlink command_int
compassmot      : do compass/motor interference calibration
console         : console module
corrupt_params  : corrupt param storage
devid           : show device names from parameter IDs
dfu_boot        : boot into DFU mode
disarm          : disarm motors
engine          : engine
fence           : geo-fence management
flashbootloader : flash bootloader (dangerous)
forcecal        : force calibration save
formatsdcard    : format SD card
ftp             : file transfer
gethome         : get HOME_POSITION
ground          : do a ground start
guided          : fly to a clicked location on map
gyrocal         : do gyro calibration
hardfault_autopilot : hardfault autopilot
internalerror_autopilot : cause internal error in autopilot
land            : auto land
layout          : window layout management
led             : control board LED
level           : set level on a multicopter
link            : link control
lockup_autopilot : lockup autopilot
log             : log file handling
long            : execute mavlink long command
longloop_autopilot : cause long loop in autopilot
magcal          : magcal
magresetofs     : reset offsets for all compasses
magsetfield     : set expected mag field by field
map             : map control
mode            : mode change
module          : module commands
motortest       : motortest commands
namedvaluefloat : send a NAMED_VALUE_FLOAT
oreoled         : control OreoLEDs
output          : output control
panic_autopilot : panic autopilot
parachute       : parachute
param           : parameter handling
pause           : pause AUTO/GUIDED modes
playtune        : play tune remotely
position        : position
posvel          : posvel
rally           : rally point control
rc              : RC input control
rcbind          : bind RC receiver
reboot          : reboot autopilot
relay           : relay commands
repeat          : repeat a command at regular intervals
reset           : reopen the connection to the MAVLink master
resume          : resume AUTO/GUIDED modes
script          : run a script of MAVProxy commands
scripting       : control onboard scripting
servo           : servo commands
set             : mavproxy settings
setorigin       : set global origin
setspeed        : do_change_speed
setup           : go into setup mode
setyaw          : condition_yaw
shell           : run shell command
signing         : signing control
status          : show status
switch          : flight mode switch control
takeoff         : takeoff
terrain         : terrain control
time            : show autopilot time
tuneopt         : Select option for Tune Pot on Channel 6 (quadcopter only)
up              : adjust pitch trim by up to 5 degrees
vehicle         : vehicle control
velocity        : velocity
version         : fetch autopilot version
watch           : watch a MAVLink pattern
wipe_parameters : wipe autopilot parameters
wp              : waypoint management
vehicle 1

增加自定义模式

增加replan模式,并在执行完auto模式后自动切换到此模式

  • mode.h
    增加模式编号
    在这里插入图片描述
    定义类,内容先仿照guided模式,后续进行修改
    在这里插入图片描述

  • Plane.h中添加ModeReplan replan;
    在这里插入图片描述

  • Control_modes.cpp中添加
    在这里插入图片描述

  • events.cpp
    在这里插入图片描述
    在这里插入图片描述

  • GCS_Mavlink.cpp
    [外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnimg.cn-4f8uV32c43faa14dd9af0faa6ba9ab.png132)(https://imug-blog.csdnimg.cn/cd4f8343faa14dd9af0faa6efba1a94b.png)]

  • GCS_Plane.cpp
    在这里插入图片描述

发送总航点数和已完成航点数到Mavproxy

参考代码

const float wp_dist = current_loc.get_distance(flex_next_WP_loc);
    if (wp_dist <= acceptance_distance_m) {
        gcs().send_text(MAV_SEVERITY_INFO, "Reached waypoint #%i dist %um",
                          (unsigned)mission.get_current_nav_cmd().index,
                          (unsigned)current_loc.get_distance(flex_next_WP_loc));
        return true;
	}

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

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

相关文章

字节女测试工程师万字总结的软件测试入门技巧

成为一个优秀的测试工程师需要具备哪些知识和经验&#xff1f; 针对这个问题&#xff0c;可以直接拆分以下三个小问题来详细说明&#xff1a; 1、优秀软件测试工程师的标准是什么&#xff1f; 2、一个合格的测试工程师需要具备哪些专业知识&#xff1f; 3、一个合格的测试工程…

前端vue项目部署到生产环境(包括nginx安装及配置)

一.vue3项目打包 vue3项目 使用vue-cli创建的&#xff0c;使用npm run build打包到dist 二.在服务器上安装nginx 1.去nginx的官网下载windows版本的nginx&#xff0c;下载地址&#xff1a;nginx: download 最好安装稳定版&#xff0c;下载完成后解压nginx压缩包&#xff1a…

Android Studio实现数独小游戏,休闲益智

文章目录一、项目概述二、开发环境三、详细设计3.1 界面设计3.2 逻辑设计四、运行演示一、项目概述 数独是一种逻辑解谜游戏&#xff0c;它规则稍复杂&#xff0c;解题过程富有挑战性。本次安卓数独小游戏&#xff0c;主页面有继续游戏、新游戏、关于和退出四个功能&#xff0…

【实训项目】教师工作量管理系统(超级详细)

目录 一、需求与分析 1. 项目概述 1.1 教师信息处理 1.2 教师工作量数据处理&#xff1a; 1.3 教师综合信息输出 2. 需求分析 3. 模块设计 3.1 功能模块 3.2 所有功能模块的流程图 二、设计与实现 1. 程序设计 1.1 教师工作量管理系统 1.2 登录系统 1.3 主函数…

初级算法之字符串

344. 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 思路一: 从中间开始向两边遍历,然后两边交换位置,最终获得字符串的反转 // class Solution {public void reverseString(char[] s) {int len s.length,siz…

二、JavaScript——Hello World

1. 创建文件 提前在本地新建好文件夹用于存储项目代码&#xff0c;再通过VSode打开指定存储代码的指定文件夹&#xff0c;并新建HelloWorld.html文件 HelloWorld.html文件新建成功之后&#xff0c;输入“&#xff01;”点击自动生成标签 自动生成的标签如下&#xff1a; <!…

02Golang执行流程简介

Golang执行流程简介Golang执行流程的分析两种流程的方式区别什么是编译什么是运行Go程序开发注意事项Golang执行流程的分析 如果是对源码编译后&#xff0c;再执行&#xff0c;go的执行流程如下 如果对源码直接执行go run源码&#xff0c;go的执行流程如下 两种流程的方式区…

副业想做自媒体可以选择什么领域,适合宝妈的三个自媒体领域推荐

大家好&#xff0c;我是蝶衣王的小编&#xff0c;今天说说自媒体可以选择的领域 在过去的两年里&#xff0c;最受欢迎的职业之一必须属于自媒体。无论是全职还是副业&#xff0c;每个人都可以这样做。许多人经常在互联网上看到&#xff0c;通过自媒体&#xff0c;月收入数千或…

【汽车电子】can报文和can database(candbc)

1.can就是controller area network&#xff0c;是面向汽车的通信协议&#xff0c;通俗来讲就是在汽车电子控制领域中的不同部分进行通信的&#xff08;传输数据&#xff09;。 2.can报文有标准帧和扩展帧两种&#xff0c;也就是can和canfd&#xff0c;canfd是can的升级版&…

vscode git拉下来后LF CRLF问题

点击这里可以更改红色报错&#xff0c; windows下默认是CRLF, 类unix下LF 若CRLF数量非常多&#xff0c;解决方法&#xff1a; vscode 1. 在设置里Eol 选\n 2. 在根路径.editorconfig 里end_of_line lf 以上都不生效 可以有两种解决方案&#xff1a; 一. 下载插件EditorCo…

linux系统中如何挂载数据盘

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 前言 作为一个开发人员&#xff0c;和服务器打交道是必不可少的&#xff0c;当然要和运维相比的话还是差点儿。 但是&#xff0c;在公司&#xff0c;作为一个程序员&#xff0c;难免会遇…

微电网优化调度|基于多目标粒子群算法的微电网优化调度【风、光、储能、柴油机、电网交互燃汽轮机】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f389;作者研究&#xff1a;&#x1f3c5;&#x1f3c5;&#x1f3c5;本科计算机专业&#xff0c;研究生电气学硕…

(十三)Vue之监测数据改变的原理

文章目录监测数据改变的原理之对象vue.set的使用监测数据改变的原理之数组Vue学习目录 上一篇&#xff1a;&#xff08;十二&#xff09;Vue之列表渲染 先看一个需求&#xff1a;使用列表渲染出一组数据&#xff0c;然后点击按钮更新其中一个信息 <!--准备好一个容器--&…

微服务中统一日志-ELK

微服务中统一日志-ELK一.简介1.介绍2.流程3.要求4.下载地址二.安装Elasticsearch1.创建文件存放目录2.进入目录3.下载4.解压5.修改配置5.1.介绍5.2.系统配置5.3修改es配置5.4启动&#xff0c;测试三.安装Kibana1.进入目录2.下载3.解压4.修改配置4.1介绍4.2修改kibana配置4.3启动…

面试八股-JVM

1.Java代码编译过程 准备过程&#xff1a;初始化插入式注解处理器解析与填充符号表过程 词法、语法分析&#xff0c;将字符流转为标记集合&#xff0c;构造抽象语法树填充符号表&#xff0c;产生符号地址和符号信息 插入式注解处理器的注解处理分析与字节码生成过程 标注检查&…

描述统计 | 学习笔记

一.导论 统计学是通过收集&#xff0c;整理&#xff0c;分析&#xff0c;描述数据等手段&#xff0c;以达到推断所测对象的本质&#xff0c;甚至预测对象未来的一门综合性科学。其目的是探索数据的内在数量规律性&#xff0c;以达到对客观事物的科学认识 统计的本业是消化数据…

java语言【#107. 七的奇倍数】(已通过)

题目描述 ​ 如果一个数既是 7 的倍数又不能被 2 整除&#xff0c;那么我们称之为七的奇倍数。 ​ 输入一个正整数 n&#xff0c;判断它是否是 7 的奇倍数。 输入 ​ 输入一个正整数 n &#xff08;0≤n≤100&#xff09; 输出 ​ 如果 n 是 7 的奇倍数 输出 YES 否则输出 NO…

校园二手市场开题报告范文

目录 一、课题意义&#xff08;包括课题的理论意义和现实意义&#xff09; &#xff08;一&#xff09;理论意义 &#xff08;二&#xff09;现实意义 二、文献综述&#xff08;包括&#xff1a;1.理论的渊源及演进过程2.国内外对本课题的研究现状和有待解决的问题3.本人对所…

适合rv1109+rv1126使用基于RKmedia的人脸和车牌识别的SDK及使用介绍说明

基于RKmedia开发的人脸识别和车牌识别SDK简介及使用 一、功能简介 SDK下载&#xff1a;https://download.csdn.net/download/DeepLearning_/87272848 人脸检测&识别 对于人脸部分&#xff0c;SDK 提供了以下能力&#xff1a; 1. 人脸检测 1.1 人脸是否带口罩判定 1.2…

路由器的安装方法步骤

路由器的安装和设置如下&#xff1a; 1.首先连接线路&#xff0c;可以参考下图 2.线路连接完毕后&#xff0c;打开浏览器输入路由器的管理地址和管理密码然后进入路由器后台&#xff08;具体路由器的登录地址和登录密码可以参考说明书或者是路由器背面的标签&#xff09; 3.…