def test_renqder(vehicle: Vehicle) -> None: while True: vehicle.update_parts() gray = vehicle.mem.get(vehicle.parts[1]['outputs'])[0] gray2 = vehicle.mem.get(vehicle.parts[4]['outputs'])[0] blur = vehicle.mem.get(vehicle.parts[5]['outputs'])[0] canny = vehicle.mem.get(vehicle.parts[6]['outputs'])[0] # hough = vehicle.mem.get(vehicle.parts[6]['outputs'])[0] road = vehicle.mem.get(vehicle.parts[8]['outputs'])[0] # threshold = vehicle.mem.get(vehicle.parts[6]['outputs'])[0] # dilate = vehicle.mem.get(vehicle.parts[7]['outputs'])[0] cv2.imshow('gray', gray) cv2.imshow('gray2', gray2) cv2.imshow('blur', blur) cv2.imshow('canny', canny) # cv2.imshow('hough', hough) cv2.imshow('road', road) # cv2.imshow('threshold', threshold) # cv2.imshow('dilate', dilate) if cv2.waitKey(1) & 0xFF == ord('q'): break if cv2.waitKey(1) & 0xFF == ord(' '): while True: if cv2.waitKey(1) & 0xFF == ord(' '): break sleep(0.01)
def rpi2research(initial_angle=160, final_angle=90, final_bits=8, final_rows=224, final_cols=224): """ Inputs: initial_angle : Float. Viewing angle of input_image. final_angle : Float. Desired viewing angle of the output image. final_bits : Integer. The number of bits used to define an individual pixel in the output image. final_rows : Integer. The number of rows in the output image. final_cols : Integer. The number of columns in the output image. Returns: None. """ # Set up the connection to the Raspberry Pi # defines a vehicle to take and record pictures 10 times per second V = Vehicle() #add a camera part #cam = PiCamera() cam = vid2research(0) V.add(cam, outputs=['image'], threaded=True) #add tub part to record images tub = Tub(path='~/mycar/get_started', inputs=['image'], types=['image_array']) V.add(tub, inputs=['image']) #start the drive loop at 10 Hz V.start(rate_hz=10)
def test_render(vehicle: Vehicle) -> None: while True: vehicle.update_parts() gray = vehicle.mem.get([ConvertToGrayPart.IMG_GRAY_RAW])[0] threshold = vehicle.mem.get([ThresholdPart.IMG_THRESHOLD])[0] road = vehicle.mem.get([RoadDebugPart.IMG_ROAD])[0] road_ellipse = vehicle.mem.get([RoadEllipseDebugPart.IMG_ROAD_ELLIPSE])[0] cv2.imshow('gray', gray) cv2.imshow('threshold', threshold) cv2.imshow('road', road) if road_ellipse is not None: cv2.imshow('road_ellipse', road_ellipse) if cv2.waitKey(1) & 0xFF == ord('q'): break if cv2.waitKey(1) & 0xFF == ord(' '): while True: if cv2.waitKey(1) & 0xFF == ord(' '): break sleep(0.01)
import sys sys.path.append('/home/royd1990/donkeycar') from donkeycar import Vehicle from donkeycar.parts.camera import MockCamera from donkeycar.parts.datastore import Tub V = Vehicle() #add a camera part cam = MockCamera() V.add(cam, outputs=['image'], threaded=True) #add tub part to record images tub = Tub(path='~/d2/gettings_started', inputs=['image'], types=['image_array']) V.add(tub, inputs=['image']) #start the drive loop at 10 Hz #V.start(rate_hz=10)
def fixture_vehicle(video_camera: VideoCamera, road_config: RoadConfigController) -> Vehicle: vehicle = Vehicle() vehicle.register(video_camera) vehicle.register(ConvertToGrayPart()) vehicle.register( BoundingBoxPart(input_img_key=ConvertToGrayPart.IMG_GRAY_RAW, output_img_key=ConvertToGrayPart.IMG_GRAY_RAW)) vehicle.register(HistogramPart()) vehicle.register(ThresholdPart()) vehicle.register( BlurPart(input_key=ThresholdPart.IMG_THRESHOLD, output_key='img/blur', kernel_size=5)) vehicle.register( CannyPart(input_img_key='img/blur', output_img_key='img/canny', low_threshold=50, high_threshold=150)) # vehicle.register(HoughPart(input_img_key='img/canny', output_img_key='img/hough')) vehicle.register(RoadPart(road_config, input_img_type='img/canny')) vehicle.register(RoadDebugPart()) return vehicle
def fixture_vehicle(video_camera: VideoCamera, road_config: RoadConfigController) -> Vehicle: vehicle = Vehicle() vehicle.register(video_camera) vehicle.register(ConvertToGrayPart()) vehicle.register(BoundingBoxPart(input_img_key=ConvertToGrayPart.IMG_GRAY_RAW, output_img_key=ConvertToGrayPart.IMG_GRAY_RAW)) vehicle.register(HistogramPart()) vehicle.register(ThresholdPart()) vehicle.register(BlurPart(input_key=ThresholdPart.IMG_THRESHOLD, output_key='img/blur')) vehicle.register(CannyPart(input_img_key='img/blur', output_img_key='img/canny')) # vehicle.register(HoughPart(input_img_key='img/canny', output_img_key='img/hough')) vehicle.register(RoadPart(road_config, input_img_type='img/canny')) vehicle.register(RoadDebugPart()) # vehicle.register(BoundingBoxPart(input_img_key=IMG_GRAY_RAW, output_img_key=IMG_GRAY_RAW)) # vehicle.register(HistogramPart()) # vehicle.register(GraySelectorPart()) # vehicle.register(ThresholdController(config=ThresholdConfigController(limit_min=180, limit_max=200, # threshold_default = 190, # threshold_delta = 10, # threshold_dynamic = False, mqtt_enable = False))) # vehicle.register(DilatePart()) # vehicle.register(RoadPart(road_config)) # vehicle.register(RoadDebugPart()) return vehicle
def fixture_vehicle(video_camera: VideoCamera, road_config: RoadConfigController, throttle_config: ThrottleConfigController) -> Vehicle: vehicle = Vehicle() vehicle.register(video_camera) vehicle.register(ComponentRoadPart()) vehicle.register(AngleRoadPart()) vehicle.register( ThrottleEllipsePart(throttle_config_controller=throttle_config)) vehicle.register(RoadEllipseDebugPart()) vehicle.register( ThrottleDebugPart(input_img_key=RoadEllipseDebugPart.IMG_ROAD_ELLIPSE)) return vehicle
import os import time from donkeycar import Vehicle from donkeycar.part.camera import PiCamera from donkeycar.parts.datastore import Tub from donkeycar.parts. #初始化小车 V = Vehicle() #初始化时间戳,并添加到小车中 clock = Timestamp() V.add(clock, outputs=['timestamp']) #添加摄像头模块 cam = PiCamera() V.add(cam, outputs=['image'], threaded=Ture) #初始化数据存储模式和路径 tub = Tub(path='./data/test_data', inputs=['image'], types=['image_array'] ) #给小车添加数据存储功能 V.add(tub, inputs= ['image']) #数据搜集频率在每秒十次 V.start(rate_hz=10)