Skip to content

ganghui22/FITSimulationPlatform

Repository files navigation

FITSimulationPlatform

  • 介绍

    我们将以办公室为主要的实验场景,将智能体定位成人类助手,在动态环境中,通过实时监控和收集人们在社交软件上的对话内容,提取到人物的位置信息变化,实时更新环境中的语义信息,为机器人在物品传送中的导航任务提供先验知识,以便机器人可以快速的完成任务。这种从对话中提取动态信息的方式将会比机器人通过人脸识别盲目的进行目标人物搜索更加高效,其主要过程如下:

    1. 机器人实时监控和收集办公室工作人员在社交软件下的对话

    2. 将对话进行三元组的关系抽取,包括人物、地点和时间的三元组关系对。

    3. 利用时空预测器对初始场景图谱在时间上进行长期的增量式学习和更新,实现从当前和过去截取到的场景信息去预测未来的场景信息。

    4. 机器人根据动态场景图谱获得语义信息,通过语义导航实现物品运送的任务,并最终在实物平台上验证。

  • 安装

    1. 克隆本仓库

    2. 进入工程,配置环境

      conda env create -f environment.yaml
      
  • 结构

    .
    ├── Graph
    ├── NlpToolKit
    ├── ProfilePicture
    ├── PathPlanningAstar
    ├── QT5_NLP.py
    ├── QtCustomComponents
    ├── README.md
    ├── data
    └── update_time_space_graph.py
    
    

    说明:

    1. NlpToolKit一共分为两个部分,对群聊对话的三元组抽取和对机器人的指令解析处理。

      • DialoguePrediction.py利用Bert模型将提取的text送进网络中,即可从中提取出<人物,地点,时间>三元组。

      • InstructionPrediction.py对指令进行解析,从指令中提取出机器人完成传送的任务的动作序列。

        注:如果提取出的动作序列中有人物,则向Graph中请求当前时刻下人物对应的地点,并将地点返回给机器人。

    2. Graph中的DynamicSpaceTimeGraph.py在接收到提取出的三元组关系后,根据三元组之间的信息,实时更新动态时空图谱。

    3. PathPlanningAstar是利用给定的目标点和导航地图,通过Astar算法进行路径规划。

    4. QT5_NLP是利用QT5做的一个仿真平台,集成了三元组抽取、指令解析、动态时空图谱的更新和路径规划模块。

  • 使用

    1. 准备地图

      .
      ├── PathPlanningAstar
      │   ├── Simulator_llj.py
      │   ├── __init__.py
      │   ├── astar.py
      │   ├── map_name.png
      │   ├── map_nameDealing.png
      │   ├── localtion.py
      │   ├── middle.png
      │   ├── result.png
      │   ├── util_llj
      │   │   ├── AStar.py
      │   │   ├── BFS.py
      │   │   ├── Cell.py
      │   │   ├── Datatypes.py
      │   │   ├── GridWorld.py
      │   │   ├── Init.py
      │   │   └── __init__.py
      │   └── water_api.py
      
      • 准备一张用激光雷达扫描出来的地图(map_name.png), 放在PathPlanningAstar目录下。
      • 运行water_api.py,生成预处理后的地图map_nameDealing.png(用在QT5的仿真界面的显示)和middle.png(用于路径规划)
    2. 准备初始图谱

      .
      ├── Graph
      │   ├── DynamicSpaceTimeGraph.py
      │   ├── Graph.json
      │   ├── __init__.py
      │   └── graph_update.png
      
      调用Graph/DynamicSpaceTimeGraph.py中的init_graph(person, location)函数,传入人物和办公室,可随机初始化一个存有<人物,地点>的Graph.json文件。(也可根据个人需要在更改初始的人物地点关系。)
    3. 运行QT5_NLP.py

.........(待更新)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages