5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
楼主: axnzero
打印 上一主题 下一主题

APM看上去不错,尝试做一套

  [复制链接]
261
 楼主| 发表于 2013-4-12 07:48 | 只看该作者
点击查看详情
本帖最后由 axnzero 于 2013-4-17 16:54 编辑

这个软件目前没有使用第三方控件。
所用到的控件就是二楼提到的那些,都是来自微软VC6自带的控件或类库。

做的过程中感觉:
1,仪表做漂亮比较难
2,地图做稳定比较难
3,通讯做完整比较难
4,系统功能函数调度规划做得有条理比较难
5,操作界面做得能够适应于大大小小的分辨率和宽窄比例比较难

欢迎继续阅读楼主其他信息

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
262
发表于 2013-4-12 10:17 | 只看该作者
1,仪表做漂亮比较难
2,地图做稳定比较难
3,通讯做完整比较难
4,系统功能函数调度规划做得有条理比较难
5,操作界面做得能够适应于大大小小的分辨率和宽窄比例比较难

1、仪表漂亮与否我觉得不重要,你要有机会看看专业无人机的界面就知道了,简单粗糙的多的是。关键在于功能实现和可靠性。不过话说回来,大家都喜欢漂亮的东西,比如说妹纸一类的。gdi做界面,速度够快,但是存在锯齿问题。gdi+做界面,可以反锯齿,但是速度慢得要死,除非能够接受4、5帧的刷新速率。这个问题恐怕只能用directX或者是OpenGL来解决,但使用这两个东西在总体设计商会复杂一点。

2、地图有多种形式,看你采用什么的。最简单的方法,整一块区域的地图,在四个角和中间六个点建立经纬度和像素坐标的对应关系,OK。中间有一点是要注意下经纬度坐标和站心坐标的转换关系。
如果使用切片地图,那么多线程恐怕是不可少的,中间有些麻烦是要小心对待。
使用MapX的矢量地图也可以,而且不存在坐标被偏移的问题,地图工具也比较多,但是就是比较笨重,实时性比较差
我这前面还有一单位提出必须用arcgis地图,额,arcgis是什么,好吃吗?arcgis自身就比较复杂,搞明白不容易。

3、通讯?mavlink已经比较完善了,就是灵活性和扩展性差点。

4,5、这个和总体设计有关,应该可以解决。
263
发表于 2013-4-12 12:12 | 只看该作者
楼主你好 技术宅拯救世界!对你做的软件很感兴趣  下 载准备看看的  结果出现这个  我是小白 勿喷 力挺
264
 楼主| 发表于 2013-4-12 18:30 | 只看该作者
楼上你好。
我也发现了这个问题。
是因为串口控件的注册问题。

265
 楼主| 发表于 2013-4-12 18:31 | 只看该作者
1,        软件安装与注册。
软件无需安装,直接解压缩即可运行。对某些未曾注册过串口通讯OCX控件的电脑来说,需要打开“注册”文件夹,双击REG.BAT批处理文件即可自动完成注册。注册仅需一次,注册完毕之后,即可直接运行软件。
本软件使用离线方式的瓦片格式地图。在软件文件夹内的Map文件夹中,有少量地图,仅有最小比例尺的三级地图文件。更多的地图,可以使用APM Planner或其他第三方软件下 载。在APM Planner软件中,缺省的地图文件存在下列文件夹:
C:\Program Files (x86)\APM Planner\gmapcache\TileDBv3\en\GoogleSatellite或者
C:\Program Files\APM Planner\gmapcache\TileDBv3\en\GoogleSatellite
本软件直接调用这些瓦片图,因此,需要哪块区域、哪种比例的地图,就用APM Planner软件先去浏览一次。相应图片就会自动下 载,并存储在相应文件夹。然后在本软件设定相应文件夹位置,即可离线地访问地图。通常,100M的文件可以满足基本的使用。粗略估计,全国全图可能会在1T左右。
这种方式的缺点是有点麻烦,需要借助APM Planner或其他软件。
优点是,地面站软件内部干净,不含任何外部插件,安全性好,系统运行效率高。


2, 用户界面简介:
软件界面主要分为四个区域:
1. 题头2. 飞行数据3. 综合显示和控制4. 地图

