查看: 720|回复: 0

RFlysim集群仿真框架小结

[复制链接]

37

主题

870

帖子

1734

积分

金牌飞友

Rank: 6Rank: 6

积分
1734
飞币
862
注册时间
2017-8-13
发表于 2022-10-27 07:00:44 | 显示全部楼层 |阅读模式
整体平台框架:


RFlysim集群仿真框架小结-1.jpg

整体软件框架示意图

RFlysim集群仿真框架小结-2.jpg

集群仿真流程示意图


  • 飞控:PX4
  • 地面站:QGC
  • 集群通信控制软件:CopterSim
  • WIN10 WSL编译器:用来编译PX4的固件源码
集群控制开发接口

两种集群控制开发接口:
( 为了控制通信数据量,一共定义了三种通信协议格式,分别是:FullData Mode、SimpleData Mode、UltraSimple Mode。)
Offboard模式:是无人机的一种控制模式,通常给机载计算机或地面计算机(上位机)实时控制飞机的速度、位置、姿态等,可以把飞机当成一个整体对象,专注于顶层的视觉与集群算法开发。
- Simulink控制接口

- Python控制接口(主要接口函数,详见PX4MavCtrlV4.py、PX4MavCtrlV4Swarm.py)
PX4的工作模式:
class PX4_CUSTOM_MAIN_MODE:
    PX4_CUSTOM_MAIN_MODE_MANUAL = 1
    PX4_CUSTOM_MAIN_MODE_ALTCTL = 2
    PX4_CUSTOM_MAIN_MODE_POSCTL = 3
    PX4_CUSTOM_MAIN_MODE_AUTO = 4
    PX4_CUSTOM_MAIN_MODE_ACRO = 5
    PX4_CUSTOM_MAIN_MODE_OFFBOARD = 6
    PX4_CUSTOM_MAIN_MODE_STABILIZED = 7
    PX4_CUSTOM_MAIN_MODE_RATTITUDE = 8
    PX4_CUSTOM_MAIN_MODE_SIMPLE = 9PX4的工作状态:
class PX4_CUSTOM_SUB_MODE_AUTO:
    PX4_CUSTOM_SUB_MODE_AUTO_READY = 1
    PX4_CUSTOM_SUB_MODE_AUTO_TAKEOFF = 2
    PX4_CUSTOM_SUB_MODE_AUTO_LOITER = 3
    PX4_CUSTOM_SUB_MODE_AUTO_MISSION = 4
    PX4_CUSTOM_SUB_MODE_AUTO_RTL = 5
    PX4_CUSTOM_SUB_MODE_AUTO_LAND = 6
    PX4_CUSTOM_SUB_MODE_AUTO_RTGS = 7
    PX4_CUSTOM_SUB_MODE_AUTO_FOLLOW_TARGET = 8
    PX4_CUSTOM_SUB_MODE_AUTO_PRECLAND = 9PX4MavCtrler控制类,核心类
主要函数:
def SendMavCmdLong()             发送MAVLink消息给PX4
def sendMavOffboardCmd()         发送命令给PX4,使PX4进入Offboard模式
def sendMavOffboardAPI()         发送控制信号给进入Offboard模式的PX4
def SendVelNED()                 发送NED坐标系下的速度信息给PX4
def sendUE4Cmd()                 发送命令去控制Rflysim3D软件的显示
def SendVelFRD()                 发送FRD坐标系下的速度信息给PX4
def SendPosNED()                 发送NED坐标系下的目标位置信息给PX4
def endOffboard                  结束Offboard模式
def sendMavSetParam              设置PX4的参数信息
def SendMavArm()                 解锁飞机
def SendRcOverride()
def sendMavManualCtrl()
def SendSetMode()                设置飞行模式
def stopRun()                                 
def getMavMsg()                  以100Hz获取PX4状态信息
def OffboardSendMode()           以Offboard模式循环发送信息给PX4
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

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