RflySimSDK v4.01
RflySimSDK说明文档
载入中...
搜索中...
未找到
MultiCopterDll类 参考
类 MultiCopterDll 继承关系图:
MultiCopterDll 的协作图:

Public 成员函数

 __init__ (self, CopterID=1, ClassID=-1, MapName='Grasslands', ip='127.0.0.1', LocX=0, LocY=0, Yaw=0, UdpMode=0, useGPS=False, GpsOrin=[0, 0, 0])
Public 成员函数 继承自 ModelLoad
 __init__ (self, dll_name, CopterID=1, ClassID=-1, MapName='Grasslands', ip='127.0.0.1', LocX=0, LocY=0, Yaw=0, UdpMode=0, useGPS=False, GpsOrin=[0, 0, 0])
 这是类的构造函数,用于初始化 ModelLoad 类的实例。参数的详细含义参考 Bat脚本使用参考
 CreateVehicle (self, CopterID=1, ClassID=-1, MapName='Grasslands', ip='127.0.0.1', LocX=0, LocY=0, Yaw=0, UdpMode=0, useGPS=False, GpsOrin=[0, 0, 0])
 初始化并配置载具模型。参数的详细含义参考 Bat脚本使用参考
 Updata3Doutput (self)
 用于更新载具模型仿真输出,读取车辆当前的运动状态数据并更新到 out3Ddata 和 outHilData,并与地形数据进行交互。
 SendUpdate3DMap (self, isSetSpeed=False)
 用于向 RflySim3D发送命令,更新 3D 地图或设置RflySim3D仿真速度。
 get3DDataBuf (self)
 提取载具模型的 3D 仿真数据out3Dvect并将其打包,以便通过网络转发给RflySim3D
 Send3DData (self)
 将打包的 3D 数据通过 UDP 发送到端口 20010,用于与 RflySim3D 进行通信
 SendSimData (self)
 将与 Send3DData 同样的 3D 数据发送到端口 30100,用于仿真数据的传输
 SendHILData (self)
 发送硬件在环(HIL)仿真数据到指定的端口,通常用于与飞控系统交互
 SendOutCopter (self)
 发送仿真数据到30100端口,可用于日志记录
 fillList (self, data, inLen, fill=0)
 填充或裁剪一个列表
 StartAutUpdate (self, UpdateFreq=30, speed=-1)
 用于启动自动更新循环,以指定的频率更新仿真状态。
 StopAutUpdate (self)
 用于停止自动更新循环
 AutUpdateLoop (self)
 自动更新循环的核心逻辑,实现持续的仿真更新、数据发送等功能。
 StartExtCtrl (self)
 用于启动外部控制功能,创建两个用于接收外部控制数据的UDP套接字,并开启两个线程来监听数据。
 StopExtCtrl (self)
 停止外部控制,关闭UDP套接字并终止接收线程。
 Recv20100Loop (self)
 线程的主循环,用于接收20100端口的数据并根据控制模式执行相应的控制命令。
 Recv30100Loop (self)
 线程的主循环,用于接收30100端口的数据并根据不同的数据类型执行相应处理。
 DllDestroyModel (self)
 销毁当前加载的仿真模型
 DllReInitModel (self)
 重新初始化仿真模型。
 DllInputSILs (self, in_ints=[0] *8, in_floats=[0] *20)
 将综合模型系统仿真输入数据传递给 DLL,参见 sendSILIntFloat
 DllInputColls (self, in_floats_collision=[0] *20)
 将碰撞数据传递给 DLL,用于仿真中处理碰撞情况,参见 sendColl20d
 DllTerrainIn15d (self, terrain15d=[0] *15)
 输入三维场景的地形高度数据给DLL,用于仿真环境的地形建模,参见 sendTerrIn15d
 DllInitGpsPos (self, gps=[0] *3)
 初始化仿真的 GPS 坐标原点,用于地理位置相关的仿真,参见 sendReGPSOrin
 DllInitPosAngState (self, init_pos_offset=[0, 0, 0], init_ang_offset=[0, 0, 0])
 初始化位置和姿态状态,用于设置仿真对象的初始位置信息和朝向,参见 sendReSimXyzRPYaw
 DllInputDoubCtrls (self, in_doub_ctrls=[0] *28)
 综合模型外部控制指令输入接口,用于传递 28 维的双精度控制指令数据,参见 sendInDoubCtrls
 DllinSIL28d (self, in_doub_ctrls=[0] *28)
 综合模型外部控制指令输入接口,用于传递 28 维的双精度控制指令数据,参见 sendInDoubCtrls
 DllInCtrlExt (self, in_ctrl_ext=[0] *140)
 扩展控制数据,用于支持更高级的控制仿真功能,参见 sendInCtrlExtAll
 DllInFromUE (self, in_from_ue=[0] *32)
 从RflySim3D输入自定义数据到 DLL,用于与外部仿真环境的集成。
 DllInputColls (self, inCll=[0] *20)
 传递 20 维float数组的碰撞数据的接口,用于处理仿真对象之间的碰撞检测。
 DllGetStep0 (self)
 获取仿真的步长,用于确定仿真时间步的大小。如果 DLL 中没有对应的函数,默认返回 0.001
 Dllstep (self)
 执行一次仿真步骤。这是对 DLL 中仿真时间推进的基本调用。
 ModelUpdate (self, step_time)
 手动更新仿真状态的接口
 DlloutVehileInfo60d (self)
 从 DLL 获取 60 维的载具三维信息数据。包括各种飞行器或车辆的状态数据。
 DllOutCopterData (self)
 从 DLL 获取 32 维数据,包括飞行器的传感器读数、状态信息等
 SendPosNED (self, x=0, y=0, z=0, yaw=0)
 发送NED(北东地)地球参考系下的位置控制命令。
 SendPosLocal (self, x=0, y=0, z=0, yaw=0)
 SendVelNED (self, vx=0, vy=0, vz=0, yawRate=0)
 发送NED(北东地)地球参考系下的速度及偏航控制命令。
 SendVelFRD (self, vx=0, vy=0, vz=0, yawRate=0)
 发送FRD(前右下)机体参考系下的速度控制命令。
 SendVelNEDNoYaw (self, northvel=0, eastvel=0, downvel=0)
 发送NED(北东地)地球参考系下的速度及偏航控制命令。

