Install
openclaw skills install ahrs-toolsAHRS quaternion decomposition and roll/pitch compensation utilities. Use when working with pywayne.ahrs.tools module for quaternion to Euler angle decomposition, or compensating orientation to zero pitch and roll using roll-pitch compensation method.
openclaw skills install ahrs-toolsThis module provides quaternion-based AHRS (Attitude and Heading Reference System) utilities.
from pywayne.ahrs.tools import quaternion_decompose, quaternion_roll_pitch_compensate
import numpy as np
# Quaternion decomposition
q = np.array([0.70710678, 0, 0, 0.707962]) # w, x, y, z
angle_all, angle_heading, angle_inclination = quaternion_decompose(q)
# Roll/pitch compensation
q_comp = quaternion_roll_pitch_compensate(q)
from pywayne.ahrs.tools import quaternion_decompose
import numpy as np
# Input quaternion (w, x, y, z)
q = np.array([w, x, y, z])
# Decompose into angles
angle_all, angle_heading, angle_inclination = quaternion_decompose(q)
# angle_all: Rotation angles around all axes (vertical + horizontal)
# angle_heading: Angle around vertical axis (inclination)
# angle_inclination: Angle around horizontal axis (bank)
from pywayne.ahrs.tools import quaternion_roll_pitch_compensate
import numpy as np
# Input quaternion (w, x, y, z)
q = np.array([0.989893, -0.099295, 0.024504, -0.098242])
# Compensate pitch and roll to zero
q_comp = quaternion_roll_pitch_compensate(q)
numpy - Array operationsqmt - OpenCV's quaternion module for conversionsangle_all is computed using 2*arccos/abs(quaternion_z)angle_heading uses arctan2(np.abs(quaternion_xy))angle_inclination uses 2*arcsin(np.abs(quaternion_xy))