is_flying = False

    kp = 0.2
    kd = 0.1
    ki = 0.0005

    x_pid = PID(Kp=kp, Kd=kd, Ki=ki)
    y_pid = PID(Kp=kp, Kd=kd, Ki=ki)

    angle_pid = PID(Kp=1.5, Kd=0.5, Ki=0.05)

    while True:
        k = cv2.waitKey(1)

        if k == ord(" ") and not is_flying:
            drone.takeoff()
            logger.info("Takeoff")
            is_flying = not is_flying
        elif k == ord(" ") and is_flying:
            drone.land()
            logger.info("Landing")
            is_flying = not is_flying
        elif k == ord("d") and is_flying:
            drone.event_boom()
            logger.info("Dance")
            time.sleep(3)
        elif k == ord("r"):
            drone.reset()
            logger.info("Reset")
        elif k == ord("s") or k == ord("q"):
            break
Exemple #2
0
    is_flying = False

    kp = 0.2
    kd = 0.1
    ki = 0.0005

    x_pid = PID(Kp=kp, Kd=kd, Ki=ki)
    y_pid = PID(Kp=kp, Kd=kd, Ki=ki)

    angle_pid = PID(Kp=1.5, Kd=0.5, Ki=0.05)

    while True:
        k = cv2.waitKey(1)

        if k == ord(' ') and not is_flying:
            drone.takeoff()
            logger.info("Takeoff")
            is_flying = not is_flying
        elif k == ord(' ') and is_flying:
            drone.land()
            logger.info("Landing")
            is_flying = not is_flying
        elif k == ord('d') and is_flying:
            drone.event_boom()
            logger.info("Dance")
            time.sleep(3)
        elif k == ord('r'):
            drone.reset()
            logger.info("Reset")
        elif k == ord('s') or k == ord('q'):
            break