Exemple #1
0
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
Exemple #4
0
#########
# 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)
Exemple #5
0
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:
Exemple #6
0
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()
Exemple #7
0
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()
Exemple #8
0
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()