当前位置: 首页 > 软件库 > 其他开源 > 开源硬件 >

ArduPilot/APM

开源自动导航系统
授权协议 GPL
开发语言 C/C++ Python HTML/CSS
所属分类 其他开源、 开源硬件
软件类型 开源软件
地区 不详
投 递 者 子车勇锐
操作系统 嵌入式
开源组织
适用人群 未知
 软件概览

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中文网

    • 认识Ardupilot线程 在了解过Ardupilot的链接库之后,是时候来认识一下Ardupilot是怎么处理线程了,对于从arduino继承过来的setup()/loop()架构,会让我们认为Ardupilot也是一个单线程系统,事实上并非如此 Ardupilot线程处理方式还是取决于控制板,例如APM1板、APM2板不支持多线程,需要配置定时器来实现定时回调,PX4板、Linux板支持POS

    • 最近开始学习ArduPilot/APM飞控的源码, 源码托管在github上。 源码链接:https://github.com/diydrones/ardupilot。 飞控主页:http://ardupilot.com/; 飞控的开发者官网网址为:http://dev.ardupilot.com/。 学习源码主要在开发者(developer)网页,官方提供了较为详细的代码编译和源码学习的教程,非

    • 1.afs_copter.cpp/afs_copter.h 高级失效保护 2.AP_Arming.cpp/AP_Arming.h 解锁 3.AP_Rally.cpp/AP_Rally.h 集结地 4.AP_State.cpp 状态转化 5.APM_Config_mavlink_hil.h/APM_Config.h 配置信息 6.ArduCopter.cpp 顶层逻辑文件 7.Attitude.cp

    • 基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第四篇)飞行特性 自动起飞 固定翼飞机可以自动发射多种类型的飞机。下面的说明将教你如何设置你的任务来支持自动起飞。 基本说明 自动起飞的基本思想是自动驾驶仪将油门设置为最大,并爬升到指定的高度。要使飞机执行起飞,请将NAV_TAKEOFF命令添加到您的任务中,通常作为第一个命令。这个命令有两个参数

    • ardupilot/Makefile MAKEFILE_LIST WAF_BINARY= …/modules/waf/waf-light WAF = python WAF_BINARY WAF_FLAGS EXPLICIT_COMMANDS=‘check’ ‘check-all’ ‘clean’ ‘list_boards’ VEHICLES = ‘copter’ ‘plane’ ‘rover’ ‘

    • 问题 Ardupilot 中遥控器怎样切换主模式? Ardupilot 中辅助通道如何设置? Ardupilot 中辅助通道和主通道如何切换? 代码位置 Ardupilot 中遥控器的相关代码位于,/ArduCopter/switches.cpp中。 整体功能 读取接收机信号。 可以兼容多种接收机信号,包括,PPM,PWM,UART等类型信号。 遥控器校准,采集校准参数,设置中位值。 设置遥控器正

    • 环境:win10下的Cygwin 目的:给pixhawk刷apm固件 问题: 根据官方教程,首先配置飞控板的型号(使用的是cubeblack) ./waf configure --board CubeBlack 然后编译固件并刷到飞控中 ./waf build --target examples/INS_generic --upload 发生错误: Missing configuration

     相关资料
    • ArduPilotMega(APM) 无人机控制系统   ArduPilotMega (APM) 是市面上最强大的基于惯性导航的开源自驾仪(并且是最便宜的之一!) 特性包括: 免费开源固件,支持飞机("ArduPlane"),多旋翼 (四旋翼, 六旋翼, 八旋翼等), 直升机("ArduCopter")和地面车辆("ArduRover")! 通过点击式的工具简单设置和上传固件。无须编程!(但是你想

    • 我刚开始使用NativeScript,不知道如何导航页面/视图。不幸的是,vue路由器似乎仍然不受支持,所以我正在考虑使用手动路由。但是,我在app\components中有多个vue组件,不想按照示例所示的方式将它们全部放在一个vue中。 我有这个在我的第一个页面浏览量: 但当我点击按钮时,我得到一条信息: 我注意到错误引用所需的页面作为javascript: PageB. js甚至认为不存在。

    • 描述 (Description) 导航栏可以隐藏/对于那些不需要导航条一些Ajax加载页面自动显示。 只要您使用的贯通型的布局是唯一有用的。 您需要添加no-navbar类加载的页面,并把一个空的导航条。 例子 (Example) 下面的例子自动隐藏导航栏,当你点击链接 - 创建文件navbar_hide_auto_about.html navbar_hide_auto_about.html <d

    • Dynamic Navbar is supported only in iOS Theme iOS7的好评特性之一是动态导航栏。当页面过渡时,导航栏元素会滑动渐变。 它只对穿透类型的布局有效 它应该在视图初始化时通过传递dynamicNavbar: true参数来启用 动态导航栏布局 动态导航栏和一般的导航栏是一样的,区别只在于,你可以对导航栏的组成部分(左、中、右)加入额外的类,来说明使用哪个过

    • 注:内容翻译自grpc-java首页的 Navigating Around the Source。 从高水平上看,类库有三个不同的层: Stub/桩, Channel/通道 & Transport/传输. Stub Stub层暴露给大多数开发者,并提供类型安全的绑定到正在适应(adapting)的数据模型/IDL/接口。gRPC带有一个protocol-buffer编译器的 插件用来从.proto

    • 导航模板数据源 数据源地址: admin/Nav/index 过滤器 keyword :可以按导航名称筛选导航 演示 不带过滤器: "vars": { "varName1": { "title": "导航", /*后台设置时 input 的 label*/ "value": "1", /*变量默认值*/ "type": "text", /*变