登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
二手市场
外包服务
模飞软件
硬件设备
飞行体验
学院
云课堂
问答
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
资源
素材
下载
企业
无人机论坛
»
论坛
›
无人机DIY专区
›
地面站
›
MissionPlanner
›
采用VisualStudio编译开源地面站Mission Planner ...
返回列表
发新帖
查看:
822
|
回复:
0
采用VisualStudio编译开源地面站Mission Planner
[复制链接]
daza110
daza110
当前离线
积分
1627
窥视卡
雷达卡
28
主题
821
帖子
1627
积分
金牌飞友
金牌飞友, 积分 1627, 距离下一级还需 1373 积分
金牌飞友, 积分 1627, 距离下一级还需 1373 积分
积分
1627
飞币
804
注册时间
2017-8-31
发消息
发表于 2022-11-15 21:25:30
|
显示全部楼层
|
阅读模式
采用VisualStudio编译Mission Planner
BY 学APM挂科被导员批评的大二学生
卢伟 张子健
本文是对对应wiki的补充说明,请结合wiki使用。
wiki地址为:
http://www.ardupilot.org/dev/docs/buildin-mission-planner.html
这里有一个对应的中文翻译网址,可以结合使用
http://www.mamicode.com/info-detail-1252653.html
WalkAnt大神的一篇博客,也可以大概参考
《采用Visual Studio编译MissionPlanner方法与问题总结》
http://blog.sina.com.cn/s/blog_402c071e0102v4kx.html
编译环境
我个人的安装环境:
Win7 sp1+git + VS2015+.net4
前期准备
安装最新的MP到你电脑中,但很可能你已经安装了MP,但不是最新版,貌似也是可以的,可以不用卸载。为什么要安装MP?wiki里说一些dll库在GIT项目文件里面没有,需要用安装好的MP软件里的。
安装Visual Studio 2015Community Edition版,我安装的是enterprise版,也成功了,所以如果你安装的是非Community Edition版本,先别卸载。
安装DirectX(这个我前期就安装了,不知道不安装是否会有影响)。在线安装版完整安装包:
http://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe
安装python 2.7,地址wiki上有。
通过git下载MP源码
git clone https://github.com/ArduPilot/MissionPlanner
这里就不多说了,wiki上都有,我把MP源码下载到了C:\GIT中,如下图所示。
编译前的声明
Mission Planner具有非常复杂的库包含关系,不推荐概念模糊就改编代码。这里列出了你需要的基本技能:
具备C#编程技术与相关经验(至少有C++相关经验)
具有微软VS开发环境相关经验。MP不是学习VS的入门应用。
具有Windows的API(应用程序接口),包括理解数据流、进程、线程等相关知识。
你可能不会从DIY Drones社区获得VS的相关支持、C#编程相关以及Windows API相关技术。你需要从其他资源获得帮助与支持。
编译
在VS2015中打开MP源码
具体参考wiki。
打开项目,在Mission Planner中找到Mission Planner.sln用VS打开项目
按下图设置
如下图所示,在“解决方案”管理器面板中,在Mission Planner项右击选择最后一项“属性”,在Signing(签名)选型卡中取消选中“Sign the ClickOnce manifests”(为ClickOnce清单签名),不要点勾选(取消对勾)。
然后按照下图取消对勾。
MP中的项目组成
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里面找到批生成。选择Build >> Batch Build…(生成>>批生成),
然后弹出下列框,“SelectAll”(全选),然后点击“Rebuild”(重新生成)。
第一次尝试编译Mission Planner时可能会出现一些错误,所以多尝试几次。这时候可能会编译成功(多尝试一两次就行了,错误一般不会自动消失的)。
如果一些错误仍然存在,那么试着使用下面这些方法:
消除错误
对于缺失dlls相关的错误:
解决方案面板中,在MissionPlanner工程上右击选择属性,参考引用路径:在文件选择窗口,选择已经安装的Mission Planner文件目录,其可能为: C:\Program Files (x86)\Mission Planner 或者 C:\Program Files\Mission Planner,根据你的MP的安装路径
点击添加文件夹按钮,然后将已安装的Mission Planner文件目录输入到参考目录框中。
点击(选择)编译事件。移除所有预编译pre-build和编译后(Post build)选项。
点击 (选择)编译。
对于缺失索引相关错误
可以查看每个列出的错误对应的工程名。然后选择相应工程的属性,和之前一样添加已安装版Mission Planner安装目录。这样应该可以减少此类错误。
现在应该可以编译成功了
解决编译错误时一些有用的帮助
清除已经编译好的MP:
选择 [Build], [Clean Solution] 然后 [Build], [Rebuild solution].
所有的工程应该都必须正确编译没有一个错误.
当编译中没有错误发生时,那么你就可以准备开始浏览并编辑源代码了。
编译成功
按照wiki最后第一次调试到0个错误,但是有1000多个警告,这样子是正常,已经算是编译成功了。
不过不妨按照wiki的方案再次编译一次,先Build->Clean Solution,再Build->Rebuild Solution,这样会清空之前编译好的文件夹中的内容并重新编译
被清空
编译完会发现警告已经由1000多个变为20个了,少了很多。
编译成功后,我们肯定想找到生成的MP.exe打开看看,如下图所示,打开对应的文件夹。
我们按照上图的输出路径打Debug看看吧,如下图。
直接点击MP.exe即可打开,打开后MP连接上PIXHAWK,界面如下图所示。
说明编译成功,可以使用了。
建立简单的例子
想必编译Mission Planner的人,都想修改MP的框架,或者增加新的功能。但是MP的框架确实比较复杂,对C#要有一定的开发经验。MP的例程下面提供了一个SimpleExample简单的例程我们可以首先编译这个例程来上手MP的地面站的开发。
往期推荐阅读往期热文(点击文章标题即可直接阅读):
新品发布 | 翔仪•明珠飞控无人机培训专用版
深入一线巡检作业现场,致导科技攻关业内难题
案例分享|如何利用无人机快速定位气体污染源
一台设备搞定发动机测试
八一八:今年看似凉凉的无人机产业需要什么“钱”?
警用安防无人机发展亟待提升综合战斗力
DARPA将无人机带入“狗斗”,实现视距范围内的“AI”空战
多旋翼无人机在战术后勤中的应用分析
打造更专业的无人机动力测试系统
visualstudio
,
地面站
,
地面
,
编译
,
采用
相关帖子
•
【航拓学堂】无人机飞控与地面站(1)——Mission Planner地面站简介及操作
•
无人机手持地面站软件功能详解,无人机手持地面站软件开发人员组成及成本分析
•
教程F4v3s和F4V3SPLUS飞控INAV地面站怎么设置?手感FPV
•
空客推出 CityAirbus NextGen eVTOL 全尺寸原型机,四座,2吨,翼展12米,航程80公里,采用八旋翼布局,尾翼上两个旋翼起推进作用
•
如何在Mission Planner地面站中加载飞控日志?
•
Qt无人机地面站设计与制作视频教程
•
华越无人机商学院【地面站题库】无人机界的“五年高考三年模拟”来了~
•
无人机手持地面站软件功能详解,无人机手持地面站软件开发人员组成及成本...
•
全新体验丨忆伯科技手提式无人机远程识别地面站概览
•
调查地面站:地面站成为看门狗军团的中枢
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表