科目7注册及使用说明¶
科目7注册与其他科目稍有不同,请参照以下示例进行注册,且需要设置启动参数 -t
,参数值为 0 或 1,分别表示红蓝队。
警告
必须更新 SDK 到 1.0.2 否则无法正常获取敌人id。
必须更新地图配置文件及启动参数(即 UE4配置及启动脚本 ),否则无法正常加载地图或初始化车机。
1#!/usr/bin/env python
2
3import argparse
4import random
5import threading
6import time
7from os import times
8
9from swarmae.SwarmAEClient import SwarmAEClient
10
11
12def main():
13 argparser = argparse.ArgumentParser(
14 description=__doc__)
15 argparser.add_argument(
16 '-i', '--address',
17 default='127.0.0.1')
18 argparser.add_argument(
19 '-p', '--port',
20 type=int,
21 default=2000)
22 argparser.add_argument(
23 '-n', '--number',
24 type=int,
25 default=10)
26 argparser.add_argument(
27 '-s', '--subject',
28 type=int,
29 default=1
30 )
31 argparser.add_argument(
32 '-t', '--team',
33 type=int,
34 default=0
35 )
36 args = argparser.parse_args()
37 try:
38 client = SwarmAEClient(ue_ip=args.address.strip(), ue_port=args.port)
39 timestamp, world, code = client.get_world()
40
41 # 无人机
42 vehicles = []
43 number = 5
44 for i in range(number):
45 num = i + 1
46 frame_timestamp, sw_node, sw_code = client.register_node('四轮车', str(num), num,
47 int(round(time.time() * 1000)))
48 if sw_code == 200:
49 vehicles.append(sw_node)
50 location = sw_node.get_location()
51 print(f'{sw_node.get_node_id()} {location[0]} {location[1]} {location[1]}')
52
53 # 无人机
54 uavs = []
55 number = 10
56 for i in range(number):
57 num = i + 5 + 1
58 frame_timestamp, sw_node, sw_code = client.register_node('四旋翼', str(num), num,
59 int(round(time.time() * 1000)))
60 if sw_code == 200:
61 uavs.append(sw_node)
62 location = sw_node.get_location()
63 print(f'{sw_node.get_node_id()} {location[0]} {location[1]} {location[1]}')
64
65 node_name, node_no, _, node_type, node_model, color = uavs[0].get_node_info()
66 if node_no not in [11, 21]:
67 print('请设置运行参数 -t , 0 表示红队, 1 表示蓝队,示例: -t=0')
68 return
69
70 finally:
71 print('main')
72
73
74if __name__ == '__main__':
75
76 try:
77 main()
78 except KeyboardInterrupt:
79 pass
80 finally:
81 print('done.')
正常注册的的无人机编号(node_no)如下:
红队无人车:1~5
蓝队无人车:6~10
红队无人机:11~20,前5个编号为对空,后5个编号为对地。
蓝队无人机:21~30,前5个编号为对空,后5个编号为对地。