mirror of
https://bitbucket.org/myhomie/mycorerepository.git
synced 2025-12-06 17:51:20 +00:00
64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
"""
|
|
Demo of the Bebop ffmpeg based vision code (basically flies around and saves out photos as it flies)
|
|
|
|
Author: Amy McGovern
|
|
"""
|
|
from pyparrot.Bebop import Bebop
|
|
from pyparrot.DroneVision import DroneVision
|
|
import threading
|
|
import cv2
|
|
import time
|
|
|
|
isAlive = False
|
|
|
|
class UserVision:
|
|
def __init__(self, vision):
|
|
self.index = 0
|
|
self.vision = vision
|
|
|
|
def save_pictures(self, args):
|
|
#print("saving picture")
|
|
img = self.vision.get_latest_valid_picture()
|
|
|
|
if (img is not None):
|
|
filename = "test_image_%06d.png" % self.index
|
|
#cv2.imwrite(filename, img)
|
|
self.index +=1
|
|
|
|
|
|
# make my bebop object
|
|
bebop = Bebop()
|
|
|
|
# connect to the bebop
|
|
success = bebop.connect(5)
|
|
|
|
if (success):
|
|
# start up the video
|
|
bebopVision = DroneVision(bebop, is_bebop=True)
|
|
|
|
userVision = UserVision(bebopVision)
|
|
bebopVision.set_user_callback_function(userVision.save_pictures, user_callback_args=None)
|
|
success = bebopVision.open_video()
|
|
|
|
if (success):
|
|
print("Vision successfully started!")
|
|
#removed the user call to this function (it now happens in open_video())
|
|
#bebopVision.start_video_buffering()
|
|
|
|
# skipping actually flying for safety purposes indoors - if you want
|
|
# different pictures, move the bebop around by hand
|
|
print("Fly me around by hand!")
|
|
bebop.smart_sleep(5)
|
|
|
|
print("Moving the camera using velocity")
|
|
bebop.pan_tilt_camera_velocity(pan_velocity=0, tilt_velocity=-2, duration=4)
|
|
bebop.smart_sleep(25)
|
|
print("Finishing demo and stopping vision")
|
|
bebopVision.close_video()
|
|
|
|
# disconnect nicely so we don't need a reboot
|
|
bebop.disconnect()
|
|
else:
|
|
print("Error connecting to bebop. Retry")
|
|
|