Mission Planner编译

软件下载:

本文使用VS2013进行编译和修改Mission Planner,其他版本没有尝试过。首先下载Mission Planner源码。

https://github.com/diydrones/MissionPlanner

同时声明本文是翻译APM官方论坛的文章,和尝试的结果。还有因为是开源的项目本身比较活跃,版本很多,这里不保证可以一定编译成功。英文原文地址:

http://dev.ardupilot.com/wiki/buildin-mission-planner/

在编译之前请务必下载好最新的mission planner到C盘下,因为官方文档说一些dll库在项目文件里面没有,推荐安装.msi后缀的安装板软件。

http://ardupilot.com/downloads/?did=82

点击橘黄色的Download下载按钮即可。本文成于这是2016年3月的版本,供大家参考。Mission Planner具有非常复杂的库包含关系,不推荐概念模糊就改编代码。这里列出了你需要的基本技能:

具备C#编程技术与相关经验(至少有C++相关经验)

具有微软VS开发环境相关经验。MP不是学习VS的入门应用。

具有Windows的API(应用程序接口),包括理解数据流、进程、线程等相关知识。

VS的相关支持,C#编程相关以及Windows API相关技术可能不会从DIY Drones社区获得。你需要从其他资源获得帮助与支持。

编译环境搭建:

第一步安装Visual Studio 2013,并且保证在Windows系统中能够正常运行。

下载并安装MS Visual Studio 2013

重启电脑

从开始按钮中运行Visual Studio

当安装完成后,尝试改变Mission Planner之前先使用一个简单的“Hello World”例子测试一下你安装的软件能否正常使用。

通过下载并运行 DirectX End-User Runtime Web Installer,完成DirectX的安装。

从Github中得到源代码

Mission Planner源代码储存在Github网站上。你可以遵循之前如何获取ardupilot飞行代码的介绍在

https://github.com/diydrones/MissionPlanner

代码库中获取得到Mission Planner源代码。打开项目,在Mission Planner中找到Ardupilot.sln 用VS打开项目:

图1.1

这时候如果直接编译可能会出现如下问题:

图1.2

要修改下配置,如果真的那么顺利,就没天理了.....那么步骤如下:

工程设置:

运行Visual Studio

点击 文件 >> 打开 >> 工程 / 解决方案

导航到Mission Planner文件夹,选择Ardupilot.sln 文件打开。

Visual Studio应该打开包含有Mission Planner和其他一些相关引用(如“3DR Radio”, “Updater”等)的相关解决方案(solution),可以在“解决方案”资源管理器面板看到(上图黄色高亮区域)

设置“Solution Configuration”为“Debug”或者“Release”(可在工具菜单下找到相关命令)

设置“Solution Platforms”为“x86″

在“解决方案”管理器面板中,在Mission Planner项右击选择属性,在Signing(签名)选型卡中取消选中“Sign the ClickOnce manifests”(为ClickOnce清单签名),不要点勾选。

   
                                                      图1.2 取消清单签名!

Mission Planner有如下几个工程项目组成,你可以通过在解决方案面板中打开“Mission Planner”和“Libs”文件夹看到。

MissionPlanner (主代码)

AviFile

BaseClasses

BSE.Windows.Forms

Core

GeoUtility

GMap.Net.Core

GMap.Net.WindowsForms

KMLib

MAVLink

MetaDataExtractor

MissionPlanner.Comms

MissionPlanner.Controls

MissionPlanner.Utils

px4uploader

SharpKml

ZedGraph

批量编译Mission Planner工程文件:

在生成里面找到批生成。

选择Build >> Batch Build…(生成 >> 批生成),“Select All”(全选),然后点击“Rebuild”(重新生成)。第一次尝试编译Mission Planner时可能会出现一些错误,所以多尝试几次。这是候可能会编译成功。

图1.3批量生成

关于错误的解决:

如果一些错误仍然存在,那么试着使用下面这些方法:

对于缺失dlls相关的错误:

