예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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
예제 #6
0
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
예제 #7
0
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
예제 #8
0
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)