ArduPilot简介
源码地址:https://github.com/ArduPilot/ardupilot/
参考:http://ardupilot.org/dev/docs/learning-the-ardupilot-codebase.html
基本结构
分为五个部分:
1.vehicle code
2.shared libraries
3.hardware abstraction layer (AP_HAL)
4.tools directories
5.external support code (i.e. mavlink, dronekit)
vehicle code
在最顶层目录,包含四种固件:Plane,Copter,APMrover2和AntennaTracker。他们之间有很多相似的地方
AP_HAL硬件抽象层
所在目录\libraries\AP_HAL_XXX。可移植到不同的平台。其中AP_HAL定了其他代码通用的接口
external support code外部支持代码
PX4NuttX:the core NuttX RTOS used on Pixhawk boards(NuttX RTOS实时操作系统)
PX4Firmware:the base PX4 middleware and drivers used on Pixhawk boards(PX4的中间件和驱动程序)
uavcan:the uavcan CANBUS implementation used in ArduPilot(can总线)
mavlink:the mavlink protocol and code generator(mavlink协议)
ArduPilot简介的更多相关文章
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
随机推荐
- 深入学习c++--多线程编程(一)
1. 简介 2. 线程使用 2.1 demo #include <iostream> #include <thread> #include <future> usi ...
- Spring cloud微服务安全实战-5-5实现授权码认证流程(1)
目前为止已经完成了完整的用户逻辑 目前的问题是,用户在登陆的时候,用户名提交的是给前端服务器的.每个前端服务器的开发人员都可能接触到前端的用户名密码. 每一个客户端应用都要去处理登陆的逻辑,一单我的登 ...
- DateUtil 提供一些常用的时间想法的方法
package com.opslab.util; import java.text.ParseException;import java.text.SimpleDateFormat;import ja ...
- 安卓 android studio 报错 Could not find com.android.tools.build:gradle:3.2.1.
报错截图如下: 解决方法:在project的builde.gradle做如下操作分别加上google()
- python初级 1 内存和变量
一.回顾: 1.什么是程序 一堆指令的集合 2.回想一下猜数游戏程序的特征: 1)需要输入(input) 2)会处理输入(process) 3)产生输出(output) 二.程序的一般特征:输入.处理 ...
- (二十三)IDEA 构建一个springboot工程,以及可能遇到的问题
一.下载安装intellij IEDA 需要破解 二.创建springboot工程 其他步骤省略,创建好的工程结构如下图: 三.配置springoboot工程 3.1 如上图src/main目录下只有 ...
- 把总数amount拆分以标准差最小的标准,平均拆分成count个整数
public function tt_add(){ $res = $,); echo array_sum($res); echo '----' . count($res); dump($res); e ...
- idea能用下划线替换红色报错吗?我色弱,用idea简直太痛苦了
看看下图的idea,如果某个类的包路径没有引进来,使用颜色来提示,这对于色弱的程序员简直是一种折磨,有没有可以改成eclipse的那种报错提示方式? 个人感觉idea真的没有eclipse友好,也许是 ...
- 【opencv】opencv函数isContinuous
isContinuous 参考 1. opencv_isContinuous; 完
- 解释张量及TF的一些API
张量的定义 张量(Tensor)理论是数学的一个分支学科,在力学中有重要应用.张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具.张 ...