Show HN: I made a Raspberry with Qwen my local car AI
개요
CarWatch는 Raspberry Pi 5 기반으로 차량 내에서 Qwen 3.6 35B LLM을 로컬로 실행하여, 그룹마인드(GroupMind) 채팅방의 에이전트로 활동하며 차량 관련 정보(출발, 도착, 여행 요약, 대시캠 영상 등)를 사용자에게 전달하는 시스템이다.
주요 내용
* 로컬 AI 구동: Raspberry Pi 5에 16GB RAM을 탑재하여 Qwen 3.6 35B 모델(14.3GB)을 초당 3.5 토큰의 속도로 구동하며, 클라우드, 인터넷, 구독 없이 오프라인으로 작동한다.
* 차량 매뉴얼 기반 정보 제공: 차량의 745페이지 분량의 사용자 매뉴얼을 RAG(Retrieval-Augmented Generation) 방식으로 활용하여 페이지를 인용하며 정보를 제공하고, 매뉴얼에 없는 내용은 답변하지 않는다.
* 실시간 차량 상태 파악: 온도, 스로틀링, 팬 속도, 메모리, 디스크, 네트워크 및 로드된 모델 정보를 실시간으로 읽어 질문에 답변하며, 감지할 수 없는 정보는 명확히 알 수 없다고 안내한다.
* 핸즈프리 음성 기능: 온디바이스(on-Pi) VAD(Voice Activity Detection) 및 whisper.cpp를 사용하여 외부 인터넷 없이 음성을 인식하고, 이를 바탕으로 차량의 다른 기능과 동일한 파이프라인을 통해 답변을 생성한다.
* 제로 의존성 및 쉬운 설치: 모든 코드가 Python 표준 라이브러리로 작성되어 별도의 설치나 가상 환경 설정 없이 git clone만으로 실행 가능하며, systemd 서비스를 통해 부팅 시 자동으로 전체 스택이 시작된다.
* 원격 유지보수: 차량이 자체적으로 리포지토리에서 업데이트를 가져오고, NAT 환경에서도 접근 가능한 다이얼-아웃 터널을 생성하여 별도의 노트북 없이 원격으로 유지보수가 가능하다.
* 삼중 연결성: 휴대폰 핫스팟, 홈 와이파이, 자체 액세스 포인트 등 세 가지 연결 옵션을 제공하여 휴대폰이 항상 차량에 접근할 수 있도록 한다.
* 개인 정보 보호 및 소유권: 제조사 클라우드 기반 시스템과 달리 사용자 데이터는 차량 내에 머물며, 모델은 Pi에서 오프라인으로 실행된다. AGPL 라이선스를 따르며 약 300유로 상당의 하드웨어로 소유 가능하다.
* 다중 소스 데이터 통합: OBD-II 포트를 통한 엔진 데이터(RPM, 냉각수 온도, 속도 등)와 메르세데스 차량의 경우 manufacturer-cloud(Mercedes me)를 통해 도어 상태, 타이어 압력, 충전량 등 차량 정보에 접근한다. (다른 브랜드는 carwatch/cloudcar.py 인터페이스를 통해 통합 가능)
* 상태 관리: "Proven"(실제 차량에서 작동 확인), "Built + Tested"(실제 또는 시뮬레이션 환경에서 엔드-투-엔드 테스트 완료) 등의 상태로 기능을 관리하며, 모든 기능은 실제 차량에서의 작동을 기반으로 검증된다.
* 하드웨어 구성: Raspberry Pi 5 (16GB), USB 마이크, WOLFBOX G900 대시캠, Bluetooth ELM327 어댑터(OBD 통신용)가 필요하며, 전원은 USB-C 5V/5A를 사용한다.
시사점
CarWatch는 차량의 제어권과 데이터를 제조사의 클라우드가 아닌 사용자에게 돌려줌으로써, 독립성, 개인 정보 보호, 브랜드 제한 없는 개방성을 제공하며, 오프라인에서도 핵심 기능을 수행할 수 있도록 설계되어 차량 AI 분야에서 새로운 접근 방식을 제시한다.
댓글
GitHub Discussions