示例#1
0
 def alpha(self):
     if self._alpha.any():
         return self._alpha
     elif self.do_diff:
         self._alpha = np.array(u.diff(self.w, self._t))
         return self._alpha
     raise ValueError('No ang. acceleration data available')
 def a(self):
     if self._a.any():
         return self._a
     elif self.do_diff:
         self._a = np.array(u.diff(self.v, self._t))
         return self._a
     raise ValueError('No acceleration data available')
示例#3
0
 def w(self):
     if self._w.any():
         return self._w
     elif self.do_diff:
         self._w = np.array(u.diff(self.r, self._t))
         return self._w
     raise ValueError('No ang. velocity data available')
 def v(self):
     if self._v.any():
         return self._v
     elif self.do_diff:
         self._v = np.array(u.diff(self.p, self._t))
         return self._v
     raise ValueError('No velocity data available')
示例#5
0
    def w(self):
        if self._w.any():
            return self._w
        elif self.do_diff:
            # First determine \dot{Theta} - the rates of change of the
            # Euler angles...
            self._w = np.array(u.diff(self.r, self._t))

            # Now convert to angular velocities *in the vehicle (IMU) frame*.
            for i in (range(len(self._w))):
                # Referencing _r ... must be set before a call to w(self).
                self._w[i, :] = u.to_angular_rates(self.r[i, :], self._w[i, :])
            return self._w
        raise ValueError('No angular velocity data available')