开源自动导航系统 ArduPilot/APM

GPL
C/C++
嵌入式
2015-02-13
文洁洁洁

ArduPilot/APM是一款开源自动导航系统,支持多旋翼飞行器,传统直升机,固定翼飞机与传统直升机。源码由一个大型爱好者社区开发。

支持的导航板

目前,ArduPilot/APM支持如下自动导航板

  • PX4 – 一款32位基于ARM的自动导航仪,支持很多高级特性,使用NuttX实时操作系统

  • APM2 – 一款受欢迎的AVR2560 8位自动导航仪

  • APM1(已终止开发) – 一款基于AVR2560的自动导航仪,使用分离式结构

ArduPilot/APM源码基于AP-HAL硬件抽象层编写,使代码能支持更多自动导航板变为可能。请查看这篇博客文章获取关于迁移到AP-HAL的更多信息。

关键资源

为什么取这个名字?

ArduPilot的“Ardu”部分取自Arduino。最初APM1自动导航板是基于Arduino开发环境的。自从我们成长的比Arduino环境更快时,我们就不再使用Arduino运行库了。尽管我们仍然使用稍加修改的Arduino集成开发环境版本,来支持用于基于AVR的APM1与APM2板的ArduPilot。因为我们现在不仅支持Arduino兼容硬件(如PX4),为表示当前代码的跨平台特性,我们把“Ardu”前缀从软件项目取消,改为了“APM” 前缀(APM:Copter,APM:Plane,APM:Rover等)。

开发语言与工具

用于ArduPilot/APM的主要飞行代码使用C++编写。支持工具使用多语言编写,最常用的是python。

目前,主要载具代码编写为“.pde”文件,由Arduino构建系统得来。pde文件是预处理为.cpp文件构建的一部分。pde文件中包含的声明也能提供构建规则,说明需要包含与连接到哪些库。

地面站

ArduPilot/APM支持多种地面站用于计划与控制飞行。飞行固件使用MAVLink协议,它允许飞机被任何MAVLink兼容设备控制。

  • 使用最广泛的地面站就是Mission Planner,使用用于Windows的C#语言编写。Mission Planner的源码可以在github上查看。Mission Planner也能通过mono运行在Linux与MacOS上。

  • QGroundControl也是地面站的一个选择,使用C++的Qt库编写

  • 对于面相命令行与可编脚本地面站,你可以使用MAVProxy

  • 对于android平板,你可以使用ArdroPilot或者DroidPlanner

    文字来源:APM中文网

    加载中

    评论(1)

    暂无资讯

    暂无问答

    第二章——apm的代码库

    pixhawk开发学习,边学边吧看到的体会到的记在我的本本里

    2016/03/23 10:38
    94
    1
    第一章——apm简介

    pixhawk开发学习,边学边吧看到的体会到的记在我的本本里

    2016/03/23 10:24
    165
    2
    第二章第一节——介绍和软件架构

    第二章第一节——介绍和软件架构 飞控开发 基本架构。 ArduPilot的基本架构被分成5个主要部分:  vehicle directories。  AP_HAL。  libraries。  tools directories。  external...

    2016/03/23 11:10
    95
    1
    Raspberry PI 512M 入手

    此前在OSC看到有raspberry pi的介绍当时就挺感兴趣,只是那时候好像国内买不到而且还有漫长的货期。不过这次在E14网站上买了一块2.0新版加量不加价 512M。等了近20天终于入手了。 SD卡本来想...

    2012/11/22 10:25
    671
    0

    没有更多内容

    加载失败,请刷新页面

    没有更多内容

    返回顶部
    顶部