Skip to content

Gachicar/Gachicar-AutoCar

Repository files navigation

Gachicar-AutoCar

  • '가치카' 프로젝트 AI AutoCar 주행 코드
  • 서버와의 소켓 통신으로 제어
  • 소켓으로 목적지 전송 시 해당 목적지로 이동

주요 기능

  • 라인트래킹: 학습된 모델을 사용하여 라인을 따라 이동합니다.
  • 객체 인식: 클라이언트가 지정한 객체를 인식하고 해당 객체에 도달하면 정지합니다.
  • 장애물 회피: 장애물이 감지되면 후진하여 회피합니다.
  • 소켓 통신: 클라이언트에서 명령을 받아 RC카를 제어하고 실시간으로 상태를 업데이트합니다.

🚗 라인트래킹

: 카메라 입력을 기반으로 라인을 추적하며, 라인의 위치에 따라 조향을 조정합니다.

  • line_tracking folder
  • 데이터 수집 후 모델링
  • 정해진 라인을 따라 주행
  • track_follow_model.pth

🚗 장애물 회피

: 장애물이 감지되면 후진을 하여 장애물을 회피한 후 주행을 재개합니다.

  • collision_avoid folder
  • 데이터 수집 후 모델링: free/blocked 로 나누어 train
  • 장애물로 인해 시야가 가려졌을 때 장애물로 인식 후 후진
  • collision_final.pth : 파일 용량 초과로 업로드X

🚗 객체 인식

: 지정된 객체(예: 의자, 사람, 우산 등)를 감지하면 차량이 멈춥니다.

  • object_detection folder
  • 설정된 객체를 인식하면 정지 및 도착 알림
  • ssd mobilenet v2 coco.engine

[장소별 객체 설정]

  • 집: 의자
  • 회사: 사람
  • 학교: 우산

사용된 기술

  • Python을 사용한 로직 구현
  • POP (PiPilot) 라이브러리를 이용한 카메라, 객체 인식, 자동차 제어
  • 스레드를 이용한 객체 인식과 라인트래킹의 병렬 처리
  • 소켓을 이용한 클라이언트-서버 간 통신

프로젝트 구조

  • 카메라(Camera): 객체 인식 및 라인트래킹을 위해 카메라를 초기화합니다.
  • AutoCar: RC카의 움직임과 속도를 제어합니다.
  • 객체 인식 (Pilot.Object_Follow): 클라이언트에서 지정한 객체를 인식합니다.
  • 라인트래킹 (Pilot.Track_Follow): 바닥에 그려진 라인을 추적하여 이동합니다.
  • 장애물 회피 (Pilot.Collision_Avoid): 경로 상의 장애물을 감지하고 회피합니다.

모델 파일

  • track_follow_model.pth: 라인트래킹 모델
  • ssd_mobilenet_v2_coco.engine: 객체 인식 모델
  • collision_final.pth: 장애물 회피 모델

요구 사항

프로젝트를 실행하려면 아래 소프트웨어가 필요합니다:

  • Python 3.7 이상
  • POP 라이브러리 (PiPilot)
  • Python 내장 소켓 및 스레드 라이브러리

POP 라이브러리 설치

PiPilot 라이브러리는 아래 명령어로 설치할 수 있습니다:

pip install pop

Releases

No releases published

Packages

No packages published