- '가치카' 프로젝트 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 내장 소켓 및 스레드 라이브러리
PiPilot 라이브러리는 아래 명령어로 설치할 수 있습니다:
pip install pop