BuildIT allows storing arbitrary attributes along with each point in a cloud. Some attributes are computed and attached automatically by BuildIT.
Single-point devices (as opposed to scanning devices) will store a timestamp and the FARO 6Probe will allow storing Euler angles. Additional attributes can be defined by the user when importing clouds or creating them through the Python interface. The full list of those available attributes for a given cloud is listed in the “Details” tab. This interface shows the attribute’s name and its data type.
Per-point attributes can be retrieved through the Python interface as NumPy ndarray objects. They can also be exported along with the cloud’s coordinates as a csv file via the “Automate: Export per-point attributes” command:
When recording point clouds with a FARO 6Probe, the full 6 degrees of freedom information is stored in the BuildIT point cloud as per-point attributes in the form of Euler angles. Those angles follow the ‘z-x-z’ (instrinsic) notation.
Using this convention, the x-y-z frame is rotated three times: first about the z-axis by an angle ψ, then about the new x-axis by and angle θ, and finally about the newest z-axis by an angle σ.
The SciPy Python library offers a convenient tool for converting those angles to the user’s notation of choice (matrix, axis-angle, quaternions, etc.).
# Values in typical range
# Euler angles
a = 0.075115; b = 1.795572; c = 1.178241
from scipy.spatial.transform import Rotation as R
r = R.from_euler('zxz', [-a,-b,-c], degrees = False)