首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于Linux的小型无人直升机实时仿真系统构建
来源:本站整理  作者:佚名  2009-05-12 09:42:29





2 仿真系统程序模块编写
   
仿真系统程序模块主要包括模块直升机数学模型-模块、控制输入模块、数据融合模、通信模块、飞行控制系统模块以及人机图形界面模块。下面主要对直升机数学模型模块、控制输入模块、通信模块以及人机图形界面模块进行代码编写。
2.1 直升机数学模型模块
    首先用类封装各个子模型的主要属性,主要包括主旋翼子模型、伺服小翼子模型、尾旋翼子模型,阵风扰动子模型以及伺服驱动子模型等;然后再把这些子模型封装在一个直升机的类Heli中,看成直升机类的类成员变量;再为直升机类增加适当的成员函数,来完成各子模型的实际功能,这样就构成了直升机整体。之后可以利用此类进行实例的定义及使用。

   
    接下来便可以根据上面的Heli类来代入Rator90直升机的实际参数。
2.2 控制输入模块
   
在此选择Logitech EXTREME 3D PRO JOYSTIC作为飞行控制输入遥杆。首先,需要将遥杆的驱动程序挂载进内核。在/etc/rc.10cal文件中添加如下语句:

    modprobe/lib/modules/2.6.1 1/kernel/drivers/input/joydev.o
    即可在每次启动内核时自动加载摇杆驱动模块并检查与其他模块的属性相依。
    控制器成功挂载进内核之后,利用几个主要数据读取函数对遥杆的输人数据进行读取:

   
    然后便可通过socket通信模块,把数据转发到仿真平台主程序上,再由主程序处理分配到各个终端。
2.3 通信模块
   
该仿真系统主要采用Socket(套接字)网络接口编程技术来实现各个模块之间的数据交换,即进程间的通信。Socket主要有2种,使用TCP(传输控制协议)协议的流式Socket通信和使用UDP(用户数据报)协议的数据报Socket通信。TCP协议提供面向连接的、提供端到端检查与纠错全双工字节流传输。UDP协议是非连接的,可提供高速的传输服务,但不提供可靠的传输服务。该仿真程序使用UDP数据报协议,因是在本机内部进行通信,并且一个端口可以同时接收来自几个端口的信息,无疑提高了效率。对通信双方进行类封装,建立基于UDP网络通信的Server和Client类。主要实现代码如下:

   

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:154,085.90000 毫秒