APM开发阅读

发布时间 - 2025-07-11 00:00:00    点击率:

我阅读apm的源码有两个主要目的:一是学习,了解飞控系统和大型项目的组织结构;二是为了移植的需要,满足项目需求。近年来,少儿编程市场非常火热,许多厂商推出了相关的产品,但这些产品大多使用空心杯电机,导致动力不足,且扩展性有限。许多任务需要io或图像识别的支持。

因此,我在考虑使用APM裁剪版的飞控系统,结合空心杯电机和树莓派Zero(或其他设备),利用ROS、Mavlink等技术组装一个无人机。这只是一个初步的想法,目前还没有可供参考的现成方案,我也在进行这方面的尝试。

这是一款F4的飞控,价格大约在一百元左右。

这是十元的电调。

这是小桨叶。

如果移植成功,实际上也可以使用更便宜的MCU,但我更希望利用现有的生态系统。我认为,一个三百多元的无刷无人机也可以用于少儿教育,将高性能引入这一领域是一件有趣的事情。

如果需要更便宜的方案,ESP8266+MPU6050+4个MOS管,总共也不到二十元。

APM可以使用make编译,也可以使用一个名为WAF的工具进行编译,实际上WAF只是一个Python包,并没有引入新的编程语言。

APM的代码只有对直升机的详细解释,四轴飞行器的部分没有详细说明,但也可以参考。

这是四轴飞行器相关的Copter代码。

这个架构图非常清晰,帮助理解整个系统的结构。

阅读源码不仅需要关注细节,更需要对整体有一个宏观的理解。

硬件部分包括PX4和Linux变形板。

由于任务多样性,引入了操作系统。

这是我们关注的飞行代码部分。

硬件抽象层共享库、传感器、EKF算法等特殊代码飞控系统会通过MAVLink协议发送大量信息,如电池电量、姿态等,这些信息可以传输给高层应用、地面站以及机载计算机。

这是对上述内容的一个总结。

这是对上层应用的描述。

目录中的这个文件列出了当前所有的依赖。

这个目录中的文件是所有顶层项目共有的。

这是核心库。

这是传感器相关的部分。

这是其他库。

这是编译命令的示例,首先切换到库的位置,然后编译并上传。

如果安装了MAVProxy,可以执行以下命令查看输出:

https://ardupilot.org/mavproxy/docs/getting_started/download_and_installation.html#mavproxy-downloadinstallwindows

这是安装MAVProxy的位置。

mavproxy.py --setup --master /dev/serial/by-id/usb-3D_Robotics_PX4_FMU_v2.x_0-if00

这是执行MAVProxy的命令,使用 --setup 选项将MAVProxy置于原始串口模式,而不是处理后的MAVLink模式。

cd $ARDUPILOT_HOME # the top-level of an AruPilot repository./waf configure --board sitl./waf build --target examples/RCProtocolDecoder

这是用于环*的命令,用于RC协议解码。

./build/sitl/examples/RCProtocolDecoder -M quad -C

这是开始运行的命令。


# linux  # python  # windows  # 操作系统  # 工具  # python包 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站页面设计需要考虑到这些问题  如何快速生成凡客建站的专业级图册?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  5种Android数据存储方式汇总  详解Android——蓝牙技术 带你实现终端间数据传输  Laravel storage目录权限问题_Laravel文件写入权限设置  JavaScript如何实现音频处理_Web Audio API如何工作?  高防服务器租用如何选择配置与防御等级?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  文字头像制作网站推荐软件,醒图能自动配文字吗?  Android使用GridView实现日历的简单功能  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何在 React 中条件性地遍历数组并渲染元素  详解jQuery中基本的动画方法  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  微信小程序 input输入框控件详解及实例(多种示例)  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  JavaScript如何实现倒计时_时间函数如何精确控制  Laravel如何集成Inertia.js与Vue/React?(安装配置)  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Android GridView 滑动条设置一直显示状态(推荐)  如何在IIS中新建站点并解决端口绑定冲突?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Python正则表达式进阶教程_复杂匹配与分组替换解析  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何快速辨别茅台真假?关键步骤解析  Linux系统命令中tree命令详解  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  php结合redis实现高并发下的抢购、秒杀功能的实例  微信小程序 wx.uploadFile无法上传解决办法  非常酷的网站设计制作软件,酷培ai教育官方网站?  iOS UIView常见属性方法小结  JavaScript数据类型有哪些_如何准确判断一个变量的类型  如何撰写建站申请书?关键要点有哪些?  EditPlus中的正则表达式 实战(1)  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  网站制作软件有哪些,制图软件有哪些?  如何用wdcp快速搭建高效网站?  如何自定义建站之星网站的导航菜单样式?  如何生成腾讯云建站专用兑换码?  音乐网站服务器如何优化API响应速度?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何在VPS电脑上快速搭建网站?