code: def q(self):
          
          if self._q is None:
              if self._euler is not None:
                  # get q from euler
                  self._q = self._euler_to_q(self.euler)
              elif self._dcm is not None:
                  # get q from DCM
                  self._q = self._dcm_to_q(self.dcm)
          return self._q
docs: Get the quaternion
          :returns: array containing the quaternion elements