【故事】无人机学习之旅

news2026/4/1 18:02:23

今天是清明假期最后一天,晚上在看无人机的东西,翻到了欣飞鸽的知乎主页,读了他的一些文章。虽不曾相识,但感觉我们有很多相似的经历,也想记录一下自己的无人机学习之旅。

青铜:从使用开源飞控开始

我在大三的时候,2019年吧,因为一个省级大创项目,开始接触无人机。当时要做多无人机的集群控制,还记得名字叫《仿昆虫趋光效应的集群无人机驱动方法》。现在想想真的是不知者无畏,那时啥都敢想敢做。大三立项,大四结题。当时买了三架无人机,买的是开源飞控,那时Pixhawk2.4.8只要两百多,真便宜。第一架飞机组装起来,330的机架,第一次这么大的飞机,不敢飞,五花大绑在凳子上,解锁让螺旋桨转起来。记得那天晚上,去了实验室背后,也是食堂门口的空地起飞,毫无意外地炸机了,还好不严重。

大四保研,刚好去了研究生的学校,跟一个师兄说了我的飞机情况,他带我去飞。我一直以为飞机有问题,跟他说很难飞,但是,他竟然把飞机飞起来了,虽然有点难控制,但还是安全起飞与着陆。后面我自己也飞过,但是炸机是常见的事。还有当时买的最便宜的电调,XXD的,10多块钱一个,便宜的东西的唯一优点就是便宜吧,动不动就烧了。前些天我在bilibili上看见一个道友的飞机还用那电调,仍不住吐槽一下电调质量。回到飞飞机上,飞的多了,也逐渐有感觉了,至少完成飞起来这一门槛。

最后项目要到deadline了,大约是2020年5月份吧。我感觉没有达到预期,我跟指导老师说了下情况。没想到指导老师说已经做的很好了。让我整理下资料,可以提交结题了。现在想想,那时真的做得很好了,至少对于一个本科生,单枪匹马做完这么多事,已经尽力了。那时候我真的飞起来过三架无人机了,在自己的电脑端开了三个putty终端,连接三架飞机的树莓派,让三架飞机都能同时起飞。由于使用自己的手机热点,连接不是很稳定,有时候某一架总是连不上飞不起来。想想很多研究生得毕设,或许都没有真的让三架飞机自动飞起来吧。

白银:代码期

后面研究生,到了教研室之后,开始正式写飞控。刚开始画电路板,写传感器驱动,写互补滤波,写PID,然后调PID。这个阶段用的时间远比我预期的多得多。我本以为三个月就可以解决的问题,没想到一年后都没有得到完全的解决。不过飞机还是从最初的完全飞不起来,到摇摇晃晃喝醉了一样,到最终的有一个较为稳定的效果。这时候主要完成了姿态控制。研究生第一年课程还是比较多的,特别是第一学期,因此能完全花在飞控上的时间也不多。当时最羡慕研二研三的师兄师姐了,不用上课,只用做想做的事。

第二年开始,没有课程,可以放开做了。不过现在想想,好像没有什么印象特别深刻的事情,应该主要是添加了位置控制。添加位置控制的难度也比我想象的大很多。当时我以为回了姿态估计与姿态控制,做位置估计和位置控制应该很类似。但是遇见了很多新的问题,有新的传感器GPS与相机,得加对应的驱动。算法也不断优化,使用卡尔曼滤波。

第二年,我跟老师说在项目中应用自己的飞控,不用之前一直在用的PX4。由于老师不太懂技术,也对我很信任,这个想法也就很快落地。现在想想自己当时还是不知者无畏。当时飞控功能不够完善,很多也是在项目中根据需求添加。补充一句,这个项目我走的时候还没结题,后面又换回PX4飞控了。很多事,就是这样,来来回回,非人力所能及。

第二年下半年,就开始找工作,如愿以偿的去了一家无人公司,也就是当前所在公司。

第三年,除了项目上一些事,毕业设计也是大事。当时本来只想做四旋翼的,但是又感觉没什么创新。加上自己之前的一些想法,最终变成《四足四旋翼机器人》。没错,就是加了四条腿,用舵机做的关节。这个创意曾经忽悠过不少人,拿了一个机器人创新的国二奖项,8k奖金,当时也算不少。由于连锁效应,后面又得到两个学校奖学金,1.2w左右吧。

不过话说回来,这个东西当我毕设,是个坑。一是舵机做关节,实在太拉了。又买不起贵的电机,毕竟要真做机械狗那样的关节,估计得几万甚至几十万的成本。二是以前只做四旋翼,现在做这种机器人,理论差异挺大的。不过无论怎样,最终还是做出了个能够看得过去的东西。它真的能动能走能飞,达到毕业水平绰绰有余。不过距离我的预期还是挺远,因此我也很少真正的快乐满意过。

现在想想,做四足还是有些不值的,毕竟四旋翼里还有很多东西没弄懂。

第三年,也从模型的角度对无人机下手了。到毕业前,我最大的目标是建立一个精确的无人机模型。但是这个模型需要很多专业的设备,本来是寄希望于去公司做的。但是公司也没有这样的设备。

经历了三年的学习,我本以为自己已经对四旋翼有较为深刻的理解。记得一次打电话和我弟说,我觉得自己在这个领域应该在前20%的行列了,现在想想,可能还是有失偏颇。不过即使20%的价值也不大,差不多能去前20%的无人机公司,还是去不了最好的公司。前20%和10%还是云泥之别,就像斗罗大陆,前期段位升得很快,后期每升一级都难如登天。

黄金:算法实现期

毕业后,开始工作。在嵌入式,导航算法,控制算法间选择了最喜欢的一个方向——控制算法。工作了9个月,还是在不断成长的阶段。

先写到这儿,以后再来补充——

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

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

相关文章

2024年安卓轮播图代码+定时翻页(全网代码最少实现)

2024年安卓轮播图代码定时翻页 asda 这里是Fragment子类的继承如果使用 AppCompatActivity请修改一下很简单的如果又看不懂的话可以访问使用我的gpt:https://0.00000.work/ 免费3.5的 直接吧代码扔给他然后和他说帮忙解释一下每一行作用 Integer[] data{R.drawab…

Nexpose v6.6.245 for Linux Windows - 漏洞扫描

Nexpose v6.6.245 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, Release Apr 03, 2024 请访问原文链接:Nexpose v6.6.245 for Linux & Windows - 漏洞扫描,查看最新版。原创作品,转载请保留出处。 作者主页&…

JVM字节码与类的加载——class文件结构

文章目录 1、概述1.1、class文件的跨平台性1.2、编译器分类1.3、透过字节码指令看代码细节 2、虚拟机的基石:class文件2.1、字节码指令2.2、解读字节码方式 3、class文件结构3.1、魔数:class文件的标识3.2、class文件版本号3.3、常量池:存放所…

Vue笔记 2

数据代理 数据代理:通过一个对象代理对另一个对象中属性的操作(读/写) let obj{x:100} let obj2{y:200} Object.defineProperty(obj2,x,{get(){return obj.x},set(value){obj.x value} })Vue中的数据代理 Vue中的数据代理: 通…

cesium 添加动态波纹效果 圆形扩散效果 波纹材质

一、扩展材质 /*** 水波纹扩散材质* param {*} options* param {String} options.color 颜色* param {Number} options.duration 持续时间 毫秒* param {Number} options.count 波浪数量* param {Number} options.gradient 渐变曲率*/function CircleWaveMaterialProperty(opt…

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-回铃音补偿

文章目录 前言联系我们解决问题操作步骤 前言 回铃音: 当别人打电话给你时,你的电话响铃了,而他听到的声音叫做回铃音。回铃音是被叫方向主叫方传送,也是彩铃功能的基础。我们平时打电话听到的“嘟 嘟 嘟 嘟”的声音,就…

Golang | Leetcode Golang题解之第20题有效的括号

题目&#xff1a; 题解&#xff1a; func isValid(s string) bool {n : len(s)if n % 2 1 {return false}pairs : map[byte]byte{): (,]: [,}: {,}stack : []byte{}for i : 0; i < n; i {if pairs[s[i]] > 0 {if len(stack) 0 || stack[len(stack)-1] ! pairs[s[i]] {…

白盒测试-条件覆盖

​ 条件覆盖是指运行代码进行测试时&#xff0c;程序中所有判断语句中的条件取值为真值为假的情况都被覆盖到&#xff0c;即每个判断语句的所有条件取真值和假值的情况都至少被经历过一次。 ​ 条件覆盖率的计算方法为&#xff1a;测试时覆盖到的条件语句真、假情况的总数 / 程…

期货学习笔记-MACD指标学习2

MACD底背离把握买入多单的技巧 底背离的概念及特征 底背离指的是MACD指标与价格低点之间的对比关系&#xff0c;这里需要明白的是MACD指标的涨跌动能和价格形态衰竭形态之间的关系&#xff0c;如果市场价格创新低而出现衰竭形态同时也有底背离形态的出现&#xff0c;此时下跌…

2024认证杯数学建模A题思路模型代码

目录 2024认证杯数学建模A题思路模型代码&#xff1a;4.11开赛后第一时间更更新&#xff0c;获取见文末名片 2023年认证杯数学建模 2024年认证杯思路代码获取见此 2024认证杯数学建模A题思路模型代码&#xff1a;4.11开赛后第一时间更更新&#xff0c;获取见文末名片 2023年认…

关于AI发展的3种声音:杨植麟 朱啸虎 王小川

1、杨植麟&#xff1a;技术信仰派 2、朱啸虎&#xff1a;市场信仰派 3、王小川&#xff1a;中间派 References 对话月之暗面杨植麟&#xff1a;向延绵而未知的雪山前进朱啸虎讲了一个中国现实主义AIGC故事王小川想提出中国AGI第三种可能性

【C 数据结构】线性表

文章目录 【 1. 线性表 】【 2. 顺序存储结构、链式存储结构 】【 3. 前驱、后继 】 【 1. 线性表 】 线性表&#xff0c;全名为线性存储结构&#xff0c;线性表结构存储的数据往往是可以依次排列的&#xff08;不考虑数值大小顺序&#xff09;。 例如&#xff0c;存储类似 {1…

Golang快速入门教程(一)

目录 一、环境搭建 1.windows安装 2.linux安装 3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 7.输入 三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符…

RN使用蓝牙扫描

我项目需要用到蓝牙模块,蓝牙扫描到设备并且获取到电量显示到页面上,因此我做了如下demo,使用了react-native-ble-plx这个插件 点击进入官方文档官方文档 1.安卓环境配置(ios暂定,还没做ios,不过下面的方法是兼容的,自行配置ios权限) android/app/src/main/AndroidManifest.xml…

API管理平台:你用的到底是哪个?

Apifox是不开源的&#xff0c;在github的项目只是readme文件&#xff0c;私有化需要付费。当然saas版目前是免费使用的。 一、Swagger 为了让Swagger界面更加美观&#xff0c;有一些项目可以帮助你实现这一目标。以下是一些流行的项目&#xff0c;它们提供了增强的UI和额外的功…

代码签名证书:确保软件安全与可信性的关键工具

在数字化时代&#xff0c;软件已成为各行各业的核心驱动力。然而&#xff0c;随着网络威胁日益复杂&#xff0c;用户对于软件来源的可靠性、内容的完整性和发布者的可信度提出了更高要求。为满足这一需求&#xff0c;代码签名证书应运而生&#xff0c;它通过先进的加密技术&…

【SpringBoot】-- mapstruct进行类型转换时Converter实现类不能自动生成代码问题解决

问题描述 我的问题如下&#xff1a; 应该在红色区域生成对应的转换细节&#xff0c;但是这里只返回了一个空对象 问题解决 加入lombok-mapstruct-binding依赖,也要注意依赖引用顺序问题 <dependency><groupId>org.projectlombok</groupId><artifactId&…

【智能优化算法详解】粒子群算法PSO量子粒子群算法QPSO

1.粒子群算法PSO 博主言简意赅总结-算法思想&#xff1a;大方向下个体自学习探索群体交流共享 对比适应度找到最优点 背景 粒子群算法&#xff0c;也称粒子群优化算法或鸟群觅食算法&#xff08;Particle Swarm Optimization&#xff09;&#xff0c; 缩写为 PSO。粒子群…

小白部署springboot+vue网站到服务器踩坑总结【维护更新篇】

目录 前言如何更新前端nginx安装和启动言归正传&#xff0c;更新前端 如何更新后端杀死进程 前言 在上一篇文章里详细介绍了怎样部署一个前后端分离的网站&#xff0c;链接: 链接在此 但是部署完之后&#xff0c;在本地的开发更新后&#xff0c;重新上传到服务器上又遇到了一些…

mybatis(5)参数处理+语句查询

参数处理&#xff0b;语句查询 1、简单单个参数2、Map参数3、实体类参数4、多参数5、Param注解6、语句查询6.1 返回一个实体类对象6.2 返回多个实体类对象 List<>6.3 返回一个Map对象6.4 返回多个Map对象 List<Map>6.5 返回一个大Map6.6 结果映射6.6.1 使用resultM…