Skip to content
This repository

PS Move Controller Low-Level API

branch: master

Merge pull request #103 from nitsch/firmware-info-support

Add utility for retrieving Move firmware info.
latest commit 9e0e8554f4
Thomas Perl authored April 17, 2014
Octocat-spinner-32 bindings Update Unity bindings submodule to latest version (with serial) January 05, 2014
Octocat-spinner-32 contrib Change build-osx-snapshot to build against x86_64 only February 16, 2014
Octocat-spinner-32 debian Add support for debug symbol packages, Qt. September 25, 2013
Octocat-spinner-32 examples Updated example September 23, 2013
Octocat-spinner-32 external PS Move API 3.1.0: Support the PSEye on OS X via PS3EYEDriver January 10, 2014
Octocat-spinner-32 include Removed unnecessary ifdefs April 03, 2014
Octocat-spinner-32 src Add utility for retrieving Move firmware info. April 16, 2014
Octocat-spinner-32 .gitignore CMake: Make building the tracker module optional August 12, 2012
Octocat-spinner-32 .gitmodules PS Move API 3.1.0: Support the PSEye on OS X via PS3EYEDriver January 10, 2014
Octocat-spinner-32 CMakeLists.txt Add utility for retrieving Move firmware info. April 16, 2014
Octocat-spinner-32 COPYING Clarify GPL/BSD licensing - with/without AHRS algorithm June 11, 2013
Octocat-spinner-32 Doxyfile Doxyfile: Output XML documentation December 05, 2012
Octocat-spinner-32 INSTALL Big restructuring / new layout (see LAYOUT file) August 07, 2012
Octocat-spinner-32 LAYOUT Initial support for sensor fusion, glm as dependency October 10, 2012
Octocat-spinner-32 README PS Move API 3.1.0: Support the PSEye on OS X via PS3EYEDriver January 10, 2014
Octocat-spinner-32 README.moved moved: Add instructions, client API calls November 20, 2012
Octocat-spinner-32 README.osx Updated OSX readme December 10, 2012
Octocat-spinner-32 README.ubuntu Add build instructions for Ubuntu September 27, 2012
Octocat-spinner-32 README.win32 Update and extend build instructions for Windows January 07, 2013
README

            ____  _____    __  ___                   ___    ____  ____
           / __ \/ ___/   /  |/  /___ _   _____     /   |  / __ \/  _/
          / /_/ /\__ \   / /|_/ / __ \ | / / _ \   / /| | / /_/ // /
         / ____/___/ /  / /  / / /_/ / |/ /  __/  / ___ |/ ____// /
        /_/    /____/  /_/  /_/\____/|___/\___/  /_/  |_/_/   /___/

                                   http://thp.io/2010/psmove/


The PS Move API is an open source[1] library for Linux, Mac OS X and Windows
to access the Sony Move Motion Controller via Bluetooth and USB directly from
your PC without the need for a PS3. Tracking in 3D space is possible using a
PS Eye (on Linux and Windows), an iSight camera (on Mac OS X) or any other
suitable camera source.

The PS Move API is used as the library implementation of the MoveOnPC[2]
project, and has successfully participated in Google Summer of Code 2012[3].
Detailed documentation can be found in my master's thesis[4] about sensor
fusion.


Core Features
-------------

 * Pairing of Bluetooth controllers via USB
 * Setting LEDs and rumble via USB and Bluetooth
 * Reading inertial sensors and buttons via Bluetooth
 * Tracking up to 5 controllers in 3D space via OpenCV
 * 3D orientation tracking via an open source AHRS algorithm
 * Sensor fusion for augmented and virtual reality applications

Supported Languages
-------------------

 * Core library written in C for portability and performance
 * SWIG-based bindings for Python, Java, Processing and C#

Need Help?
----------

 * Free community-based support via the PS Move Mailing List[5]
 * Professional support and custom development upon request[6]

