当前位置: 首页 > news >正文

【故事】无人机学习之旅

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

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

我在大三的时候,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源代码地址 后端代码&#xff1a…...

掌握网络抓取技术:利用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语言描述该程序流程&#xff1a; #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); }汇编语言&#xff1a; include irvine32.inc .data arr dword 11…...

在 CentOS 7 上安装 Redis

在 CentOS 7 上安装 Redis 可以通过几个简单的步骤完成。以下是一种常用的方法&#xff1a; 更新系统&#xff1a; 在安装任何新软件之前&#xff0c;最好先更新系统的软件包列表&#xff0c;以确保安装的软件版本是最新的。可以使用以下命令来更新&#xff1a; sudo yum up…...

『51单片机』蜂鸣器

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

计算机视觉 | 基于二值图像数字矩阵的距离变换算法

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本实验基于 OpenCV 实现了二值图像数字矩阵的距离变换算法。首先生成一个 480x480 的黑色背景图像&#xff08;定义黑色为0&#xff0c;白色为1&#xff09;&#xff0c;在其中随机选择了三个白色像素点作为距离变换的原点&…...

Arcgis windows webadaptor配置

注意windows下安装细节 1、电脑必须添加限定域名及dns后缀。 准备工作 a、安装webadaptor&#xff0c;获取jar文件 b、tomcat中部署两个jar&#xff0c;名字不相同&#xff0c;一个用server配置&#xff0c;一个用于portal配置 c、geoserver用来配置server d、geoscene用来配置…...

对接阿里云实时语音转文字的思路

将上述概念转化为详细代码需要一定的步骤。这里&#xff0c;我们将根据之前讨论的服务划分&#xff0c;创建一个简化的框架来模拟这个流程。注意&#xff0c;由于空间限制和简化目的&#xff0c;某些实现细节会被省略或简化&#xff0c;你可能需要根据实际情况进行调整。 1. 配…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...