def __init__(self, device): self.CarCon = CarControl(device) self.crossroad = False self.fullcross = False self.walls = [10000, 10000, 10000] self.CarCon.turn(CarSettings.DefaultAngle) self.CarCon.move(0, CarSettings.Stop) pass
class Car: def __init__(self, device): self.CarCon = CarControl(device) def Road(self): self.CarCon.move(1, 125) time.sleep(0.5) while True: time.sleep(1) walls = self.CarCon.getDistance() time.sleep(1) print(walls[0], walls[1], walls[2]) if walls[1] < CarSettings.CriticalWallRange: self.CarCon.move(0, CarSettings.Stop) break
from CarControl import CarControl import time import cv2 def wait_for_yellow_lane(cc): cc.rf.set_l_found(False) while not cc.rf.get_l_found(): cc.update_sensors() # update the sensors every loop t, rgb = cc.sensor.get_rgb_data() # get color image frame, commands = cc.rf.find_lanes(rgb) # find lines in image if __name__ == '__main__': cc = CarControl() # create object to control car count = 0 # debouncer for finding limit lines speed = 0.35 # 0.3 # run the loop, waiting for a keyboard interrupt try: print("Beginning loop") cc.steer(0) # straighten steering lastSteerAngle = 0 # to keep track of steering value cc.drive(0.6) # drive fast to get the car going time.sleep(0.5) # get it up to speed cc.drive(speed) # slow down to a slower speed # intersection_counter = 0 # corner_turn = 'r' # type_of_turn = 'i'
import numpy as np import cv2 import pygame from pygame.locals import * import time import os import RPi.GPIO as GPIO from CarControl import CarControl # set IO and GPIO mod # GPIO.cleanup() # pygame init pygame.init() car = CarControl() save_img = True cap = cv2.VideoCapture(0) cap.set(3, 320) # 原始寬度。原始圖大小:320*240 = 76800 cap.set(4, 240) # 原始高度 # create labels k = np.eye(3) # k = np.zeros((3, 3), 'float') # for i in range(3): # k[i, i] = 1 # temp_label = np.zeros((1, 3), 'float') screen = pygame.display.set_mode((320, 240)) frame = 1 saved_frame = 0
class Car: def __init__(self, device): self.CarCon = CarControl(device) self.crossroad = False self.fullcross = False self.walls = [10000, 10000, 10000] self.CarCon.turn(CarSettings.DefaultAngle) self.CarCon.move(0, CarSettings.Stop) pass def nothing(self): self.CarCon.move(1, CarSettings.MoveSpeed) while not self.fullcross: cop = self.CarCon.getDistance() for i in range(3): if type(cop[i]) == type(None): self.walls[i] = 10000 else: self.walls[i] = cop[i] self.walls = self.CarCon.getDistance() if self.walls[0] > CarSettings.MaxWallRange or self.walls[ 2] > CarSettings.MaxWallRange: # подставить константы self.crossroad = True else: self.crossroad = False if self.walls[0] > CarSettings.MaxWallRange and self.walls[ 2] > CarSettings.MaxWallRange: # подставить константы self.fullcross = True else: self.fullcross = False print(walls) if self.walls[1] < CarSettings.WallRange: if self.walls[0] > CarSettings.WallRange: self.CarCon.turn(CarSettings.RightToLeftDegree) self.CarCon.move(1, CarSettings.MoveSpeed) self.CarCon.turn(CarSettings.DefaultAngle) elif self.walls[1] > CarSettings.WallRange: self.CarCon.turn(CarSettings.RightToLeftDegree) self.CarCon.move(1, CarSettings.MoveSpeed) self.CarCon.turn(CarSettings.DefaultAngle) else: self.CarCon.move(0, CarSettings.Stop) else: if self.walls[ 0] < CarSettings.WallRange: # отъезжаем от стены или от линии подобрать константы self.CarCon.turn( CarSettings.LeftToRightDegree) # угол настроить self.CarCon.move(1, CarSettings.MoveSpeed) self.CarCon.turn(CarSettings.DefaultAngle) pass if self.walls[2] < CarSettings.WallRange: # self.CarCon.turn(CarSettings.RightToLeftDegree) self.CarCon.move(1, CarSettings.MoveSpeed) self.CarCon.turn(CarSettings.DefaultAngle) pass else: self.CarCon.move(1, CarSettings.MoveSpeed) # прямо self.CarCon.move(0, CarSettings.Stop) return 1 # иначе завершаем движение и выдаем знак pass
# Lane Testing using birds eye view from LaneFollower import LaneFollower from CarControl import CarControl from matplotlib import pyplot as plt import argparse import imutils import time import numpy as np import cv2 cc = CarControl() LF = LaneFollower() count = 0 # vs = cv2.VideoCapture("/dev/video2", cv2.CAP_V4L) # ls -ltr /dev/video* # vs = cv2.VideoCapture("C:/Users/benjj/Documents/College/Fall2019/ECEN522/Code/SDCars/class_code/TestVideo.avi") for lamePhoto in range(1, 10): (grabbed, frame) = cc.sensor.vs.read() cc.steer(-3) cc.drive(0.6) time.sleep(1) cc.drive(0.4) currentAngle = -3 currentSpeed = 0.4 while True: # read the next frame from the file (grabbed, frame) = cc.sensor.vs.read()
from LaneDetection import LaneDetection from CarControl import CarControl from ObstacleDetection import ObstacleDetection from ModeView import ModeView camera = PiCamera() camera.resolution = (960, 540) camera.framerate = 15 rawCapture = PiRGBArray(camera, size=(960, 540)) time.sleep(0.1) GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) laneDetection = LaneDetection() carControl = CarControl() modeView = ModeView() obstacleDetection = ObstacleDetection() backLeft = [0, 0, 0, 0] backRight = [0, 0, 0, 0] vp_slope = [-1, backLeft, backRight] img2 = np.zeros((540, 960, 3), np.uint8) check = 0 click = 0 def mouse_callback(event, x, y, flags, param): global check global click
def __init__(self, device): self.CarCon = CarControl(device)