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

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

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

  [复制链接]
161
 楼主| 发表于 2013-1-22 22:23 | 只看该作者
点击查看详情
本帖最后由 axnzero 于 2013-1-22 22:29 编辑

使用这种方式,可以简单有效地生成全功能的MAVLink通讯。

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

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
162
 楼主| 发表于 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;

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

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

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

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

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

058a.jpg

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

058b.jpg

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

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

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

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


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

059.jpg
167
 楼主| 发表于 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

168
 楼主| 发表于 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

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

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

060.jpg
170
 楼主| 发表于 2013-1-27 17:10 | 只看该作者
空心字显示。

062.jpg (85.87 KB, 下载次数: 130)

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

使用空心字优化的OSD显示,在明亮背景和灰暗背景下的显示效果评估及视频信号叠加HUD显示测试。

063.jpg (81.31 KB, 下载次数: 144)

063.jpg
172
发表于 2013-1-29 12:36 | 只看该作者
强!
173
 楼主| 发表于 2013-1-29 23:16 | 只看该作者
双屏显示功能制作。
各自支持HUD混合视频显示和纯HUD显示切换。
使用独立的执行程序并行工作,程序间使用网络方式通讯。
因此支持单台电脑双屏显示,也支持两台电脑使用网络方式连通之后并行显示。
也便于扩展平板电脑或其他移动终端的手持式显示。

064.jpg (117.31 KB, 下载次数: 132)

064.jpg
174
 楼主| 发表于 2013-1-30 17:56 | 只看该作者
双屏显示,进程间通讯和数据同步。
HUD同步显示数据,和视频信号叠加测试。

065.jpg (89.53 KB, 下载次数: 108)

065.jpg
175
发表于 2013-1-31 20:12 | 只看该作者
厉害。期待完成品出现。
176
 楼主| 发表于 2013-2-1 16:54 | 只看该作者
舵机连接测试。
舵机型号FUTABA S3001
测试发现,APM接管了通道1,2,3,4。
向前四个通道发送的舵机控制命令只能使舵机出现瞬时的抖动。
舵机很快就会恢复原来的位置。
通道5,6,7,8控制正常。

发送的数据可以使舵机在中立位置两侧产生各45度的偏转。
使用硬件发送PWM脉冲测试发现:
S3001舵机本身可以在500~2500的信号控制下产生略大于180度范围的偏转。

在两端的极限位置,有听起来比较嘈杂的抖动的声音。

066.jpg (116.44 KB, 下载次数: 34)

066.jpg
177
 楼主| 发表于 2013-2-1 23:52 | 只看该作者
MAVLink协议整理和翻译完毕。
http://wenku.baidu.com/view/993f8347767f5acfa1c7cd36?fr=prin
178
 楼主| 发表于 2013-2-2 20:18 | 只看该作者
使用遥控器切换飞控工作状态:
航线模式---增稳模式---手动模式
测试通过。
179
 楼主| 发表于 2013-2-2 23:49 | 只看该作者
本帖最后由 axnzero 于 2013-2-2 23:51 编辑

使用游戏摇杆操纵舵机测试正常。

也就是说,现在可以制作一个比较舒服的驾驶舱,放在后备箱或者汽车副驾驶的位置。
使用比较舒服的摇杆和油门放在左右两侧,面前可以安装一个大尺寸的显示器。
这样操作UAV或者FPV都应该是比较舒服的。不再需要在车外吹冷风了。
还可以把天线架在车顶,不用再忍受大功率无线电对脑袋的炙烤了。

1.gif (132.31 KB, 下载次数: 23)

1.gif
头像被屏蔽
180
发表于 2013-2-3 12:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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