解决方案面板中,在MissionPlanner工程上右击选择属性,参考引用路径:在文件选择窗口,选择已经安装的Mission Planner文件目录,其可能为: C:\Program Files (x86)\Mission Planner 或者 C:\Program Files\Mission Planner,根据你的MP的安装路径

点击添加文件夹按钮,然后将已安装的Mission Planner文件目录输入到参考目录框中。

点击(选择)编译事件。移除所有预编译pre-build和编译后(Post build)选项。

点击 (选择)编译。

对于缺失索引相关错误,可以查看每个列出的错误对应的工程名。然后选择相应工程的属性,和之前一样添加已安装版Mission Planner安装目录。这样应该可以减少此类错误。如果在工程BSE.Windows.Forms中遇到类似“..could not locate the Code Analysis tool at”。你可以在BSE.Windows.Forms属性选项中的Code Analysis通过取消勾选代码分析选型来解决。

解决编译错误时一些有用的帮助:

在VS中,当你进行编译或者预编译一个解决方案时,选择菜单项[BUILD] [Configuration Manager],将会显示出每次哪个项目将被编译。

选择编译那些未被选中的项目: (例如 3DRRadio, Updater, wix)

选择 [Build], [Clean Solution] 然后 [Build], [Rebuild solution].

所有的工程应该都可以被正确编译.

当编译中没有错误发生时,那么你就可以准备开始浏览并编辑源代码了。

图1.3这是编译成功的样子

想必编译Mission Planner的人,都想修改MP的框架,或者增加新的功能。但是MP的框架确实比较复杂,对C#要有一定的开发经验。MP的例程下面提供了一个SimpleExample简单的例程我们可以首先编译这个例程来上手MP的地面站的开发。

图1.4 SimpleExample运行

“SimpleExample”方案作为一个微型应用,用来说明一个C#程序如何与载具连接,并且控制它解锁与上锁。这个简单的例子与完整的Mission Planner相比具有更少的依赖性,因此编译工作相当容易理解。

首先,从Visual Studio的 File >> Open >> Project/Solution 中打开Solution面板。然后在MissionPlanner代码目录选择ExtLibs/SimpleExample.sln

选择 Build >> Build Solution 选项,确保程序能够成功的被编译。

完成上述工作后,接下来第一步先要检查能够正常连接到你的飞行控制板,并且使用已安装的Mission Planner软件能够正常解锁,然后断开常规的Mission Planner,点击“Start”按钮使用debug模式运行程序。当面板“Florm1”弹出后,选择正确的COM端口和波特率(一般115200),点击“Connect”按钮。如果连接成功,点击“Arm/Disarm”按钮尝试解锁你的APM控制板。

点击连接之后,会有一些参数打印出来,就是解析MAVLINK协议到软件上显示出来,这个例程的构架相对简单,如果直接贸然修改MP的内容,不容易入手。这边的控制板是下载的APM巡航车的固件,不用考虑板卡解锁的问题,因为APM的巡航车的固件在室内可以解锁,所以连接上以后,控制台会有数据更新。

可以先研究MAVLINK的协议了,编译的文章到一段落,后续我们会更具MAVLINK协议来完成一个简单的地面站。

更多内容请参考:http://www.amovauto.com  阿木社区

QQ群:526221258

时间: 2024-11-07 00:40:45

Mission Planner编译的相关文章

Mission PLanner地面站构架分析之MAVLINK航点读写

转载请注明出处:http://www.amovauto.com 阿木社区 玩也要玩的专业! 3DR这个地面站还是非常专业的,最近研究MAVLINK通信协议,就来分析下Mission planner的构架.至于Msission planner的编译在前面几篇文章已经做了详细描述. Msission planner有几十个工程项目组成 AviFile BaseClasses BSE.Windows.Forms Core GeoUtility GMap.Net.Core GMap.Net.Window

转载:Pixhawk源码笔记九:添加新的飞行模式

转自:新浪长沙@WalkAnt 第十部分 添加新的飞行模式 英文参考:http://dev.ardupilot.com/wiki/apmcopter-adding-a-new-flight-mode/ 本节源自:http://liung.github.io/blog/apm/2014-09-05-APM-ArduCopter添加新的飞行模式.html 这部分将涵盖一些怎样创建一个新的高级别的飞行模式的基本操作步骤(类似于自稳,悬停等),这些新模式处于“the onion”(洋葱头工程)中的高级别

