四轴__程序_学习_apm(px4__ardupoilot__apm_)(1).docVIP

四轴__程序_学习_apm(px4__ardupoilot__apm_)(1).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四旋翼飞行器搭建教程 (译自————加里斯.欧文 ) 本文将带你通过建立自己的飞行控制器(飞空软件),同时教你工作的具体细节。这些信息很难找到,特别是那些本身就不是航天工程师的人!就我个人而言,我用了六个月,因为我花费了太多的时间查找bug和调试bug,但通过这篇文章你可以短期收获同样的经验。我会教你避开陷阱,这样你就不会像我一样浪费时间。 第一个关键是你对硬件的选择。我选择从零开始建立自己系统,在这一阶段的时候我都不知道RC(remote controlled 遥控; radio coding 无线电编码; )和飞行器是如何飞行的,这是一个巨大错误。开始我以为,通过自行购买附加电路,芯片和传感器能省很多钱,结果最终我花了一大笔钱!放过自己吧,直接去购买ardupilot 2.5控制板,组装你的直升机,了解遥控,了解飞行原理,然后回到这里。这个板子本质上是只是一个连有一些传感器Arduino(开源主控板,可查/view/1268436.htm?fr=aladdin),和我们将在这篇文章介绍的程序——我们自己编写的。你得将所有东西连接起来,你的四旋翼飞机才能得飞:当然你也得会用优秀的arducopter软件。 本项目(ardupilot)由3D Robotics 提供赞助,这意味着他们销售所设计的硬件获利,并将所得利润回馈社区。该软硬件是完全开源的,所有人可以免费复制下载。你可以直接从他们那里购买,或者从Hobbyking (named HKPilot) and RCTimer (named ArduFlyer).购买相同的拷贝件。 在这篇文章中,我将假定您有ardupilot硬件——其本质上上是附传感器Arduino。如果你选择忽视我的建议,并且建立自己的硬件,或使用Arduino电路板,那么您需要更换的底层代码(HAL库)。我也会以为你在X配置(x型四旋翼),+ / X(两种四旋翼配置)和六/八 旋翼飞行器之间切换(只是不同的电机的组合),配置的改变不会让它在本文有任何实质性的区别。理想的情况是,你已经飞行过加载了arducopter代码的四旋翼,因此你应该将电机连接如下所示的位置和旋转方向。 我也要假设你有一些arduino的经验,或至少是C / C + +的经验。Arduino库不是特别智能的或适合,所以我们将使用一些更加合适的的ardupilot库。然而,我们会尽量少使用、最小幅度的使用,以提供DIY式解决方案的支持(这就是为什么你在这里毕竟)。我们将要使用的第一和主要库是ardupilot硬件抽象层(HAL)库。这个库试图隐藏了底层的区别,例如你如何读取和写入引脚和其它一些东西——其优势是,软件可移植到新的硬件,只需更换硬件抽象层。在ardupilot的情况下,有两个硬件平台,APM和PX4,每一个都有自己的底层库允许ardupilot代码运行。如果您稍后决定在Raspberry Pi上运行你的代码,你只需要改变硬件层代码。 硬件层是由如下几个部分组成: RCInput无线输入——阅读RC无线电rc input -。 RCOutput无线输出——用于控制电动机和其它输出rcoutput -。 Scheduler计划表——运行特定的任务在固定时间间隔调度程序-。 console控制台——提供访问串行端口。 I2C,SPI——总线驱动程序(用于连接传感器小电路板网络) GPIO —— 一般目的的输入/输出——允许直接访问Arduino引脚,但是在我们的案例中,主要的发光二极管 如何下载:你需要下载Arduino的IDE ardupilot版。还需要将库文件放在你的延伸文件夹中。还要确保你选择你的板类型像Arduino的菜单这样: Reading the Radio Inputs 读取无线电输入 我们的飞行控制系统要读取无线电输入信号(飞行指令),测量四旋翼的实时的姿态(偏航/俯仰/滚动),改变电机的转速——以适应四旋翼按照我们所期望的方式飞行。所以让我们开始通过无线电开始学习。 RC接收机有几个输出,有好几个通道(或称为棒/开关/旋钮)。无线电输出的50Hz脉冲,这个脉冲的宽度是由无线电发射机的摇杆位置决定的。通常情况下,脉冲持续1000us到2000us长并有18000us到19000us的间隙,所以表示0的油门 会产生一个1000us的脉冲,表示完全的油门 则有2000us长。可悲的是,大多数的接收机是不准确的,我们通常要测量每个杆位的最小或最大值脉冲宽度(这我们接下来将要做的)。 Ardupilot的底层库,为我们做了测量这些脉冲宽度的痛苦工作。如果你自己编写这些代码,你需要中断其他工作并用定时器来测量无线电信号——ana

您可能关注的文档

文档评论(0)

jiayou10 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档