Skip to content

zhanglbthu/SmartWear

Repository files navigation

Wearable Device IMU Data Collection

Introduction

这个仓库提供了从日常可穿戴设备(如智能手机、智能手表和耳机)或专业IMU设备(Noitom)收集IMU等传感器数据并进行动作捕捉Livedemo演示的工具和示例代码。支持的平台包括Android、华为和苹果设备

System Overview

支持安卓系统的手机+手表,华为系统的手机+手表+耳机,苹果系统的手机+手表+耳机以及Noitom的传感器数据传输及Livedemo可视化演示

Installation

Android

  1. 手机: 从链接下载PhoneIMU.apk并安装

  2. 手表 (若有): 从链接下载WatchIMU.apk并安装

Huawei

华为设备使用一个统一的应用,支持手机、手表和耳机,从链接下载HuaweiIMU.apk并安装

Apple

苹果设备使用一个统一的应用,支持手机、手表和耳机,参考IMUPoser仓库链接中的说明在手机侧下载应用

Noitom

Noitom设备使用专业的软件,包括:

UNI Tool V2.0

主要用于校准Noitom IMU的磁力计

Axis Lab

主要用于连接Noitom IMU并进行数据传输

Livedemo

我们使用Unity来可视化实时演示。要开始:

  1. 这个链接下载Mocap Live Demo Unity package
  2. Unity Hub下载并安装Unity Editor version 2022.3.20f1c1
  3. 在Unity Editor中打开下载的项目
  4. 在Unity Editor中,转到Scenes文件夹并加载MotionViewer场景

Usage

Android

准备工作: 打开数据传输应用并设置传感器序号和远程ip+端口

左侧: 初始应用界面. 右侧: 点击Start后应用界面.

  • 在设置好传感器序号和远程IP+端口后,点击Start按钮开始数据传输
    • 传感器序号: 0-左手腕,1-右手腕,2-左大腿口袋,3-右大腿口袋,4-头部 (若有耳机)
    • 远程IP和端口: 在电脑端运行cmd窗口,输入ipconfig获取本机IPv4地址,端口默认设置为8989

传感器数据可视化

可视化某个传感器得到的加速度和旋转信息,确保信息传输正常和数据合理

  1. 在config.py文件中设置device_ids

    class AndroidDevices:
       device_ids = {
          "Left_Watch": 0,
          "Right_Phone": 3,
       }

    根据实际使用的传感器数量和序号进行设置,若只有手机/手表就把另一行注释掉

  2. 启动数据可视化脚本

    python test_device.py --android --view_ori --view_acc --idx 0
    • --android: 指定使用安卓设备
    • --view_ori: 可视化方向信息,可选
    • --view_acc: 可视化加速度信息,可选
    • --idx: 可视化第几个传感器,0表示第一个传感器

    运行成功后的效果如链接中的视频所示: 视频链接

实时动作捕捉Livedemo

  1. 在config.py文件中设置device_ids
    • 与上面相同
  2. 通过Unity Hub打开Livedemo项目并启动play模式
    • 点击Unity Editor顶部的Play按钮启动实时演示

  1. 启动Livedemo脚本

    python livedemo.py --android --mocap
    • --android: 指定使用安卓设备
    • --mocap: 使用unity进行实时动作捕捉可视化

    运行成功后的效果如链接中的视频所示: 视频链接

  2. Calibration 在运行Livedemo脚本之后,运行mocap算法之前,需要进行传感器的Calibration操作,相关知识见IMU Calibration笔记,具体而言

    • 当终端显示Stand in N pose for 3 seconds, then step forward and stop in the N-pose again时,按回车键,保持N-Pose站立3s
      • N-Pose: 双脚与肩同宽,双臂自然下垂,掌心向内
    • 等到终端显示Step forward now时,向前迈出一步并停在N-Pose姿势
    • 若终端显示Calibration succeeded则说明校准成功,若显示Calibration failed则说明校准失败,需要重新进行上述步骤

Huawei

准备工作: 打开数据传输应用并设置传感器序号和远程ip+端口

  • 在设置好传感器序号和远程IP+端口后,点击上方开始按钮开始数据传输
    • 在开始数据传输前点击上方的设备管理按钮,连接手表/耳机等设备
    • 其他细节与安卓类似

传感器数据可视化

可视化某个传感器得到的加速度和旋转信息,确保信息传输正常和数据合理

  1. 在config.py文件中设置device_ids

    class HuaweiDevices:
       device_ids = {
          "Left_Watch": 0,
          "Right_Phone": 3,
          "Head": 4,
       }
  2. 启动数据可视化脚本

    python test_device.py --huawei --view_ori --view_acc --idx 0
    • --huawei: 指定使用华为设备
    • --view_ori: 可视化方向信息,可选
    • --view_acc: 可视化加速度信息,可选
    • --idx: 可视化第几个传感器,0表示第一个传感器

实时动作捕捉Livedemo

  1. 在config.py文件中设置device_ids
    • 与上面相同
  2. 通过Unity Hub打开Livedemo项目并启动play模式
    • 与上面相同
  3. 启动Livedemo脚本
    python livedemo.py --huawei --mocap
    • --huawei: 指定使用华为设备
    • --mocap: 使用unity进行实时动作捕捉可视化

Apple

准备工作: 打开数据传输应用并设置传感器序号和远程ip+端口

传感器数据可视化

可视化某个传感器得到的加速度和旋转信息,确保信息传输正常和数据合理

  1. 在config.py文件中设置device_ids

    class AppleDevices:
       device_ids = {
          "Left_watch": 0,
          "Left_phone": 2,
          "Left_headphone": 4,
       }
  2. 启动数据可视化脚本

    python test_device.py --apple --view_ori --view_acc --idx 0
    • --apple: 指定使用苹果设备
    • --view_ori: 可视化方向信息,可选
    • --view_acc: 可视化加速度信息,可选
    • --idx: 可视化第几个传感器,0表示第一个传感器

实时动作捕捉Livedemo

  1. 在config.py文件中设置device_ids
    • 与上面相同
  2. 通过Unity Hub打开Livedemo项目并启动play模式
    • 与上面相同
  3. 启动Livedemo脚本
    python livedemo.py --apple --mocap
    • --apple: 指定使用苹果设备
    • --mocap: 使用unity进行实时动作捕捉可视化

License

MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages