|
|
|
@ -21,14 +21,20 @@ class Aircraft(object):
@@ -21,14 +21,20 @@ class Aircraft(object):
|
|
|
|
|
|
|
|
|
|
self.velocity = Vector3(0, 0, 0) # m/s, North, East, Down |
|
|
|
|
self.position = Vector3(0, 0, 0) # m North, East, Down |
|
|
|
|
self.last_velocity = self.velocity.copy() |
|
|
|
|
self.mass = 0.0 |
|
|
|
|
self.update_frequency = 50 # in Hz |
|
|
|
|
self.gravity = 9.8 # m/s/s |
|
|
|
|
self.accelerometer = Vector3(0, 0, self.gravity) |
|
|
|
|
self.accelerometer = Vector3(0, 0, -self.gravity) |
|
|
|
|
|
|
|
|
|
self.wind = util.Wind('0,0,0') |
|
|
|
|
|
|
|
|
|
def on_ground(self, position=None): |
|
|
|
|
'''return true if we are on the ground''' |
|
|
|
|
if position is None: |
|
|
|
|
position = self.position |
|
|
|
|
return (-position.z) + self.home_altitude <= self.ground_level + self.frame_height |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def update_position(self, delta_time): |
|
|
|
|
'''update lat/lon/alt from position''' |
|
|
|
|
|
|
|
|
@ -41,8 +47,7 @@ class Aircraft(object):
@@ -41,8 +47,7 @@ class Aircraft(object):
|
|
|
|
|
|
|
|
|
|
self.altitude = self.home_altitude - self.position.z |
|
|
|
|
|
|
|
|
|
velocity_body = self.dcm.transposed() * self.velocity |
|
|
|
|
|
|
|
|
|
# work out what the accelerometer would see |
|
|
|
|
self.accelerometer = ((self.velocity - self.last_velocity)/delta_time) + Vector3(0,0,self.gravity) |
|
|
|
|
# self.accelerometer = Vector3(0,0,-self.gravity) |
|
|
|
|
self.accelerometer = self.dcm.transposed() * self.accelerometer |
|
|
|
|
self.last_velocity = self.velocity.copy() |
|
|
|
|
self.accelerometer = self.accel_body |
|
|
|
|