社区论坛

Community Forum

技术共享
赵美静 发表于:2021-03-22 13:33:33 回复 0 赞 4 325

## 陆战兵棋miniGame对抗场景意图识别数据集WargameData_mini01的生成及使用说明

 

#### 数据集所属权

 

本数据集为学术论文 Xuan Liu, Meijing Zhao, Song Dai, et al "Tactical Intention Recognition In Wargame" 的一部分工作。

本数据集所属权为:中国科学院自动化研究所 智能系统与工程研究中心 兵棋智能体攻关组(负责人:赵美静 尹奇跃)。

 

#### 1. 数据来源

 

本数据集的数据来源为“庙算·即时策略人机对抗平台(http://wargame.ia.ac.cn/)”miniGame2及miniGame3想定下的复盘数据。

 

#### 2. 生成方式

 

本数据集提取了miniGame2及miniGame3想定复盘中,当我方视野中出现敌方坦克时的态势,其中视野中的敌方算子的不可见字段都置为-1。在该帧数据中又添加了“tank_enemy”字段,记录后续敌方坦克的轨迹,值为一个七维数组的数组,七维数组的第一项为所看见的敌方坦克ID,第二项为敌方坦克的位置,剩下五项分别是从后$[0,20), [20,40),[40,60),[60,80),[80,100)$步五个时间段抽取的轨迹。轨迹项由七维onehot数组表示,每项依次表示停留在原地,向东,向东北,向西北,向西,向西南,向南,向东南。每个时间段中,如果存在与开始或者上一时间段所记录的不同的坐标,则记录下轨迹项,如果不存在则记录为停留在原地。由于坦克的最大速度为20step一格,因此上述的抽取方法可以保证每个轨迹项都合法。同时添加了“color”字段,标记我方阵营。以上构成一帧数据。

 

```json

{

    "operators": [

        {

            "obj_id": "算子ID int",

            "color": "算子阵营 0-红 1-蓝",

            "type": "算子类型 1-步兵 2-车辆 3-飞机",

            "name": "名称 str",

            "sub_type": "细分类型 坦克 0/  战车1 / 人员2 / 炮兵3 / 无人战车4 / 无人机5 / 直升机6 / 巡飞弹7",

            "basic_speed": "基础速度 int",

            "armor": "装甲类型 int 0-无装甲 1-轻型装甲 2-中型装甲 3-重型装甲 4-复合装甲",

            "A1": "是否有行进间射击能力 int",

            "stack": "是否堆叠 int",

            "carry_weapon_ids": "携带武器ID list(int)",

            "remain_bullet_nums": "剩余弹药数 dict{弹药类型 int 0-非导弹, 100-重型导弹, 101-中型导弹, 102-小型导弹: 剩余弹药数 int}" "敌方算子则不可见 置为-1",

            "remain_bullet_nums_bk": "敌对阵营看到的弹药数",

            "guide_ability": "是否有引导射击能力 int",

            "value": "分值 int",

            "valid_passenger_types": "可承载类型 list(int)",

            "max_passenger_nums": "最大承载数 dict()",

            "observe_distance": "观察距离 dict()",

            "move_state": "机动状态 0-正常机动 1-行军 2-一级冲锋 3-二级冲锋 4-掩蔽",

            "cur_hex": "当前坐标 int 四位",

            "cur_pos": "当前格到下一格的百分比进度 float",

            "speed": "当前机动速度 格/s >0: 移动中, =0: 暂停或停止 int",

            "move_to_stop_remain_time": "机动转停止剩余时间 >0表示" "敌方算子则不可见 置为-1",

            "can_to_move": "是否可机动标志位.只在停止转换过程中用来判断是否可以继续机动.强制停止不能继续机动,正常停止可以继续机动. 0-否 1-是" "敌方算子则不可见 置为-1",

            "flag_force_stop": "是否被强制停止机动 0-否 1-是",

            "stop": "是否静止 0-否, 1-是",

            "move_path": "计划机动路径 [int] 首个元素代表下一目标格" "敌方算子则不可见 置为-1",

            "blood": "当前血量 int",

            "max_blood": "最大血量 int",

            "tire": "疲劳等级 0-不疲劳 1-一级疲劳 2-二级疲劳 int",

            "tire_accumulate_time": "疲劳累积时间 int" "敌方算子则不可见 置为-1",

            "keep": "是否被压制 int",

            "keep_remain_time": "疲劳剩余时间 int" "敌方算子则不可见 置为-1",

            "on_board": "是否在车上 int",

            "car": "所属车辆ID int",

            "launcher": "算子下车/发射后,记录所属发射器 int" "敌方算子则不可见 置为-1",

            "passenger_ids": "乘客列表 [int]" "敌方算子则不可见 置为-1",

            "launch_ids": "记录车辆发射单元列表 [int]" "敌方算子则不可见 置为-1",

            "lose_control": "算子是否失去控制(指无人车失去指挥)",

            "alive_remain_time": "巡飞弹剩余存活时间" "敌方算子则不可见 置为-1",

            "get_on_remain_time": "上车剩余时间 float" "敌方算子则不可见 置为-1",

            "get_on_partner_id": "车辆算子ID(本算子为上车算子) 或 待上车算子(本算子为车辆算子) list",

            "get_off_remain_time": "下车剩余时间 float" "敌方算子则不可见 置为-1",

            "get_off_partner_id": "车辆算子ID(本算子为待下车算子) 或 车上算子ID(本算子为车辆算子ID) list",

            "change_state_remain_time": "切换状态剩余时间 float",

            "target_state": "状态转换过程中记录目标状态 int 0-正常机动 1-行军 2-一级冲锋 3-二级冲锋 4-掩蔽" "敌方算子则不可见 置为-1",

            "weapon_cool_time": "武器剩余冷却时间 float",

            "weapon_unfold_time": "武器锁定状态表示展开剩余时间, 武器展开状态下表示锁定剩余时间 float" "敌方算子则不可见 置为-1",

            "weapon_unfold_state": "武器状态 0-锁定 1-展开",

            "see_enemy_bop_ids": "观察敌方算子列表 list(int)" "敌方算子则不可见 置为-1",

            "C2": "普通弹药数" "敌方算子则不可见 置为-1",

            "C3": "剩余导弹数" "敌方算子则不可见 置为-1"

        }

    ],

    "passengers": "车上算子, 字段同operators",

    "time": {

        "cur_step": "当前步长 int",

        "tick": "s/步 float"

    },

    "jm_points": [

        {

            "obj_id": "攻击算子ID int",

            "weapon_id": "攻击武器ID int",

            "pos": "位置 int",

            "status": "当前状态 0-正在飞行 1-正在爆炸 2-无效",

            "fly_time": "剩余飞行时间 float",

            "boom_time": "剩余爆炸时间 float"

        }

    ],

    "cities": [

        {

            "coord": "坐标 int",

            "value": "分值 int",

            "flag": "阵营 0-红 1-蓝",

            "name": "名称 str"

        }

    ],

    "scores": {

        "red_occupy": "红方夺控分",

        "red_remain": "红方剩余算子分",

        "red_attack": "红方战斗得分",

        "blue_occupy": "蓝方夺控分",

        "blue_remain": "蓝方剩余得分",

        "blue_attack": "蓝方攻击得分",

        "red_total": "红方总分",

        "blue_total": "蓝方总分",

        "red_win": "红方净胜分",

        "blue_win": "蓝方净胜分"

    },

    "valid_actions": {

        "算子ID": {

            "1-机动": null,

            "2-射击": [

                {

                    "target_obj_id": "目标ID int",

                    "weapon_id": "武器ID int",

                    "attack_level": "攻击等级 int"

                }

            ],

            "3-上车": [

                {

                    "target_obj_id": "车辆ID int"

                }

            ],

            "4-下车": [

                {

                    "target_obj_id": "乘客ID int"

                }

            ],

            "5-夺控": null,

            "6-切换状态": [

                {

                    "target_state": "目标状态 0-正常机动 1-行军 2-一级冲锋 3-二级冲锋 4-掩蔽"

                }

            ],

            "7-移除压制": null,

            "8-间瞄": [

                {

                    "weapon_id": "武器ID"

                }

            ],

            "9-引导射击": [

                {

                    "guided_obj_id": "被引导算子ID int",

                    "target_obj_id": "目标算子ID",

                    "weapon_id": "武器ID int",

                    "attack_level": "攻击等级 int"

                }

            ],

            "10-停止机动": null,

            "11-武器锁定": null,

            "12-武器展开": null,

            "13-取消间瞄计划": null

        }

    },

    "judge_info": [

        {

            "cur_step": "当前步长",

            "type": "伤害类型 str",

            "att_obj_id": "攻击算子ID, int",

            "target_obj_id": "目标算子ID int",

            "guide_obj_id": "引导算子ID int",

            "distance": "距离",

            "ele_diff": "高差等级",

            "att_obj_blood": "攻击算子血量",

            "align_status": "较射类型 int 0-无较射 1-格内较射 2-目标较射",

            "offset": "偏移 bool",

            "att_level": "攻击等级 int ",

            "wp_id": "武器ID int",

            "random1": "随机数1 int",

            "ori_damage": "原始战损",

            "random2_rect": "随机数2修正值",

            "random2": "随机数2",

            "rect_damage": "战损修正值",

            "damage": "最终战损"

        }

    ],

    "actions": [

        {

            "cur_step": "当前步长 int",

            "message": {

                "actor": "动作发起者ID",

                "obj_id": "算子ID int",

                "type": "动作类型 ['1-机动', '2-射击', '3-上车', '4-下车', '5-夺控', '6-切换状态', '7-移除压制', '8-间瞄', '9-引导射击', '10-停止机动', '11-武器锁定', '12-武器展开', '13-取消间瞄计划']",

                "move_path": "机动路径 list(int)",

                "target_obj_id": "目标算子ID or 车辆算子ID or 下车算子ID int",

                "weapon_id": "武器编号 int",

                "jm_pos": "间瞄点位置 int",

                "target_state": "目标状态 int",

                "guided_obj_id": "被引导算子单位ID"

            },

            "error": {

                "code": "错误码 int",

                "message": "错误原因 str"

            }

        }

    ],

    "role_and_grouping_info":{

        "0": {

            "role": 0,

            "operators": []

        },

        "1": {

            "role": 0,

            "operators": []

        }

    }

    "color": "阵营 int 0-红 1-蓝"

    "tank_enemy": [

    ["敌方坦克算子ID int", "敌方坦克算子位置 int 四位", ["七维onehot数组, 停留在原地, 向东, 向东北, 向西北, 向西, 向西南, 向南, 向东南"], [], [], [], []]

    ]

}

```

 

数据集为json格式,以二维数组的形式存储,第一个维度是颜色,第二个维度是每一帧数据。

 

本数据集分为训练集与测试集,分别从不同的复盘中提取。

 

#### 3. 使用说明

 

使用```json.load()```函数即可读取数据集,得到上述二维数组。数据集可以用于对敌方坦克轨迹的学习与预测。


以上数据集已经发布在人机对抗智能门户网技术共享之数据中心(http://turingai.ia.ac.cn/data_center/show),欢迎申请下载,改进提高。


    立即登录游客您好,可以登录后发布评论哦!
4
回复帖子 返回顶部

请选择对留言操作
删除留言(管理员或楼主)
问题反馈
请将您的宝贵意见反馈给我们