Building and Installation
-------------------------

 * See the INSTALL and README.* files for details on building and
   installing the PS Move API on your system
 * Build scripts that we use for building binary releases can be found
   in the contrib/ folder
 * A debian/ folder is provided for building .deb packages
 * Contributions (.spec files, etc..) for other distributions welcome

Hacking the Source
------------------

 * See the LAYOUT file for information on how the source tree is laid out
 * Coding style: No strict rules; keep consistent with the surrounding code
 * Patches should be submitted on Github as pull request[7]
 * Bug reports and feature requests can be added to the issue tracker[8]

Environment Variables
---------------------

 PSMOVE_TRACKER_CAMERA

     If set, this is the camera that will be used when using
     psmove_tracker_new() instead of using auto-detection

   Example: export PSMOVE_TRACKER_CAMERA=2  # Will use the 3rd camera

 PSMOVE_TRACKER_FILENAME

     If set, this will use a video file to playback instead of
     capturing from a camera. Any camera settings are ignored.

   Example: export PSMOVE_TRACKER_FILENAME=demo.avi # Will play demo.avi

 PSMOVE_TRACKER_ROI_SIZE

     If set, this controls the size of the biggest (initial) ROI that will
     be used to track the controller. Bigger means slower in general, but
     recovery from tracking loss might be faster.

   Example: export PSMOVE_TRACKER_ROI_SIZE=200

 PSMOVE_TRACKER_WIDTH, PSMOVE_TRACKER_HEIGHT

     If set, these variables control the desired size of the camera picture.

   Example: export PSMOVE_TRACKER_WIDTH=1280
            export PSMOVE_TRACKER_HEIGHT=720


Licensing
---------

The PS Move API source code is released under the terms of a Simplified
BSD-style license, the exact license text can be found in the COPYING file.

Some third party code under "external/" might be licensed under a different
license. Compiling PS Move API with these modules is optional, you can use
CMake options to configure which features you need. CMake will give you a
hint about the library licensing for your current configuration depending
on your options at configure time.

In general, all dependencies are under a MIT- or BSD-style license, with the
exception of the following dependencies:

 - Madgwick AHRS: Released under the terms of the GNU GPL
   For orientation tracking
   CMake option: PSMOVE_USE_MADGWICK_AHRS (disabled by default)

 - TUIO CPP: Released under the terms of the GNU GPL
   For the TUIO server example (only in the tuio_server binary)
   CMake option: PSMOVE_BUILD_TUIO_SERVER (disabled by default)

 - PS3EYEDriver: Released under the MIT license, parts based on GPL code
   For interfacing with the PSEye camera on OS X (only in the tracker)
   CMake option: PSMOVE_USE_PS3EYE_DRIVER (disabled by default)

When you enable the Madgwick AHRS algorithm, the resulting library can only
be used under the terms of the GNU GPL. Same with the TUIO Server, although
here only the "tuio_server" binary is affected, no the PS Move API library.

More information about the third party modules and licenses:

  - http://thp.io/2012/thesis/thesis.pdf (page 51-53)
  - File "external/README" in this source tree


More Information
----------------

 * License: Simplified BSD-style license (see COPYING and "Licensing" above)
 * Maintainer: Thomas Perl <m@thp.io>
 * Website: http://thp.io/2010/psmove/
 * Git repository: https://github.com/thp/psmoveapi
 * Mailing list: psmove@googlegroups.com (see [5] for details)


This README file was last updated on 2012-12-12 by thp


[1] https://github.com/thp/psmoveapi/blob/master/COPYING
[2] http://code.google.com/p/moveonpc/
[3] http://www.google-melange.com/gsoc/homepage/google/gsoc2012
[4] http://thp.io/2012/thesis/
[5] https://groups.google.com/forum/#!aboutgroup/psmove
[6] http://thp.io/about
[7] https://github.com/thp/psmoveapi/pulls
[8] https://github.com/thp/psmoveapi/issues
Something went wrong with that request. Please try again.