def main(): drone = ps_drone.Drone() # Start using drone print "Configuracion del drone" drone.startup() # Connects to drone and starts subprocesses drone.reset() # Always good, at start drone.trim() # Recalibrate sensors #drone.getSelfRotation(5) time.sleep(0.5) print drone.getBattery()[0] print "Configuracion de los pines" GPIO.setup(INICIO, GPIO.IN) while GPIO.input(INICIO) == 0: pass print "aqui" #Nada solo se queda aqui print "Comienzo el programa" print "takeoff" drone.takeoff() time.sleep(2) drone.hover() time.sleep(2) #drone.setSpeed(0.1) print "hovering" distance = getDistance() while distance > 60: print "Distance: " distance = getDistance() print distance drone.hover() #time.sleep(3) time.sleep(0.5) print "land" drone.land()
def main(): drone = ps_drone.Drone() print "Configuracion del drone" drone.startup() # Connects to drone and starts subprocesses drone.reset() # Always good, at start drone.trim() # Recalibrate sensors drone.getSelfRotation(5) time.sleep(0.5) print "BATERIA ACTUAL: ", drone.getBattery()[0] ''' CDC = drone.ConfigDataCount while CDC == drone.ConfigDataCount: time.sleep(0.0001) # Wait until it is done (after resync is done) for i in drone.ConfigData: if i[0]== "control:euler_angle_max" or i[0]== "control:control_vz_max" or i[0]== "control:control_yaw": print str(i) drone.setConfig("control:euler_angle_max","0.208") drone.setConfig("control:control_vz_max","800") drone.setConfig("control:control_yaw","1.75") while CDC == drone.ConfigDataCount: time.sleep(0.15) for i in drone.ConfigData: if i[0]== "control:euler_angle_max" or i[0]== "control:control_vz_max" or i[0]== "control:control_yaw": print str(i) print "Bateria: ", drone.getBattery()[0] ''' drone.useDemoMode(False) drone.getNDpackage(["demo","pressure_raw","altitude","magneto","wifi"]) print "Obteniendo paquete de medidas" time.sleep(1.0) print "takeoff" drone.takeoff() time.sleep(2) drone.hover() time.sleep(3) stop = False NDC = drone.NavDataCount alti = 0.0 while alti < 1600: while drone.NavDataCount == NDC: time.sleep(0.001) if drone.getKey(): stop = True NDC = drone.NavDataCount alti = drone.NavData["altitude"][3] print "Altitude: " + str(alti) drone.moveUp(0.9) drone.moveDown(0.6) time.sleep(1) drone.hover() time.sleep(1) print "land" drone.land()
from vision import vision import api.ps_drone as ps_drone from tools import emergency def getFrameGround(): IMC = drone.VideoImageCount while drone.VideoImageCount == IMC: time.sleep(0.01) drone.groundVideo() img = drone.VideoImage return img print "Booting up the drone" drone = ps_drone.Drone() # Start using drone thread = emergency.keyThread(drone) drone.startup() # Connects to drone and starts subprocesses drone.trim() drone.getSelfRotation(5) drone.reset() # Sets drone's status to good while (drone.getBattery()[0] == -1): time.sleep(0.1) # Wait until drone has done its reset drone.useDemoMode(False) # Set 15 basic dataset/sec drone.setConfigAllID() drone.getNDpackage(["demo", "pressure_raw", "altitude", "magneto", "wifi"]) print "BATERIA ACTUAL: ", drone.getBattery()[0] print "Booting up the camera" drone.sdVideo() # Choose lower resolution (try hdVideo()) drone.groundCam() # Choose front view
######### # firstTry.py # This program is part of the online PS-Drone-API-tutorial on www.playsheep.de/drone. # It shows how to do basic movements with a Parrot AR.Drone 2.0 using the PS-Drone-API. # Dependencies: a POSIX OS, PS-Drone-API 2.0 beta or higher. # (w) J. Philipp de Graaff, www.playsheep.de, 2014 ########## # LICENCE: # Artistic License 2.0 as seen on http://opensource.org/licenses/artistic-license-2.0 (retrieved December 2014) # Visit www.playsheep.de/drone or see the PS-Drone-API-documentation for an abstract from the Artistic License 2.0. ########### import time import api.ps_drone as ps_drone # Imports the PS-Drone-API drone = ps_drone.Drone() # Initializes the PS-Drone-API drone.startup() # Connects to the drone and starts subprocesses drone.takeoff() # Drone starts time.sleep(7.5) # Gives the drone time to start drone.moveForward() # Drone flies forward... time.sleep(2) # ... for two seconds drone.stop() # Drone stops... time.sleep(2) # ... needs, like a car, time to stop drone.moveBackward(0.25) # Drone flies backward with a quarter speed... time.sleep(1.5) # ... for one and a half seconds drone.stop() # Drone stops time.sleep(2)
import vision sys.path.insert(0, '../') import api.ps_drone as ps_drone cap = cv2.VideoCapture(1) fast = cv2.FastFeatureDetector() def getImage(): IMC = drone.VideoImageCount while drone.VideoImageCount==IMC: time.sleep(0.01) # Wait until the next video-frame img = drone.VideoImage # Copy video-image pImg = cv2.resize(img,(640,360), interpolation = cv2.INTER_CUBIC) return img # Returns image print "Booting up the drone for color calibration" drone = ps_drone.Drone() drone.startup() drone.reset() drone.trim() drone.getSelfRotation(5) drone.setConfigAllID() #Drone's camera initial configuration print "Booting up the camera" drone.frontCam() drone.hdVideo() drone.startVideo() CDC = drone.ConfigDataCount while CDC == drone.ConfigDataCount: time.sleep(0.0001) # Wait until it is done (after resync is done) drone.startVideo() while True:
def main(): drone = ps_drone.Drone() # Start using drone tof = VL53L0X.VL53L0X() thread = emergency.keyThread(drone) tof.start_ranging(4) time.sleep(0.001) if(tof.get_distance()==-1): print "No se inicializo correctamente el tof" return print "Configuracion del drone" drone.startup() # Connects to drone and starts subprocesses drone.reset() # Always good, at start drone.trim() # Recalibrate sensors #drone.getSelfRotation(5) time.sleep(0.5) thread.start() print "BATERIA ACTUAL: ", drone.getBattery()[0] #NAV DATA print "Obteniendo paquete de medidas" drone.useDemoMode(False) drone.getNDpackage(["demo","pressure_raw","altitude","magneto","wifi"]) print "Comienzo el programa" print "takeoff" drone.takeoff() time.sleep(2) drone.hover() time.sleep(2) #drone.setSpeed(0.1) print "hovering" #THIS PART GETS NEAR THE OBSTACLE distance = tof.get_distance() print "Distance before while: ",distance while distance > 1300 and distance!=0: distance = tof.get_distance() print "Distance: ", distance if distance < 1301: drone.moveBackward(0.5) else: drone.moveForward(0.1) print "next" #time.sleep(3) print "back" drone.moveBackward(0.5) time.sleep(0.5) print "hover" drone.hover() time.sleep(5) #THIS PART GOES UP 1600 mm NDC = drone.NavDataCount alti = 0.0 while alti < 1400: while drone.NavDataCount == NDC: time.sleep(0.001) NDC = drone.NavDataCount alti = drone.NavData["altitude"][3] print "Altitude: " + str(alti) drone.move(0,0.05,0.99,0.0) # #THIS PART GOES UP WHILE SEEIONG THE OBSTACLE AND GOES FORWARD # #WITH A TIME OUT # thisTime = time.time() # distance = tof.get_distance() # while distance < 5000: # print "Distancia subiendo ", distance # drone.moveUp(0.7) # distance = tof.get_distance() # actualTime = time.time() # if (actualTime - thisTime) > 7 : # drone.land() # print "TIME OUT" # break # print "FINISHED GOING UP" drone.moveDown(0.2) time.sleep(0.5) drone.hover() time.sleep(2) #THIS LANDS THE DRONE AFTER THE TIME OUT OR WHEN #IT DETECTS A WALL thisTime = time.time() distance = tof.get_distance() print "Distance before while: ",distance while distance > 1000 or distance < 1: distance = tof.get_distance() print "Distance: ",distance if distance < 1001: drone.moveBackward(0.5) else: drone.moveForward(0.1) actualTime = time.time() if (actualTime - thisTime) > 6 : drone.land() print "TIME OUT" break print "back" drone.moveBackward(0.5) time.sleep(0.5) drone.hover() time.sleep(1) print "land" drone.land()
def main(): drone = ps_drone.Drone() # Start using drone tof = VL53L0X.VL53L0X() thread = emergency.keyThread(drone) print "Configuracion del drone" drone.startup() # Connects to drone and starts subprocesses drone.reset() # Always good, at start drone.trim() # Recalibrate sensors #drone.getSelfRotation(5) time.sleep(0.5) thread.start() print "BATERIA ACTUAL: ", drone.getBattery()[0] print "Comienzo el programa" print "takeoff" drone.takeoff() time.sleep(2) drone.hover() time.sleep(2) #drone.setSpeed(0.1) print "hovering" tof.start_ranging(4) time.sleep(0.001) drone.useDemoMode(False) drone.getNDpackage(["demo", "pressure_raw", "altitude", "magneto", "wifi"]) time.sleep(1.0) #THIS PART GETS NEAR THE OBSTACLE for i in range(0, 2): distance = tof.get_distance() if i == 0: target = 1000 else: target = 600 while distance > target: print "Distance: " distance = tof.get_distance() print distance if distance <= target: drone.moveBackward(0.5) else: drone.move(0.02, 0.1, 0.0, 0.0) print "next" #time.sleep(3) print "back" drone.moveBackward(0.5) time.sleep(0.5) drone.hover() time.sleep(2) #THIS PART GOES UP 1.2 METERS USING DRONES INTEGRATED ULTRASONIC SENSOR NDC = drone.NavDataCount alti = 0.0 while alti < 1100: while drone.NavDataCount == NDC: time.sleep(0.001) if drone.getKey(): stop = True NDC = drone.NavDataCount alti = drone.NavData["altitude"][3] print "Altitude: " + str(alti) drone.move(0.00, 0.02, 0.6, 0.0) drone.hover() time.sleep(2) drone.moveLeft(0.3) time.sleep(2) drone.hover() time.sleep(2) drone.land()
def main(): drone = ps_drone.Drone() # Start using drone # tof = VL53L0X.VL53L0X() thread = emergency.keyThread(drone) print "Configuracion del drone" drone.startup() # Connects to drone and starts subprocesses drone.reset() # Always good, at start drone.trim() # Recalibrate sensors #drone.getSelfRotation(5) time.sleep(0.5) thread.start() print "BATERIA ACTUAL: ", drone.getBattery()[0] print "Comienzo el programa" print "takeoff" drone.takeoff() time.sleep(2) drone.hover() time.sleep(2) #drone.setSpeed(0.1) print "hovering" # tof.start_ranging(4) time.sleep(0.001) drone.useDemoMode(False) drone.getNDpackage(["demo", "pressure_raw", "altitude", "magneto", "wifi"]) time.sleep(1.0) ''' #THIS PART GETS NEAR THE OBSTACLE distance = tof.get_distance() print "Distance before while: ",distance while distance > 1300 and distance!=0: distance = tof.get_distance() print "Distance: ", distance if distance < 1301: drone.moveBackward(0.5) else: drone.moveForward(0.1) print "next" #time.sleep(3) print "back" drone.moveBackward(0.5) time.sleep(0.5) print "hover" drone.hover() time.sleep(3) ''' for i in range(0, 2): #THIS PART GOES UP 1600 mm NDC = drone.NavDataCount alti = 0.0 while alti < 1100: while drone.NavDataCount == NDC: time.sleep(0.001) NDC = drone.NavDataCount alti = drone.NavData["altitude"][3] print "Altitude UP: " + str(alti) drone.move(0, -0.03, 0.6, 0.0) drone.moveDown(0.2) time.sleep(0.5) drone.hover() time.sleep(1) NDC = drone.NavDataCount while alti > 800: while drone.NavDataCount == NDC: time.sleep(0.001) NDC = drone.NavDataCount alti = drone.NavData["altitude"][3] print "Altitude FORWARD: " + str(alti) drone.move(0.025, 0.07, 0.0, 0.0) print "back" drone.moveBackward(0.1) time.sleep(0.5) drone.hover() time.sleep(2) print "hover" drone.hover() time.sleep(2) print "left" drone.moveLeft(0.2) time.sleep(1) drone.hover() time.sleep(2) print "land" drone.land()