Motion Controllers

From iPi Docs
Revision as of 09:51, 3 January 2017 by Andrew (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

iPi Motion Capture allows to use motion controllers in addition to cameras for improved tracking of smaller details.

  • Wrist rotations can be tracked only with motion controllers due to low resolution of video.
  • Though head can be tracked with camera, using a motion controller for that purpose greatly reduces the processing time and may provide better accuracy.

Essentially, a motion controller provides 3D orientation value which can be used to track rotations of a single bone it is attached to.

Equipment

PlayStation Move
Wii Remote with MotionPlus
Wii Remote Plus

iPi Recorder supports these models of motion controllers:

  • PlayStation Move
  • Wii Remote with MotionPlus
  • Wii Remote Plus, which has MotionPlus integrated

Your PC should be equipped with a Bluetooth radio module to connect with motion controllers. If you do not have a built-in one, you'll need an USB Bluetooth adapter.

Note.png
Note: It is required that Bluetooth adapter supports specification Bluetooth 2.1 with EDR. However, more modern adapters which support Bluetooth 3.0 or 4.0 are not guaranteed to work with PS Move or Wii Remote. To be on the safe side, use adapter capable of exactly BT 2.1 EDR, not greater.
Prefer Class 1 adapters as they have extended range of operation (up to 100m).

iPi Recorder does not limit the number of connected motion controllers. However, the hardware does. Usually, a single Bluetooth adapter can handle up to 4 PS Move controllers. This is sufficient for a single actor, but for multiple actors you may need more controllers. Thus, additional Bluetooth adapter(s) is required. Unfortunately, standard Windows Bluetooth drivers do not support multiple adapters. To use multiple Bluetooth adapters, it is necessary to install Motion in Joy drivers.

For PS Move, an USB to mini-USB cable is also required to charge your motion controller and for pairing (see next section).

Tip.png
Tip: Unless you already have Wii stuff, we strongly recommend to use PlayStation Move, because of its built-in magnetometer. In short, the presence of magnetometer gives a lot more stable orientation value. Without it, orientation tends to drift around vertical axis, and this leads to less accurate measurements.

Recording

To get your motion controller in the list of devices, it must be connected to a PC via Bluetooth. But before it can connect to your Bluetooth adapter, the controller must be paired with it. For that, press the Add Controller button in the toolbar, select device type you have, and then follow the instructions specific for this device.

recorder-add-controller.png

For PS Move, pairing is one-time process unless you reconnect motion controller to another PC or gaming console. Each time you connect controller to another host, it should be paired. After pairing, the Bluetooth connection is established automatically each time you power on the motion controller. To power on PS Move, press the PS button. To power off, hold down the PS button for a long time (about 10 seconds).

For Wii Remote, pairing should be done each time after Bluetooth connection is lost, powering off either the motion controller or the PC. This is another disadvantage of Wii Remote. To power off Wii Remote, hold down the Power button for a couple of seconds.

Note.png
Note: The recent revisions of Wii Remote Plus controllers may not work properly using the standard Bluetooth drivers. For them, you can use Toshiba Bluetooth stack.
recorder-psmove-in-device-list.png

After you have successfully paired the controllers with Bluetooth adapter, they should be visible in device list. Select them in addition to cameras and press the Record Video button. Motion controller is visualized as a rotating blue "brick" showing its orientation in space. Hover mouse on the controller's screen and you'll see some useful controls like battery indicator and view selection.

recorder-motion-controller-visualization.png

When controller is being used for the first time (or have not been used for a long period) a message is displayed over it saying it is not calibrated. Calibration of a motion controller (not confuse with calibration of cameras) is needed for more accurate measurements, so it is highly recommended to get through it every time you see this message. To run calibration process, just click on the message or press the CALIBRATE button in the on-screen controls.

After a motion controller is calibrated, you can use it in recording action videos.

Tip.png
Tip: You can use motion controller to start/stop recording (including background evaluation). Just hold PS Move's Start button, or Wiimote's A button for a few seconds, until you feel a vibration.
Tip.png
Tip: Generally, there is no need to enable motion controllers when recording calibration videos, because their data will not be used in the calibration process. However, you can use PS Move's light sphere as a light marker for calibration.
You can light it with different colors using on-screen controls for PS Move or by pressing corresponding buttons on PS Move itself. Buttons work even if PS Move is not selected for recording. White color usually works best for the calibration.
It is not recommended to light PS Move when recording action videos as it can lead to more tracking errors.
Buttons Color
Select + Circle
Red
Select + Square
Magenta
Select + Triangle
Green
Select + Cross
Blue
Select + Move
White
Select + Start
Yellow
Select + T(rigger)
Cyan
Select + PS Off

Tips on action video

Aiming at a camera
Standard grip

There are two main requirements:

  1. At some moment during the record (for example, at the beginning), you should aim with (each) motion controller at one of the cameras. This is needed to correctly orient the motion controller within the scene coordinate space in iPi Mocap Studio.
  2. For correct orientation of prop models in iPi Mocap Studio, hold the controller as if its side with buttons is a back side of a prop in a "standard" position — i.e. facing the actor's face when the arm with prop is stretched forward. Of course, you can use a non-"standard" grip of the controller if such a grip for a prop is implied by the scenario of the action.

Now, the tips:

  • For a more natural movement of hands you can attach motion controllers to outer side of hands with tape instead of holding.
  • The recommended location for a motion controller on the head is at the top, with controller's top (light sphere for PS Move) looking forward.
  • To aim at camera with on-head controller (which you can't see), move the head slowly within a reasonable range from assumed direction to a camera. Then you'll select a frame with the most appropriate direction in iPi Mocap Studio.
  • Write down which motion controller corresponds to which body part, by their order in iPi Recorder.
  • You can use special accessories for motion controllers like shooting attachments. In that case, the relative position of the controller to the prop is good known, so you just hold it as needed by the scenario (i.e. the requirement #2 is not relevant for this case).
  • You can change the grip of the motion controller during the action. The iPi Mocap Studio allows you to process every frame range with the same grip independently.

Tracking

There is a tab in iPi Mocap Studio named Motion Controllers. It is visible only when open project contains data from one or more motion controllers. Dealing with this data makes sense only after the tracking of the body is complete. In case of several controllers, data from each of the controllers is processed separately in any convenient order. Numbering of controllers correspond to their order in iPi Recorder when a video was recorded.

motion-controllers-tab.png

When a project with motion data is first created, you will see this data as one or more colored "bricks" floating somewhere under the actor's model. The color is used to differentiate motion controllers in the scene. You can change the for each controller color on the Motion Controllers tab.

To give more sense to this picture, for each controller you should specify a bone it is attached to. See the Attach to combobox. It contains LHand, RHand and Head bones. When attached, the controller's "brick" is displayed near the corresponding bone of actor's model. For a nicer look, you have an option to replace the default brick with several prop models like sword and pistol.

motion-controllers-attached.png

To make some use of motion controller's data, it first needs to be matched with the scene coordinate space. Assuming that scene's ground plane is horizontal, controller's pitch and bank angles already correspond to the scene. However, heading angle of controller's orientation is measured from some "arbitrary" origin direction (in terms of the scene). For PlayStation Move it's always the North direction, for Wii Remote — a direction it was oriented to when recording started. To match coordinates, knowing the scene coordinates for some reference orientation of the controller is needed. That is where aiming at a camera helps.

Tip.png
Tip: When using a motion controller for the head, do not forget to disable head tracking when doing the main tracking process of the body. This will save you much time on processing.

So you've done with the body tracking, and have attached the controller to a corresponding bone. Now find some frame where the actor is aiming with this controller at some camera. Ensure the body position has been tracked in this frame. Select the target camera as the default, pressing corresponding toolbar button. Pressing the Match with Camera #N button does matching. After matching, the prop model for the controller should be oriented perfectly as it was intended in the video. Unless the actor did not pay attention to a proper grip of the controller, especially regarding it's bank rotation.

Also you can manually edit position and rotation of the controller with the Move tool. Activate the tool, click on the controller's model in the scene, and then move and rotate the model to correspond to a position and orientation of an actual controller in the video. This may be used instead of aiming and automatic matching with camera, but is usually less accurate.

Tip.png
Tip: If an actor did not aim controller at any camera specifically, look thoroughly through all the frames — it is very likely that at some point the actor aimed at some camera by accident, at least in horizontal direction (this is sufficient).
Tip.png
Tip: If you have attached a controller to the head far from the default "top" location (say, at head's side above the ear), then you may adjust its position before pressing Match with camera to improve matching accuracy.

And finally — applying the motion controller's data to the bone rotation. First, determine you region of interest. Ensure that within this region of frames the actor maintains a fixed grip of the controller. Frames with different grip should be processed separately. Next, select some frame within the region where the orientation of actor's bone is well visible on video. Edit the orientation of model's bone with the Rotate tool to correspond to the video. When ready, press the Apply Motion Data button — and in all frames within ROI, the bone's orientation will be set automatically according to relative orientation of bone and controller in the current frame.

Tutorials and demos