Hi, guys~
I am a starter of ArduPilot,
and my program is about control Pixhawk2.4.8(or UAV)by raspberry pi python code.
So I finish some pre-work and used follow code to try take off UAV:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import time
from dronekit import connect, VehicleMode, LocationGlobalRelative
from pymavlink import mavutil
connection_string = '/dev/ttyUSB0'
print('Connecting to vehicle on: %s' % connection_string)
vehicle = connect(connection_string,wait_ready=True,baud=921600)
def arm_and_takeoff(aTargetAltitude):
print("Basic pre-arm checks")
while not vehicle.is_armable:
print(" Waiting for vehicle to initialise...")
time.sleep(1)
print("Arming motors")
vehicle.mode = VehicleMode("GUIDED")
vehicle.armed = True
while not vehicle.armed:
print(" Waiting for arming...")
time.sleep(1)
print("Taking off!")
vehicle.simple_takeoff(aTargetAltitude)
while True:
print(" Altitude: ", vehicle.location.global_relative_frame.alt)
if vehicle.location.global_relative_frame.alt >= aTargetAltitude * 0.95:
print("Reached target altitude")
break
time.sleep(1)
arm_and_takeoff(3)
print("Set default/target airspeed to 3")
vehicle.airspeed = 3
time.sleep(5)
print("Land")
vehicle.mode = VehicleMode("LAND")
print("Close vehicle object")
vehicle.close()
but the console keep notice:
The drone cant initialize,
so I have open the int.py to find why the ‘’’ is_armable’‘’ cant be true,
and you can see from below:
here we need GPS fix and EKF filter normal
and I can make sure the GPS is normal and correct
but how can I test EKF in QGroundControl?
and if I find the EKF error, what should I do?
just to calibration the UAV again?
Hope your any reply sincerely~
Joaquin