Coder Social home page Coder Social logo

motionviewer's Introduction

MotionViewer

Data presentation for NDI and HoloLens based on Qt

MotionViewer程序设计说明

一、概览

名称:MotionViewer 功能:

  1. 采集NDI的Marker点数据并做相应处理;

  2. 将坐标数据发送给HoloLens;

  3. 可视化HoloLens视频流与扫描设备(Kinect)视频流*;

  4. 配准设置与结果可视化*;

    注:*为扩展功能,暂时不实现,预留接口

依赖库:

  1. Qt
  2. OpenCV 视觉库
  3. Eigen 矩阵运算库

二、具体设计

功能1:采集NDI的Marker点数据并做相应处理

功能需求:

  1. 串口或网口(预留)通信,同步收发指令(一问一答);
  2. 解码,根据NDI通信规则解码出各个marker的坐标(x,y,z)(Marker点大概在20个以内);
  3. 显示所有Marker点坐标
  4. 通过下拉菜单选择需要计算方法,并点击按钮计算,将结果显示。显示标定件位姿(3-4个标定件)
  5. 显示各标定件位置关系图(预留)

设计思路:

  1. 自定义NdiComm类,负责实现NDI的通信功能,隐藏通信实现细节
    1. 利用QTcpSocket与QTcpServer类实现TCP通信
    2. 利用QSerialPort类实现串口通信
  2. 自定义NdiViewer类,用来存储NDI数据并进行相应处理
    1. 利用QVector3D类存储每个Marker点坐标
    2. 利用**QList**管理所有Marker点坐标
    3. 定义获取当前标定件位置获取投影后位置更新矫正矩阵三个函数

功能2:将坐标数据发送给HoloLens

功能需求:

  1. 利用TCP或UDP将NDI得到的坐标信息发送给HoloLens;
  2. 可以作为服务器或者客户端;
  3. 对于服务器,可以设置服务器IP,服务器端口号等相关信息;
  4. 对于客户端,可以设置目标IP,目标端口号等相关信息;
  5. 可以发送追踪机械的位姿信息;

设计思路:

  1. 自定义HoloComm类,负责实现NDI的通信功能,隐藏通信实现细节
    1. 利用QTcpSocket与QTcpServer类实现TCP通信
    2. 利用QUdpSocket类实现UDP通信

功能3:可视化HoloLens视频流与扫描设备(Kinect)视频流

功能需求:

  1. 可视化HoloLens视频流
  2. 可视化扫描设备(Kinect)视频流

功能4:配准设置与结果可视化

功能需求:

  1. 显示术前模型与术中采集模型
  2. 显示术前模型与术中采集模型的配准结果,并显示获得的旋转矩阵

motionviewer's People

Contributors

rancho86 avatar thinkexist1989 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.