额外继承的成员函数

Public 属性 继承自 ModelLoad
 udp_socket
bool isSendExtData = False
 out3Ddata = Data3D()
list out3Dvect = [0]*60
 outHilData = DataHIL()
list outCopterVect = [0]*32
int simSpeed = 1
 dll = ctypes.CDLL(dll_full_name)
bool isBroadCast = False
bool isAutoUpdate = False
 CopterID = CopterID
 ClassID = ClassID
 MapName = MapName
 LocX = LocX
 LocY = LocY
 Yaw = Yaw
 UdpMode = UdpMode
 useGPS = useGPS
list GpsOrin = [40.1540302,116.2593683,50.0]
 map = UEMapServe.UEMapServe(MapName)
 ue = UE4CtrlAPI.UE4CtrlAPI(ip)
 geo = EarthModel.EarthModel()
 ip = ip
int port = 20100 + CopterID*2 -1
int port2 = 30100 + CopterID*2 -1
list InitPos = [self.LocX,self.LocY,terrain_height]
list InitAng = [0,0,self.Yaw/180*math.pi]
list GpsOrinInit = [0,0,0]
 t1 = threading.Thread(target=self.AutUpdateLoop, args=())
int Interval = 1/UpdateFreq
int nextTime = time.time()
 lastTime = time.time()
 udp_20100
bool isRec20100 = True
 t2 = threading.Thread(target=self.Recv20100Loop, args=())
 udp_30100
bool isRec30100 = True
 t3 = threading.Thread(target=self.Recv30100Loop, args=())

该类的文档由以下文件生成: