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

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

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

  [复制链接]
161
发表于 2013-1-9 12:59 | 只看该作者
点击查看详情
axnzero 发表于 2012-11-22 15:31
连接页面设计和串行通讯测试。

看来楼主的确闲的蛋疼,写了那么多界面,其实显示个数字差不多了,技术很好

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

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
162
 楼主| 发表于 2013-1-9 23:00 | 只看该作者
新买了APM2.5。

052.jpg (30.38 KB, 下载次数: 86)

052.jpg
163
 楼主| 发表于 2013-1-9 23:03 | 只看该作者
新板连接正常。
但电压显示不正常。

MAVLink协议修改模式功能实现。
0,航前
1,手动
2,增稳
3,线传甲
4,线传乙
5,盘旋
6,导航
7,自主

053.jpg (78.9 KB, 下载次数: 91)

053.jpg

054.jpg (87.06 KB, 下载次数: 105)

054.jpg
164
发表于 2013-1-12 19:07 | 只看该作者
帮顶
165
发表于 2013-1-14 15:06 | 只看该作者
这个太牛了,我只能用现成的
166
 楼主| 发表于 2013-1-16 15:30 | 只看该作者
程序盘点。
所有代码重写了一遍。
所有的变量名称做了规范化处理。
现有源代码和扩展代码命名规范建表。
所有数据文件重新编排。
若干功能模块的连接位置调整。

055.jpg (154.75 KB, 下载次数: 69)

055.jpg
167
发表于 2013-1-18 09:16 | 只看该作者
完成了吗?再次顶下
168
 楼主| 发表于 2013-1-19 13:14 | 只看该作者
zhuxindesign 发表于 2013-1-18 09:16
完成了吗?再次顶下

现在正在做MAVLink相关的细节调试。
估计春 节前后可以达到基本可用的状态。
169
 楼主| 发表于 2013-1-19 20:54 | 只看该作者
目前看,APM似乎没有完全按照MAVLink的标准做。
似乎MAV_MODE被改动了。
而且,在针对各种类型的飞行器,模式编码还不一样。
170
 楼主| 发表于 2013-1-22 16:29 | 只看该作者
软件极限值测试发现:
在升降速率爆表的时候,APM软件的仪表显示模块也爆掉了。
咱的显示模块工作正常。
另外发现,APM的HUD显示的高度数据是取整显示。
咱的软件是四舍五入,略微精确一点点。

057.jpg (159.79 KB, 下载次数: 59)

057.jpg
171
 楼主| 发表于 2013-1-22 22:20 | 只看该作者
本帖最后由 axnzero 于 2013-1-22 22:27 编辑

全面整理MAVLink协议。
发现光是输入上百个变量名就是一件很费力的工作。
所以参照QGC的思路,做了一个小程序,用于根据XML文件自动生成变量表和打包解包源代码。
测试功能正常。
简单地说,就是程序数据比较多,输程序写代码很辛苦。
因此做了个程序,让程序写程序。

172
 楼主| 发表于 2013-1-22 22:23 | 只看该作者
本帖最后由 axnzero 于 2013-1-22 22:29 编辑

使用这种方式,可以简单有效地生成全功能的MAVLink通讯。
173
 楼主| 发表于 2013-1-22 22:24 | 只看该作者
本帖最后由 axnzero 于 2013-1-23 10:37 编辑

代码贴出来就乱了,还是算了。


       case  45:memcpy(&mi_mission_clear_all                        ,mi_Buf,sizeof(mi_mission_clear_all                        ));break;
        case  46:memcpy(&mi_mission_item_reached                     ,mi_Buf,sizeof(mi_mission_item_reached                     ));break;
        case  47:memcpy(&mi_mission_ack                              ,mi_Buf,sizeof(mi_mission_ack                              ));break;
        case  48:memcpy(&mi_set_gps_global_origin                    ,mi_Buf,sizeof(mi_set_gps_global_origin                    ));break;
        case  49:memcpy(&mi_gps_global_origin                        ,mi_Buf,sizeof(mi_gps_global_origin                        ));break;
        case  50:memcpy(&mi_set_local_position_setpoint              ,mi_Buf,sizeof(mi_set_local_position_setpoint              ));break;
        case  51:memcpy(&mi_local_position_setpoint                  ,mi_Buf,sizeof(mi_local_position_setpoint                  ));break;
        case  52:memcpy(&mi_global_position_setpoint_int             ,mi_Buf,sizeof(mi_global_position_setpoint_int             ));break;
        case  53:memcpy(&mi_set_global_position_setpoint_int         ,mi_Buf,sizeof(mi_set_global_position_setpoint_int         ));break;
        case  54:memcpy(&mi_safety_set_allowed_area                  ,mi_Buf,sizeof(mi_safety_set_allowed_area                  ));break;
        case  55:memcpy(&mi_safety_allowed_area                      ,mi_Buf,sizeof(mi_safety_allowed_area                      ));break;
        case  56:memcpy(&mi_set_roll_pitch_yaw_thrust                ,mi_Buf,sizeof(mi_set_roll_pitch_yaw_thrust                ));break;
        case  57:memcpy(&mi_set_roll_pitch_yaw_speed_thrust          ,mi_Buf,sizeof(mi_set_roll_pitch_yaw_speed_thrust          ));break;
        case  58:memcpy(&mi_roll_pitch_yaw_thrust_setpoint           ,mi_Buf,sizeof(mi_roll_pitch_yaw_thrust_setpoint           ));break;
        case  59:memcpy(&mi_roll_pitch_yaw_speed_thrust_setpoint     ,mi_Buf,sizeof(mi_roll_pitch_yaw_speed_thrust_setpoint     ));break;
        case  60:memcpy(&mi_set_quad_motors_setpoint                 ,mi_Buf,sizeof(mi_set_quad_motors_setpoint                 ));break;
        case  61:memcpy(&mi_set_quad_swarm_roll_pitch_yaw_thrust     ,mi_Buf,sizeof(mi_set_quad_swarm_roll_pitch_yaw_thrust     ));break;
        case  62:memcpy(&mi_nav_controller_output                    ,mi_Buf,sizeof(mi_nav_controller_output                    ));break;
        case  63:memcpy(&mi_set_quad_swarm_led_roll_pitch_yaw_thrust ,mi_Buf,sizeof(mi_set_quad_swarm_led_roll_pitch_yaw_thrust ));break;
        case  64:memcpy(&mi_state_correction                         ,mi_Buf,sizeof(mi_state_correction                         ));break;
        case  66:memcpy(&mi_request_data_stream                      ,mi_Buf,sizeof(mi_request_data_stream                      ));break;
        case  67:memcpy(&mi_data_stream                              ,mi_Buf,sizeof(mi_data_stream                              ));break;
        case  69:memcpy(&mi_manual_control                           ,mi_Buf,sizeof(mi_manual_control                           ));break;
        case  70:memcpy(&mi_rc_channels_override                     ,mi_Buf,sizeof(mi_rc_channels_override                     ));break;
        case  74:memcpy(&mi_vfr_hud                                  ,mi_Buf,sizeof(mi_vfr_hud                                  ));break;
        case  76:memcpy(&mi_command_long                             ,mi_Buf,sizeof(mi_command_long                             ));break;
        case  77:memcpy(&mi_command_ack                              ,mi_Buf,sizeof(mi_command_ack                              ));break;
        case  80:memcpy(&mi_roll_pitch_yaw_rates_thrust_setpoint     ,mi_Buf,sizeof(mi_roll_pitch_yaw_rates_thrust_setpoint     ));break;
        case  81:memcpy(&mi_manual_setpoint                          ,mi_Buf,sizeof(mi_manual_setpoint                          ));break;
        case  89:memcpy(&mi_local_position_ned_system_global_offset  ,mi_Buf,sizeof(mi_local_position_ned_system_global_offset  ));break;
        case  90:memcpy(&mi_hil_state                                ,mi_Buf,sizeof(mi_hil_state                                ));break;
        case  91:memcpy(&mi_hil_controls                             ,mi_Buf,sizeof(mi_hil_controls                             ));break;
        case  92:memcpy(&mi_hil_rc_inputs_raw                        ,mi_Buf,sizeof(mi_hil_rc_inputs_raw                        ));break;

怎么试都是乱的,就这样吧。
174
发表于 2013-1-23 19:09 | 只看该作者
楼主,牛,支持你
175
 楼主| 发表于 2013-1-24 23:20 | 只看该作者
如170楼所述:
在模式方面APM没有采用MAVLink的标准模式设定方案,
而是使用了客户定制模式。
而且,在针对固定翼飞行器和可悬停飞行器的模式编码不一样。

因此,在连接飞控硬件之后,用户界面需要根据飞行器类型作出即时的调整。
修改工作模式也需要分别根据两套参数各自执行。

目前测试功能正常。
已能够实现各种模式的自由转换。

Arm/DisArm和校准功能也一并实现及测试正常。

058a.jpg (82.99 KB, 下载次数: 54)

058a.jpg

058b.jpg (83.36 KB, 下载次数: 49)

058b.jpg

058c.jpg (83.94 KB, 下载次数: 56)

058c.jpg
176
发表于 2013-1-25 09:24 | 只看该作者
楼主威武,界面感觉比apm原版友好,不知道里面的界面怎样,顶一下
177
 楼主| 发表于 2013-1-25 11:24 | 只看该作者
zhuxindesign 发表于 2013-1-25 09:24
楼主威武,界面感觉比apm原版友好,不知道里面的界面怎样,顶一下

界面整体布局和逻辑框架基本完成。
各个页面的细节还会有比较多的扩充。
尤其是在“设置”页面,待添加的内容比较多。

“消息文本条”原先在“仪表页面”和“连接页面”各设置一个。
调试中发现,在“设备校准”过程中,有提示信息出现,“任务页面”也需要“消息文本条”。
因此,把“消息文本条”从子页面提出来,放在了公共页面。


059.jpg (141 KB, 下载次数: 48)

059.jpg
178
 楼主| 发表于 2013-1-25 12:01 | 只看该作者
本帖最后由 axnzero 于 2013-1-25 12:38 编辑

软件目前的状态。

。。。。
软件压缩包2.5M

权限不够,传不上来。

Axnzero.zip.005

100 KB, 下载次数: 1584

Axnzero.zip.006

17.75 KB, 下载次数: 231

179
 楼主| 发表于 2013-1-25 12:37 | 只看该作者
再试试

Axnzero.zip.001

100 KB, 下载次数: 1903

Axnzero.zip.002

100 KB, 下载次数: 928

Axnzero.zip.003

100 KB, 下载次数: 370

Axnzero.zip.004

100 KB, 下载次数: 1174

180
 楼主| 发表于 2013-1-26 23:50 | 只看该作者
YUY2格式解码测试,连接无线图传视频信号正常。

060.jpg (34.61 KB, 下载次数: 27)

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

本版积分规则

关闭

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

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