def demo_step_find_object(ip, speed=20, dis=1, object='cup', vAngle=30, hAngle=90): """ 移动,一步一步的寻找物体 Parameter ------- *ip:string -树莓派的 *object:string -要寻找的物体 *vAngle:int -垂直方向的角度 *hAngle:int -水平方向的角度 *speed:int -移动的速度 *dis:float -时间间隔 """ # 初始化 car = Car(ip) # 相机初始化 camera = Camera() camera.connect_server(ip) camera.start_receive() camera.thread_play() ai = Ai(classes="./aiLib/coco/coco.names", config="./aiLib/coco/yolov3.cfg", weight="./aiLib/coco/yolov3.weights") car.turn_servo_camera_vertical(vAngle) car.turn_servo_camera_horizental(hAngle) global STOP_FLAGE while True: if STOP_FLAGE is True: print('over .............................................') return status = get_status_with_camera(car, camera, ai, object) car.turn_servo_camera_horizental(90) print(status) if status == 'status_move': car.run_forward(speed, dis) if status == 'status_turn_right': car.spin_right(10, 0.4) if status == 'status_turn_left': car.spin_left(10, 0.4) if status == 'status_stop': return
def demo_move_step_find_object(ip, speed=20, dis=1, object='cup', vAngle=40, hAngle=80): """ 连续移动寻找物体 Parameter ------- *ip:string -树莓派的Ip *object:string -要寻找的物体 *vAngle:int -垂直方向的角度 *hAngle:int -水平方向的角度 """ car = Car(ip) camera = Camera() camera.connect_server(ip) camera.start_receive() camera.thread_play() ai = Ai(classes="./aiLib/coco/coco.names", config="./aiLib/coco/yolov3.cfg", weight="./aiLib/coco/yolov3.weights") car.turn_servo_camera_vertical(vAngle) car.turn_servo_camera_horizental(hAngle) mainThread_ = threading.Thread(target=find_object, args=( camera, ai, object, )) mainThread_.start() Cruising(car, 4) # 以4的速度进行漫游 car.turn_servo_camera_vertical(vAngle) car.turn_servo_camera_horizental(hAngle) global STOP_FLAGE while CAMERA_FLAGE: if STOP_FLAGE == True: car.stop_all_wheels() print('over .............................................') return status = get_status_with_camera(car, camera, ai, object) car.turn_servo_camera_horizental(90) print(status) if status == 'status_move': car.run_forward(speed, dis) if status == 'status_turn_right': car.spin_right(10, 0.4) if status == 'status_turn_left': car.spin_left(10, 0.4) if status == 'status_stop': return