Git Product home page Git Product logo

labanotationsuite's Introduction

Open Source Samples for Service Robotics

License: MIT

Labanotation Suite

License: MIT

Authors: David Baumert, Zhaoyuan Ma, John Lee, Sven Pleyer, Takuya Kiyokawa, Katsushi Ikeuchi

This Labanotation Suite repository contains a robot gesture authoring system comprised of software tools, source code, simulation software and sample data that supports experimentation with the concepts presented in the paper Describing Upper-Body Motions Based on Labanotation for Learning-from-Observation Robots (International Journal of Computer Vision, December 2018). This suite can be used to help robots gesture in natural and meaningful ways.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Robot Gesture Authoring System Description

System Modules:

LabanSuite_Modules.jpg

System Diagram:

LabanSuite_BlockDiagram.jpg

Gesture Authoring Tools

A Windows application that connects to a Kinect sensor device and provides a user interface for capturing and storing gestures performed by human subjects. It's primary output data is human stick-figure joint positions in a .csv format, but can also capture corresponding RGB video and audio at the same time.

A Windows application that loads human joint position .csv files produced by the KinectReader or other Gesture Authoring Tools, as well as optional corresponding video and audio files. It provides a timeline-based method to edit audio and joint movement sequences into meaningful gestures.

A Python script application that loads a Kinect joint .csv file representing a human gesture, provides algorithmic options for automatically extracting keyframes from the gesture that correspond Labanotation data, and provides a graphical user interface for selection and modification of the extracted keyframes. Additionally, it saves the resulting gesture data in a .json file format suitable for controlling robots running a gesture interpretation driver, as well as .png graphic file renderings of the charts and diagrams used in the interface.

MSRAbot Simulation Software

A ready-to-run file tree that can be added to an HTTP server and viewed by most modern web browsers. The files implement a javascript simulation environment that hosts an animated model of the MSRAbot humanoid robot, along with viewing controls and an ability to render new JSON gesture files created using the Gesture Authoring Tools in this repository.

FAQ

  • Q Who should I contact regarding this repository?

  • A Please create a Github issue or email [email protected] with any questions or feedback.

  • Q Is this code suitable for non-robotic applications such as documenting dance steps?

  • A Currently, the gesture capture system only addresses movement of the upper human torso. However, we may expand to capturing the entire human skeleton in the future.

Citation

If you want to cite this work, please use the following bibtex code

@Article{Ikeuchi2018,
author="Ikeuchi, Katsushi
and Ma, Zhaoyuan
and Yan, Zengqiang
and Kudoh, Shunsuke
and Nakamura, Minako",
title="Describing Upper-Body Motions Based on Labanotation for Learning-from-Observation Robots",
journal="International Journal of Computer Vision",
year="2018",
month="Dec",
day="01",
volume="126",
number="12",
pages="1415--1429",
issn="1573-1405",
doi="10.1007/s11263-018-1123-1",
url="https://doi.org/10.1007/s11263-018-1123-1"
}

labanotationsuite's People

Contributors

davidbaumert avatar fethan avatar iory avatar microsoftopensource avatar naoki-wake avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

labanotationsuite's Issues

Request: Update LabanEditor to use latest Python version

Currently, the LabanEditor application is dependent of Python2.7.

It would improve ease of installation and usability if it was updated to support at least Python3.7.

Multiple versions of Python can be hosted by popular development environments such as Microsoft Visual Studio 2019 or Anaconda. However, use of these work-arounds adds complexity to setting up this software system and distracts from the primary focus of gesture analysis.

Additional context
Add any other context or screenshots about the feature request here.

Request: add Kinect for Azure as a gesture capture device

Currently, the system only supports the Kinect device for motion capture. The Kinect device is no longer being manufactured and may not be available to interested users.

Applicability would be increased if the system supported the Kinect for Azure device, which is available for purchase today.

Request: add support for more robots

Currently, the system only supports gesture playback on a real or virtual MSRAbot.
This robot cannot be purchased and must be custom built by hand.

Applicability of the system would be increased if other robots such as the gestureBot, Pepper, Robotis Mini, or Robotis OP2 were supported.

Question: timestamp units in CSV file

To test LabanEditor, I created a CSV file based on the sample file and loaded it into LabanEditor, but the process stopped halfway through.
When looking at the code, it seemed to be branching between millisecond and nanosecond based on the time offset.
The timestamp of the CSV file I created is in nanosecond units, but since there is no time offset, the program treats it as a millisecond, which seems to be why it stopped.

If no using the Kinect Reader's input directly,

  • handling it as nanosecond by adding an offset of 10e7,
  • or handling it in milliseconds without the offset,
    which is better? Will there be any difference in the results?

Request: add 2D gesture capture from video sources

Currently, the system only can capture body motions using a Kinect device (which includes a depth sensor).

The amount of available data for gesture capture and analysis would be increased if body motions could be captured from 2D video sources.

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.