Mavlink - 无人机通讯协议

http://qgroundcontrol.org/mavlink/start mavlink协议介绍https://pixhawk.ethz.ch/mavlink/ 消息简介 MAVLink简介 Mavlink协议最早由 苏黎世联邦理工学院 计算机视觉与几何实验组 的 Lorenz Meier于2009年发布,并遵循LGPL开源协议.Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议,主要应用在微型飞行器(micro aerial vehicle)的通讯上.Mavlink是为小型飞

无人机开发之一:Pixhawk与Arduino简述

1. Pixhawk发展历史 发展历程:APM-->PX4FMU/IO-->Pixhawk: 1.1. Arduino简介 Arduino就是主要以以AVR单片机为核心控制器的单片机应用开发板(当然也有其他核心的例如STM32版本的但是不是官方的,还有intel的伽利略),或者是学习板啥的,Arduino开发人员开发了简单的函数,还有许多应用库,这样就不用直接去操作寄存器了,使得没有很好的单片机基础的人员也可以使用Arduino做出自己想要的东西.Arduino的开发人员还开发了一个简洁的ID

转载:Pixhawk源码笔记八:添加新的参数

转载:新浪@WalkAnt 第九部分 添加新的参数 英文参考:http://dev.ardupilot.com/wiki/code-overview-adding-a-new-parameter/ 本节源自:http://liung.github.io/blog/apm/2014-09-02-APM-添加新的参数.html 1 在主执行代码中添加参数         第一步:         Step #1: 在文件Parameters.h参数类中的枚举变量(enum)的合适位置,像下面代码块最

APM2.8 Rover 自动巡航车设计(固件安装和设置)

1.2 APM2.8软件安装与固件下载 下载Mission Planner这个地面基站软件,这里介绍的是windoews平台下的,在MAC或者linux下可以使用QGroundCont基于QT编写的地面站软件,他们大部分功能是一样的. 安装好了Mission Planner1.3.3,建议使用安装版的MissionPlanner,也就是msi后缀名的,这样可以自动安装驱动,免去手动安装的麻烦.用USB线连接你的APM2.5到你的PC,选择正确的COM口,确保串口波特率是115200(具体咨询商家

关于apm飞控烧bootloader

最近一直由于学校大创申请的的四轴,一直在做这玩意,哎,无奈这货实在不像想象的那样简单,自己写了N久飞控,也没把飞机飞起来,只能先用开源的apm飞控练练手呗,备份下apm烧bootloader的方法,以备查用! 原文地址:http://bbs.diywrj.com/thread-21628-1-1.html 所需工具材料: 1.一个AVRusbasp编程器以及相应的烧写软件,推荐progisp1.72 2.AVR的USB自编程软件Flip,下载链接http://www.atmel.com/tool

Dronecode Project:无人机的开源平台

两个月前,Linux Foundation 联合 12 家技术公司推出了Dronecode Project,意在整合分散的无人机项目资源,从而创造一个共同共享的无人机开源平台,为无人机开发者们提供操作系统.导航工具.飞行控制等方面的大量开源代码. Dronecode的创始成员:3D Robotics, Baidu, Box, DroneDeploy, Intel, jDrones, Laser Navigation, Qualcomm, SkyWard, Squadrone System, Wa

APM四轴组装调试记录

我们计划周末下几个周末野外吃火锅,并且进行航拍,吃着火锅开着飞机唱着歌.这里就组装一台可以航拍的四轴飞行器做一个记录: 阿木社区 http://www.amovauto.com/?p=631 QQ群:526221258 器件选择机架:因为450的机架携带不方便,而250的穿越机太小不方便采用运动相机,所以我们采用一体成型的机架,外观是经典的大疆精灵2 ,如果要说是山寨精灵2,那我也没有办法,F450机架电线裸露在外面实在受不了,打算好好上漆喷涂,做一个帅气的四轴.如图: 图1.1 经典外壳套件