题头显示内容从左向右,依次是:
1,        软件名称
2,        版本
3,        数传通道
4,        飞行器类型
5,        飞控类型
6,        系统代号
7,        部件代号
8,        通讯协议版本
9,        数据帧刷新率
10        数据帧串号(0~255滚动循环)
飞行数据区从上到下,从左向右的显示内容依次是:
1,航向
2,系统电压、系统电流、系统温度、原点方位角、数传信号强度、到原点的距离
3,空速、模拟显示的陀螺仪地平仪(含俯仰角、横滚角)、来自气压计的相对高度数据
4,俯仰角数值、来自GPS的海拔高度数据
5,两个调试用临时数据、飞行时间、系统时间、可连接的GPS卫星数。
6,飞控状态、飞控模式类型、飞控模式、引擎激活、备用A、备用B
在飞行数据区单击鼠标左键,可以在本区域切换HUD方式的视频图像。

综合显示和控制区由6个可切换页面构成。
1,        任务。
可使用按钮方式切换飞控模式、可立即执行飞行指令、可直接设定高度和速度、可直接操作扩展的继电器电门或舵机。可设定状态操作模式或点动操作模式。
2,        仪表。
模拟仪表显示:空速、航向、高度、地速、飞行器和原点的相对位置、升降速率。
3,        操纵
舵机测试及控制模式切换。系统支持三种操纵模式:软件滑块、标准摇杆、无线遥控器。
4,        联接
系统目前支持六个数据通道。
5,        计划
本栏编制飞行计划
6,        设置
系统所有设置汇集于此。目前内容较少。仅限于地图文件的指定和飞行计划图标的调整。系统目前支持Google和诺基亚的瓦片格式地图,百度和搜狗的地图需要转换之后才能使用。缺省设置是在APM软件安装目录的Google地图。
C:\Program Files (x86)\APM Planner\gmapcache\TileDBv3\en\GoogleSatellite\1\0

地图区域支持1~19倍的Google地图,使用鼠标滚轮进行倍率缩放。鼠标左键可以移动地图。当鼠标左键点在航路点上时,则航路点移动。

266
 楼主| 发表于 2013-4-12 18:37 | 只看该作者
逆风KKK 发表于 2013-4-12 12:12
楼主你好 技术宅拯救世界!对你做的软件很感兴趣  下 载准备看看的  结果出现这个  我是小白 勿喷 力挺

非常感谢您的回复。
我已经更新软件及说明书,请您过目。
axnzero10@qq.com
密码:axnzero10


267
 楼主| 发表于 2013-4-12 18:47 | 只看该作者
scaple 发表于 2013-4-12 10:17
1,仪表做漂亮比较难
2,地图做稳定比较难
3,通讯做完整比较难

非常感谢您的指点。
仪表部分,目前我自己基本满意了。不会再做大的改动。
地图部分,目前不打算动。计划安排在试飞、增补“设置功能”之后,可能会尝试寻找合适的高程数据地图,然后把瓦片地图切片,然后在OpenGL环境贴在高程网格上,做成可以3D观察的3D地图。


268
 楼主| 发表于 2013-4-13 09:16 | 只看该作者
scaple 你好
我看到了你的视频,你是士兵?

269
发表于 2013-4-14 13:15 | 只看该作者
這實在太精采了!!
要追阿~~
270
 楼主| 发表于 2013-4-14 22:35 | 只看该作者
洛克希德马丁 遥控器

1.jpg (98.91 KB, 下载次数: 20)

1.jpg
271
 楼主| 发表于 2013-4-14 22:35 | 只看该作者
洛克希德马丁 遥控器

2.jpg (61.92 KB, 下载次数: 17)

2.jpg
272
 楼主| 发表于 2013-4-14 22:36 | 只看该作者
某型号遥控器

LapTop1.jpg (42.55 KB, 下载次数: 15)

LapTop1.jpg
273
 楼主| 发表于 2013-4-16 18:20 | 只看该作者
本帖最后由 axnzero 于 2013-4-17 16:42 编辑

