3D Coordinate Frames
To describe the motion in 3D space, we need to define a coordinate system. A coordinate system defines 3-dimensional space with three perpendicular axes, which are usually called as x-axis, y-axis, and z-axis. When visualized, these axes are rendered in red, green, blue colors respectively.
The origin of the coordinate frame is generally set to a point in 3D space, usually by the pre-determined position in Image target or QR code target. The position of another point in 3D space can be described by the distance between the point and the origin in the x, y, and z direction respectively. This distance is called the translation of the point to the coordinate frame.
The rotation directions are also defined by the axes directions. The most common convention for the rotation direction is the right-hand rotation rule, where the thumb of the right hand represents the axis' direction and the direction of the rest of the fingers curling is the rotation direction. The Track framework uses the same convention for the rotation direction.
The Track framework uses a right-handed coordinate system , which defines the x, y, and z axes in the right-hand's order (thumb, index, middle finger). This is used in the popular open-sourced computer vision library OpenCV. Many Game engines, for example, Unity Engine, use a left-handed coordinate system , which defines the x,y, and z axes in the left-hand order.
The Track framework provides a convenient API interface to load 3D rotation and translation data in the coordinate system of your choice. The composition of 3D position and rotation is also called transformation or 3D pose .