Giter VIP home page Giter VIP logo

kinectbodytracker's Introduction

KinectBodyTracker

Description

This Visual Studio project is adapted from an example of Kinect SDK 2.0 named BodyBasics. It features:

  1. Extracting the position of the spine base of the subject;
  2. Calculating the linear and angular velocity commands for a differential drive robot to follow the subject or to move the robot along a predefined path;
  3. Transforming the coordinates of the body joint positions from a Kinect frame to a inertial frame;
  4. Transmitting the commands to a P3AT robot by using Aria SDK;
  5. Receiving UDP synchronization packets from an Odroid computer, one packet per second.

Prerequisite

  1. Windows 10
  2. Kinect SDK 2.0
  3. Visual Studio 2017 (Version 15.7.4 or above)

Cloning

Since it contains a submodule, please use option "--recurse-submodule" to clone to a local directory.

git clone --recurse-submodule https://github.com/zchenpds/KinectBodyTracker

Compiling the source

  1. Before compiling the source, you might need to retarget the solution if you have a higher version of Windows SDK. To do this, right click on your solution in the Solution Explorer, and then choose "Retarget solution".
  2. Once the source code is compiled, a .exe file will be generated in .\Release in case of Release mode, or in .\Debug in case of Debug mode. Currently, only the Release build works.

Format of the logged files

data_yyyymmdd_hh_mm_ss_Kinect0.csv

-. tO : Last available Odroid timestamp (uSecs) -. tOW : Windows timestamp associated with the last available Odroid timestamp (mSecs) -. trigger: sync signal -. tK : Last available Kinect timestamp (mSecs) -. tKW : Windows timestamp associated with the last available Kinect timestamp (mSecs) -. **KLKneeX, KLKneeY, KLKneeZ, ** **KLAnkleX, KLAnkleY, KLAnkleZ, ** **KLFootX, KLFootY, KLFootZ, ** **KRKneeX, KRKneeY, KRKneeZ, ** KRAnkleX, KRAnkleY, KRAnkleZ, KRFootX, KRFootY, KRFootZ: Left/Right knee/ankle/foot x/y/z coordinates (meters, relative to Camera frame) -. tDiffR : the time difference between the previous robot data packet and the Kinect data packet. (The robot position corresponding to this packet of Kinect data must be extrapolated/inferred from the previous robot data packet.) -. **WLKneeX, WLKneeY, WLKneeZ, ** WLAnkleX, WLAnkleY, WLAnkleZ, WLFootX, WLFootY, WLFootZ, WRKneeX, WRKneeY, WRKneeZ, WRAnkleX, WRAnkleY, WRAnkleZ, WRFootX, WRFootY, WRFootZ: Left/Right knee/ankle/foot x/y/z coordinates (meters, relative to World frame)

data_yyyymmdd_hh_mm_ss_Robot0.csv

-. tR : Windows timestamp at which the last SIP packet was received. -. tRW : Windows timestamp asscociated with the last Robot state update. -. x : Robot x coordinate (meters, relative to initial pose, aka World frame) -. y : Robot y coordinate (meters, relative to initial pose, aka World frame) -. th : Robot orientation (radians, relative to initial pose, aka World frame) -. v : Robot linear velocity (meters/sec) -. w : Robot angular velocity (radians/sec) -. batVolt : Battery voltage (volts) -. isFollowing : Indicating whether following is enabled (0/1) -. xVm : x coordinate of the virtual marker's current position (meters, relative to the world frame) -. yVm : y coordinate of the virtual marker's current position (meters, relative to the world frame) -. dist : the arc length the robot has traveled along the predefined path. -. xVmG : x coordinate of the virtual marker's goal position (meters, relative to the world frame) -. yVmG : y coordinate of the virtual marker's goal position (meters, relative to the world frame) -. vD : Desired linear velocity (meters/sec) -. wD : Desired angular velocity (radians/sec) -. distVm : Desired distance of virtual marker -. headVm : Desired heading of virtual marker -. vScale : Proportional coefficient for control of linear velocity (dimensionless) -. wScale : Proportional coefficient for control of angular velocity (dimensionless) -. distDesired : Desired distance of the subject from the robot -. thDesired : Desired heading -. xError, yError : x and y coordinates of the path following controller. -. vx, vy : x and y coordinates of the desired speed. -. vNew, wNew : The linear and angular velocity commands calculated from the path following error. -. xVmD, yVmD : (Forget about this)

kinectbodytracker's People

Contributors

zchenpds avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

ral-stevens

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.