【故事】无人机学习之旅
今天是清明假期最后一天,晚上在看无人机的东西,翻到了欣飞鸽的知乎主页,读了他的一些文章。虽不曾相识,但感觉我们有很多相似的经历,也想记录一下自己的无人机学习之旅。
青铜:从使用开源飞控开始
我在大三的时候,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个月,还是在不断成长的阶段。
先写到这儿,以后再来补充——
相关文章:
【故事】无人机学习之旅
今天是清明假期最后一天,晚上在看无人机的东西,翻到了欣飞鸽的知乎主页,读了他的一些文章。虽不曾相识,但感觉我们有很多相似的经历,也想记录一下自己的无人机学习之旅。 青铜:从使用开源飞控开始 我在大…...
torch.mean()的使用方法
对一个三维数组的每一维度进行操作 1,dim0 a torch.Tensor([0, 1, 2, 3, 4, 5,6,7]).view(2, 2, 2) print(a) mean torch.mean(a, 0) print(mean, mean.shape) 输出结果: tensor([[[0., 1.], [2., 3.]], [[4., 5.], [6., 7.]]]) tensor([[2., …...

windows安装Redis,Mongo,ES并快速基本掌握开发流程
前言 这里只是一些安装后的基础操作,后期会学习更加深入的操作 基础操作 前言RedisRedis启动idea集成Redisjedis技术 Mongodbwindows版Mongodb的安装idea整合Mongodb ES(Elasticsearch)ESwindows下载ES文档操作idea整合ES低级别ES整合高级别ES整合 Redis Redis是…...

ruoyi-nbcio-plus基于vue3的flowable的自定义业务提交申请组件的升级修改
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码:…...

掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
引言 在信息时代的浪潮下,人们对于获取和分析海量网络数据的需求与日俱增。网络抓取技术作为满足这一需求的关键工具,正在成为越来越多开发者的首选。而Perl语言,以其卓越的文本处理能力和灵活的特性,脱颖而出,成为了…...

典型新能源汽车热管理系统方案分析
目前行业具有代表性的热管理系统有PTC电加热方案、热泵方案(特斯拉八通阀热泵、吉利直接式热泵)、威马的柴油加热方案以及以理想为代表的插电式混动车方案。 小鹏P7整车热管理方案分析(PTC电加热方案) 小鹏P7作为小鹏汽车的第2款…...

使用Docker部署开源项目FreeGPT35来免费调用ChatGPT3.5 API
Vercel部署FreeGPT35有严重限制,玩玩就好,真用还是得docker。 限制原因: Vercel的流式响应并不是一开始写流,客户端就能立刻收到响应流,而是先写到一个缓冲区,当流关闭才一股脑的流式响应回来(不是实时流) 因此导致: …...
《Linux运维实战:Kylin V10操作系统开启安装软件保留缓存设置》
总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:Linux运维实战总结 一、操作步骤 1、改系统/etc/yum.conf配置文件,开启安装软件保留缓存设置 [rootecs-90c2-0003 ~]# vim /etc/yum.…...

视频生成技术:从GAN到Latte
GANs Diffusion Model...

机器学习中的激活函数
激活函数存在的意义: 激活函数决定了某个神经元是否被激活,当这个神经元接收到的信息是有用或无用的时候,激活函数决定了对这个神经元接收到的信息是留下还是抛弃。如果不加激活函数,神经元仅仅做线性变换,那么该神经网…...

LinuxAndroid: 旋转编码器input输入事件适配(旋转输入)
rk3588s: 旋转编码器input输入事件适配 基于Android 12 kernel-5.10版本 参考文档: https://blog.csdn.net/szembed/article/details/131551950 Linux 输入设备调试详解(零基础开发)Rotary_Encoder旋转编码器驱动 通用GPIO为例 挂载input输…...

机器学习和深度学习-- 李宏毅(笔记与个人理解)Day10
Day 10 Genaral GUidance training Loss 不够的case Loss on Testing data over fitting 为什么over fitting 留到下下周哦~~ 期待 solve CNN卷积神经网络 Bias-Conplexiy Trade off cross Validation how to split? N-fold Cross Validation mismatch 这节课总体听下来比较…...
perl 交叉编译
前言 Perl是一种高级、通用、解释型、动态的编程语言。Perl设计的初衷是为了更好地处理文本处理任务,但随着时间的发展,现在它已经变成了一种强大的一般目的编程语言。Perl支持面向过程和面向对象的编程风格。 Perl的特点: 强大的字符串处…...
浅谈.版本管理工具
定义: 版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。 特点: 1、方便用于管理多人协同开发项目 2、并行开发,可实现跨区…...

【汇编语言实战】已知10个整数求最大值
C语言描述该程序流程: #include <stdio.h> int main() {int a[]{11,33,23,54,12,51,2,4,34,45};int maxa[0];for(int i1;i<9;i){if(a[i]>max){maxa[i];}}printf("%d",max); }汇编语言: include irvine32.inc .data arr dword 11…...
在 CentOS 7 上安装 Redis
在 CentOS 7 上安装 Redis 可以通过几个简单的步骤完成。以下是一种常用的方法: 更新系统: 在安装任何新软件之前,最好先更新系统的软件包列表,以确保安装的软件版本是最新的。可以使用以下命令来更新: sudo yum up…...

『51单片机』蜂鸣器
🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

计算机视觉 | 基于二值图像数字矩阵的距离变换算法
Hi,大家好,我是半亩花海。本实验基于 OpenCV 实现了二值图像数字矩阵的距离变换算法。首先生成一个 480x480 的黑色背景图像(定义黑色为0,白色为1),在其中随机选择了三个白色像素点作为距离变换的原点&…...
Arcgis windows webadaptor配置
注意windows下安装细节 1、电脑必须添加限定域名及dns后缀。 准备工作 a、安装webadaptor,获取jar文件 b、tomcat中部署两个jar,名字不相同,一个用server配置,一个用于portal配置 c、geoserver用来配置server d、geoscene用来配置…...
对接阿里云实时语音转文字的思路
将上述概念转化为详细代码需要一定的步骤。这里,我们将根据之前讨论的服务划分,创建一个简化的框架来模拟这个流程。注意,由于空间限制和简化目的,某些实现细节会被省略或简化,你可能需要根据实际情况进行调整。 1. 配…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...