Multi Camera Setups

<< Click to Display Table of Contents >>

Navigation:  NxLib API > HowTo's > Multi Camera Setups and Calibrations >

Multi Camera Setups

The NxLib provides a number of functions to simplify the usage of multi camera setups. Before cameras can be combined into a single capture system, they have to be calibrated together. To do this, you can use the calibration wizard that is contained in NxView. Simply select two cameras that you want to calibrate together and follow the instructions on the screen. After the calibration, the relative position and orientation of the two cameras is known and saved into one of the camera's EEPROM.

Each camera can store one link (relative position and orientation) to another coordinate system. The linked coordinate system can either be another camera, or a coordinate system that is specified in the Links node.

Links

Reference Coordinate Systems

As each camera stores exactly one transformation into a destination coordinate system, a multi camera setup can always be seen as a tree of linked cameras. The link is stored as a transformation, together with the name of the destination coordinate system in the camera's Link node. The destination coordinate system (which is stored in the camera's Target node) can either be the serial number of another camera or the name of a coordinate system that is found in the Links node. By default, some of the NxLib's commands use the coordinate system "Workspace" to refer to the workspace system.

CameraTree

Whenever a camera computes coordinates, it recursively follows its link and transforms the coordinates accordingly. The link chain stops when a coordinate system has an empty target node or the target coordinate system does not exist below the Links node. The coordinates will be returned relative to the top-most coordinate system that can be reached this way.

Note: In case your link tree contains loops, cameras with links ending in the loop will use their own camera coordinate system as reference.

Note: When your link tree is broken apart into multiple trees, all root nodes are assumed to be equivalent (i.e. linked by an identity transformation).

Link Tree Example

Assume you want to calibrate a capture system consisting of two stereo cameras ("123" and "789") and one color camera ("456"). After mounting the cameras, you can first calibrate the two stereo cameras together, by selecting them in NxView and clicking the "Calibrate..." button. We decide that the resulting link should be stored in the stereo camera with serial number "789". We then add the color camera "456", by calibrating it against the stereo camera "123" in the same way; the calibrated link is automatically stored in the color camera. When we open all three cameras together, we can additionally calibrate the workspace system (see the workspace calibration how-to for information on how this is done). NxView then automatically decides to store the workspace link in the camera "123", as it is the only camera with an empty link. The resulting link tree looks like this:

3CameraSetup

When capturing point clouds with the stereo cameras, each point cloud is automatically transformed into the common reference system. In other words, each camera follows it's links along the tree towards the root and transforms it's point cloud into the root coordinate system by applying the transformations along the path to the root. Thus, your point clouds all live in the same coordinate systems and can be combined by simple merging, as illustrated in the following picture:

3CameraSetupWithPointClouds