原文链接:http://ardupilot.org/dev/docs/building-ardupilot-onwindows10.html

翻译水平有限,如有错误请指出!

  在Windows上使用waf和Bash编译ArduPilot

警告:

  这个编译方法仅适用于Windows10 X64并且没有描述编译不推荐的给予Arduino的飞行控制器(APM1.x,2.x)。支持大多数使用者,但是你可能需要或者更喜欢备用的windows编译过程:http://ardupilot.org/dev/docs/building-px4-with-make.html

  微软有介绍WSL-the Windows Subsytem for Linux(Linux的Windows子系统)-对Win10.这个教程描写“在Windows上的Ubuntu的Bash”,因为他是目前唯一由WSL支持的发行版本。其他Linux版本比如Fedora,可能在未来可以使用然而将稍微需要不同的设置去编译ArduPilot。

警告:

  这个教程预期作为一个“复制粘贴”引导,只要按照这个步骤一步步来就好。

小窍门:

  网上有很多安装Linux的Windows子系统。这是一个例子:https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/

小窍门:

  随着Windows10更新的“秋季推送”从WSL到Windows的文件夹访问被破坏。貌似如果你把Ardupilot的源代码放到一个windows驱动下从WSL经过/mnt/<drive>文件夹编译,最终会有随机的包含(include)错误。为了成功编译源代码,你必须把源码放到一个本地的WSL文件系统下或者放到Windows下面共享它,并通过drvfs驱动程序挂载,如:

mount -t drvfs '\\127.0.0.1\ardupilot' /devel/ardupilot

  

  通过Windows10上的Ubuntu bash安装Ardupilot开发环境

  1.第一步,你必须将你的本地主机写入到/etc/hosts文件:

sudo nano /etc/hosts

  2.插入到第一行的下面:

127.0.0.1 "hostname"

  (“hostname”是指PC名称)

  3.然后使用root账户操作终端:

sudo passwd root
su root

  4.返回主目录

cd

  5.安装git:

sudo apt-get install git

  6.为将来的参考做一个新文件夹(可选):

mkdir GitHub
cd GitHub

  7.Clone ardupilot git

git clone https://github.com/ArduPilot/ardupilot.git

  8.当WSL的root路径下没有“opt”文件夹的时候创建一个新的文件夹:

sudo mkdir /opt

  9.运行 install-prereqs-ubuntu.sh 脚本:

./ardupilot/Tools/scripts/install-prereqs-ubuntu.sh

  10.我们同时需要安装一些外部工具,以便我们能够编译各种各样的Ardupilot目标:

cd

sudo add-apt-repository ppa:george-edison55/cmake-.x -y
sudo apt-get update
sudo apt-get install cmake sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.9 sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi=4.9..2015q3-1trusty1 sudo apt-get update
sudo apt-get upgrade

  编译ArduPilot源码

  1.“waf”是首选的Ardupilot编译工具,他在windows和Ubuntu Bash下性能优异。首先gitArdupilot软件:

cd
cd GitHub/ardupilot/

  2.使用下面的命令能够获得ArduPilot的支持板卡列表:

./waf list_boards

  3.设置你的板卡

./waf configure --board target

  (“target”可以是px4-v2,navio,pxf...从上述提到的支持板卡中选择)

  4.编译你的目标:

./waf vehicle

  (“vehicle”能够是 copter,plane,rover...)

  5.当你到了这里,你已经编译成功了!

笔记:

  已发布的WSL无法访问USB串行外设,因此waf中的上传选项无法通过USB工作。编译生成的二进制文件必须通过其他工具上传到你的飞控,比如使用MissionPlanner作为一个“自制固件”。如果你想要通过waf上传,在写USB串行访问时,只能在Windows子系统Linux版(WSL)的Windows内部版本中使用,这需要你加入Windows内部人员程序。https://insider.windows.com/GettingStarted 对于有网络连接的飞行器管理者,Linu targets,上传的功能描述如下:https://github.com/ArduPilot/ardupilot/blob/master/BUILD.md

小窍门:

  如果你想取消隐藏Windows系统上的Ubuntu系统文件夹,以管理员身份打开命令提示符,导航到Ubuntu系统路径(C:\Users\username\AppData\Local)并更改文件夹属性。所以(“username”是你的用户名):

cd C:\Users\username\AppData\Local
attrib -s -h lxss

  你可以建立一个快捷方式在你的桌面方便快捷导航到“lxss”。

  如果事情没有按照计划进行,你可能需要一些东西

sudo apt-get install python
git submodule update --recursive --init modules/uavcan
pip install future
pip install lxml
sudo apt-get install genromfs
sudo apt-get install unzip
sudo apt-get install zip
apt-get install python-empy

【译】Building ArduPilot on Windows with waf and Bash的更多相关文章

  1. Building OpenCascade on Windows with Visual Studio

    Building OpenCascade on Windows with Visual Studio eryar@163.com 摘要Abstract:详细说明OpenCascade的编译配置过程,希 ...

  2. 在Windows中运行Linux bash命令的几种方法

    如果你正在课程中正在学习 shell 脚本,那么需要使用 Linux 命令来练习命令和脚本. 你的学校实验室可能安装了 Linux,但是你自己没有安装了 Linux 的笔记本电脑,而是像其他人一样的 ...

  3. 译:重置/还原Windows IIs设置为默认设置

    译文出处:http://www.codeproject.com/Tips/870858/Reset-Restore-IIS-Settings-to-its-Default-in-Windo 简介: I ...

  4. Building Apps for Windows 10 on LattePanda–Jump Start

    1.引言 目前来看,LattePanda应该是最小的运行Full Windows 10系统的开发板了(注意,不是Windows 10 for Mobile,也不是Windows 10 IoT系列,而是 ...

  5. 在windows上编译chrome浏览器Building Chromium for Windows

    web端用webRTC实现的一对一视频,互动直播和会议.https://github.com/starrtc/android-demo Chromium requires Visual Studio ...

  6. Building Apps for Windows Phone 8.1教程下载地址整理

    官方教程地址http://channel9.msdn.com/Series/Building-Apps-for-Windows-Phone-8-1http://media.ch9.ms/ch9/8db ...

  7. Tips on Building WebRTC on Windows

    Problem: Git ask me to input git user and password Solution: Set environment variable SET DEPOT_TOOL ...

  8. Windows 10 运行原生Bash【Ubuntu】

    当前widnows用户的 AppData\Local\lxss 目录下安装了ubuntu,其中rootfs是和ubuntu安装的目录一致 bash进入的就是LINUX的SHELL,因此其二进制格式是E ...

  9. Windows下修改Git bash的HOME路径

    Windows中使用http://git-scm.com/安装Git bash工具,默认的HOME和~路径一般都是C:\Users\用户名,每次得用命令切换到常用的Repository下,此操作重复而 ...

随机推荐

  1. 康拓展开-排列的hash

    对于一个集合内所有元素的排列,康拓展开是一个无冲突的hash法.其规则便是将排列在逻辑上排好序,然后每个排列的序号即是hash值. 关键就在如何快速求出序号和快速还原啦. 首先我们确定一好集合内各元素 ...

  2. python中mysql数据库的操作-sqlalchemy

    MySQLdb支持python2.*,不支持3.* ,python3里面使用PyMySQL模块代替 python3里面如果有报错  django.core.exceptions.ImproperlyC ...

  3. mysql创建外键注意事项

    1,类型,长度相同,无符号 2,引擎必须为innodb 3,键名不能重复 关联动作 ON DELETE.ON UPDATE表示事件触发限制,可设参数: ① RESTRICT(限制外表中的外键改动,默认 ...

  4. Loadrunner加密算法脚本与token作为get请求url上的参数处理

    1.当字符串被封装好加密时(下例将算法封装在md5中),使用Loadrunner编写脚本,需要进行如下操作:       1)将md5.h文件添加到Extra Files 下,如图(Loadrunne ...

  5. Django框架(三)

    六.Django的视图层 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML ...

  6. MySQL字符串列与整数比较

    一.问题说明 为了简便在存储时我们经常将整型字段也以字符串形式存储(如id值),但在筛选比较时就需要将该字段转为数值类型. 二.处理办法 2.1 使用cast函数进行类型转换 cast函数格式---- ...

  7. linux c使用socket进行http 通信,并接收任意大小的http响应(一)

    如何进行http通信呢?我们打开任意一个浏览器,按F12,再选择网络,然后打开任意一个网站,我们就可以看到浏览器和网站通信的过程 如下图: 然后,我们任意点击一条记录,可以看到 然后,查找http协议 ...

  8. C#图解第七章:类和继承

    1.类继承 通过继承我们可以定义一个新类,新类纳入一个已经声明的类并进行扩展. 1.可以使用- 一个已经存在的类作为新类的基础..已存在的类称为基类(baseclass),新类称为派生类(derive ...

  9. hdu 6069 Counting Divisors(求因子的个数)

    Counting Divisors Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Oth ...

  10. python自动化运维os语法

    得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 递归查询指定路径下的所有文件和目录:os.walk() 函数 ...