本地面站,似乎比较适合于协助各位参加中航工业杯的固定翼比赛。配置模式如上图所示。
Axnzero地面站已经可以通过Arduino舵机版直接控制APM的输出,而且可以选择纯手动模式直接控制,也可以选择增稳(线传A、线传B)模式间接控制。那么只要再增加一个任务计算机(如果计算机够强劲,也可以再开一个任务计算进程)即可完成中航工业杯的UAV任务。
具体来说,当UAV飞到设定好的位置,Axnzero即可通过TCP向任务计算机发送触发信号,任务计算机即可开始通过图像识别的方式寻找空投目标或者着陆跑道。任务计算机可以根据搜索的结果向Axnzero发送TCP指令,使其在自动飞行或者手动增稳等模式之间切换。
任务计算机不再需要单独设计软硬件相关的姿控和导航算法,只需要专心致志于甲板和飞行器本体的相对位置计算,然后根据彼此的相对位置,通过Socket接口的TCP协议,向Axnzero软件发送控制指令并传送到Arduino舵机板。使用增稳模式之后,相当于透明地利用了APM的机载惯导功能,以增稳的方式去控制UAV着舰。同时基于Axnzero本身已经具备的状态监控和任务规划功能,那么整个系统软件的开发难度和调试难度都大幅降低了。
简单整理一下,参赛需要的编程技术:
1,        WebCam技术。微软的VFW视频调用即可。
2,        简单的图像处理和模式识别技术。(可以调用OpenCV的现成模块)
3,        高中的三角函数,或者大学的计算机图形学,或研究生的矩阵论。
4,        Socket编程TCP通讯技术。
5,        较低的舵机控制技术。
参赛者,不再需要做硬件编程,不再需要设计飞控板电路,不再需要编写姿态传感器解算程序和舵机直接控制程序,不再需要关心GPS位置解算和自动跟踪天线的云台控制,等等等等。
参赛者,只需要在PC上,写算法和TCP通讯程序即可。


091.jpg (63.6 KB, 下载次数: 8)

091.jpg
274
发表于 2013-4-17 10:55 ——“来自手机” | 只看该作者
对于大神级的作品,虽然不懂,但是绝对得支持,你们呕心沥血的在为大家造福,我们再不支持岂不是没良心了
275
发表于 2013-4-17 15:46 | 只看该作者
axnzero 发表于 2013-4-12 18:37
非常感谢您的回复。
我已经更新软件及说明书,请您过目。
axnzero10@qq.com

可以打开了  研究研究 嘿嘿 加油  (为什么右侧没有和APM一样的地图呢)
276
发表于 2013-4-17 15:48 | 只看该作者
axnzero 发表于 2013-4-12 18:37
非常感谢您的回复。
我已经更新软件及说明书,请您过目。
axnzero10@qq.com

看到说明了、、
277
发表于 2013-4-17 15:53 | 只看该作者
逆风KKK 发表于 2013-4-17 15:48
看到说明了、、

地图浏览的方式还是有些麻烦的 嘿嘿 如果能和apm一样直接网络加载地图就好多了
278
 楼主| 发表于 2013-4-17 16:20 | 只看该作者
有两种方式可以实现直接加载网络地图。
1,调用谷歌或者Gmap控件。
2,使用TCP/IP协议,强行硬闯,读取谷歌或者百度的地图数据。
这两种方式,都需要再花一些时间,再增加一些系统CPU的占用。

本着尽快拿出一个可以测试的软件的想法,我使用了读取瓦片图的方式。
以后是会考虑增加一个广泛使用第三方控件的版本,以便实现在线地图。

279
发表于 2013-4-18 00:55 | 只看该作者
本帖最后由 scaple 于 2013-4-18 00:57 编辑
axnzero 发表于 2013-4-17 16:20
有两种方式可以实现直接加载网络地图。
1,调用谷歌或者Gmap控件。
2,使用TCP/IP协议,强行硬闯,读取谷 ...

我仔细看了一下你的软件,做得不错。特别是图形界面的平滑绘制无锯齿,这点比我做得好,赫赫。如果没猜错的话应该是MFC控件子类化加上gdi+来实现的。用单独的每个控件来封装gdi+绘图可能在mfc内部机制中包含了并行机制,所以速度较快,可以满足要求。可惜,这种方式不适用于目前我的结构设计。

我觉得操作界面没必要拘泥于missionplanner 的原有框架,因为这玩意儿本来就不大方便好用,既然是自己做,完全可以大胆创新。

另外hud显示信息简单了点,既然是专用型地面站,可以加一些诸如报警提示之类的元素进去。

还有很重要的一点是,对于飞行这种实践性极强的活动而言,恐怕只有通过实际飞行操作,才能够更加清楚地了解到需求究竟是什么。


另外,我对在线地图极度不感冒,在某些特殊应用当中,在线可是个轻易就能被一票否决的致命弱点。







280
发表于 2013-4-18 01:03 | 只看该作者
赫赫,恶搞时间正式开始

下图是圆形仪表控件的几种不同表现形式,费了我几天工夫,还没弄完,比原来预想的要费事...

看到亮点没?赫赫,就是小篆,没想到这玩意儿不仅人看起来费力,电脑处理起来也吃力,几个小篆一加,单帧绘制时间一下陡增了十几毫秒,下次我弄个甲骨文来者,估计电脑当场就能挂掉,哈哈哈


您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表