How it works
Chordata was developed to be used. Is not the consequence of an extensive research, instead it was the progressive implementation of each one of its parts that guided me through the study of the several disciplines that give life to motion capture. A consequence of this pragmatic approach is a system about which I’m aware of every single implementation detail, but that still lacks a comprehensive taxonomy. This is a first attempt to create a complete description of how the system is implemented.
This document is part of a public the knowledge base in the form of a wiki. That type of content structure allows this document to constantly grow through the contribution of whoever thinks have something to say about the Chordata system, the motion capture in general or any of the many technical fields that make that discipline possible. If you feel like contributing take a look here.
- We will begin with a general description of the main parts of the system and the way that they are related to each other (§1).
- An specific description of each of the specific parts will follow in §2. By “specific” we intend hardware and software designed exclusively for this system (as opposed to parts commonly available).
- A description of how the sensor data is processed can be found on §3. This chapter begins by stating that the most fundamental property that we should try to pull out from the sensors is their orientation (not the position as you might believe!). Then we will briefly describe how an orientation can be expressed using a Quaternion and how the raw data from the sensors is transformed into an orientation.
- Chapter 4 will cover calibration: The differences between sensor calibration and in-pose calibration, and a detailed explanation of the latter.
- A fundamental aspect of the Chordata functionality is the network communication between the gear on the performer’s body and the client which is receiving the capture. A description of the forms that the network can take is included in §5, and a summary of the Chordata specific networking protocols can be found in §6.
- As a way to apply all the concepts in §7 we will go through the creation of a simple client in python.
- As you can see many fields of knowledge are covered in this document. There’s a not negligible probability that at least some aspects of them are described in a not technically accurate manner. If you are an expert in one specific topic, and find some mistakes or ways to improve parts of this document please feel free to contribute by suggesting modifications to the wiki.
- At the end of this document you can find a glossary describing most of the specific terms used in this guide, and in the Chordata documentation in general, in the way that they are intended within Chordata.