README 문장 정리 되돌림
This commit is contained in:
1 parent
7c926b6fea
commit
fd1aa5a66e
1 file changed
+103
-48
@@ -1,71 +1,126 @@
|
||||
# UWB 기반 ROS 자율주행 쇼핑카트
|
||||
# UWB 기반 ROS 자율주행 쇼핑카트 (QT-CART)
|
||||
|
||||
UWB 태그 위치를 읽어 사용자를 따라가거나, ROS 2 Navigation으로 지정 위치까지 이동하는 쇼핑카트 프로젝트입니다.
|
||||
## 프로젝트 개요
|
||||
QT-CART는 UWB 기반 위치 추적과 ROS 2 자율주행 시스템을 결합한 스마트 쇼핑카트입니다.
|
||||
사용자를 따라 이동하거나 매장 내 특정 상품 구역으로 안내하며, 무게 센서를 이용한 도난 방지 결제 시스템과
|
||||
관리자용 대시보드를 제공합니다.
|
||||
|
||||
Qt 화면은 상품 선택, 장바구니, 결제 화면을 담당합니다. Python 서버는 상품 데이터, 무게 검증, ROS 명령 전달을 처리합니다.
|
||||
- **프로젝트 기간**: 2025.11.20 ~ 2026.01.04
|
||||
- **팀명**: 아자아자아자쓰!
|
||||
- **과정**: INTEL AI SW 8기
|
||||
|
||||
## 기간
|
||||
---
|
||||
|
||||
- 2025.11.20 ~ 2026.01.04
|
||||
- 과정: INTEL AI SW 8기
|
||||
|
||||
## 맡은 부분
|
||||
|
||||
| 이름 | 담당 |
|
||||
## 팀 구성
|
||||
| 이름 | 역할 |
|
||||
|---|---|
|
||||
| 김기환 | PM |
|
||||
| 서채건 | 하드웨어 구성, 로드셀 연동 |
|
||||
| 이동현 | ROS 제어 |
|
||||
| 박서정 | 하드웨어 구성, 로드셀 연동 |
|
||||
| 서채건 | 하드웨어, 로드셀 |
|
||||
| 이동현 | ROS 제어 시스템 |
|
||||
| 박서정 | 하드웨어, 로드셀 |
|
||||
| 김동현 | GUI 디자인 |
|
||||
|
||||
## 사용한 것
|
||||
---
|
||||
|
||||
- `ROS 2`
|
||||
- `Qt`
|
||||
- `Python`
|
||||
- `Uvicorn`
|
||||
- `SQLite`
|
||||
- `UWB DW3000`
|
||||
- `HX711`
|
||||
- `TurtleBot`
|
||||
## 프로젝트 목표
|
||||
- UWB 기반 사용자 위치 추적을 통한 주인 따라가기 기능
|
||||
- ROS 2 Navigation을 이용한 매장 내 자율주행 안내
|
||||
- 무게 센서를 활용한 비정상 상품 감지 및 도난 방지
|
||||
- QT 기반 터치 UI와 관리자 대시보드 제공
|
||||
|
||||
## 구성
|
||||
---
|
||||
|
||||
```text
|
||||
.
|
||||
├─ QT-Main/ Qt 터치 화면
|
||||
├─ QT-Server/ API 서버, DB, 로드셀, ROS 연동
|
||||
└─ UWB-Arduino/ UWB anchor/tag 코드
|
||||
```
|
||||
## 시스템 아키텍처
|
||||
<img width="600" alt="image" src="https://github.com/user-attachments/assets/25adc4e2-c11d-4e13-8591-1e328615187b" />
|
||||
<img width="600" alt="image" src="https://github.com/user-attachments/assets/0f372e72-93d3-4a17-87f6-1105ae0b31a6" />
|
||||
|
||||
## 동작
|
||||
|
||||
- UWB anchor 3개와 tag 1개로 tag 위치를 계산합니다.
|
||||
- 계산한 좌표를 ROS 쪽으로 넘겨 따라가기 동작에 사용합니다.
|
||||
- 안내 모드에서는 사용자가 고른 위치를 목적지로 보내고 카트가 이동합니다.
|
||||
- HX711 로드셀로 장바구니 무게를 읽습니다.
|
||||
- 상품 DB의 예상 무게와 실제 무게가 다르면 결제 단계에서 확인이 필요하도록 처리합니다.
|
||||
- Qt 화면에서 상품 선택, 장바구니 확인, 결제 화면을 보여줍니다.
|
||||
|
||||
## 하드웨어
|
||||
- **Frontend**
|
||||
- QT 기반 터치스크린 UI
|
||||
- 상품 안내, 장바구니 관리, 결제 화면 제공
|
||||
- **Backend**
|
||||
- API Server (상품/결제/무게 검증)
|
||||
- 관리자 대시보드
|
||||
- **Robot System**
|
||||
- ROS 2 기반 네비게이션
|
||||
- UWB 위치 추적
|
||||
- 모터 제어 및 센서 데이터 처리
|
||||
|
||||
---
|
||||
|
||||
## 주요 기능
|
||||
|
||||
### 1️. 안내 모드
|
||||
- 매장 지도에서 상품 구역 선택
|
||||
- 선택된 좌표로 카트가 자율주행 이동
|
||||
- 목적지 도착 후 장바구니 위치로 복귀
|
||||
|
||||
---
|
||||
|
||||
### 2️. 주인 따라가기 모드
|
||||
- UWB 태그를 소지한 사용자를 실시간 추적
|
||||
- 삼각측량 기반 위치 계산
|
||||
- 사용자 이동에 맞춰 카트가 자동 추종
|
||||
|
||||
---
|
||||
|
||||
### 3️. 관리자 대시보드
|
||||
- 실시간 카트 상태 모니터링
|
||||
- 상품 및 결제 정보 관리
|
||||
- 센서 데이터 시각화
|
||||
|
||||
---
|
||||
|
||||
### 4️. 도난 방지 시스템
|
||||
- HX711 로드셀 센서 기반 무게 측정
|
||||
- 상품 DB의 예상 무게와 실측 무게 비교
|
||||
- 오차 발생 시 결제 차단 및 경고 표시
|
||||
|
||||
---
|
||||
|
||||
## UWB 위치 추적 원리
|
||||
- ToF(Time of Flight) 기반 거리 측정
|
||||
- 3개의 UWB 앵커와 1개의 태그를 이용한 삼각측량
|
||||
- 계산된 좌표를 ROS 토픽으로 2초 주기로 발행
|
||||
|
||||
---
|
||||
|
||||
## Hardware 구성
|
||||
- Raspberry Pi 4
|
||||
- Raspberry Pi 7인치 터치스크린
|
||||
- ESP32 + UWB DW3000
|
||||
- HX711 로드셀
|
||||
- HX711 로드셀 센서
|
||||
- QR 코드 스캐너
|
||||
- Raspberry Pi 7인치 터치스크린
|
||||
- TurtleBot 기반 이동 플랫폼
|
||||
|
||||
## 서버
|
||||
---
|
||||
|
||||
- `QT-Server/main.py`: API 서버
|
||||
- `QT-Server/database.py`: 상품/결제 데이터 처리
|
||||
- `QT-Server/hx711.py`: 로드셀 읽기
|
||||
- `QT-Server/ros_controller.py`: ROS 명령 전달
|
||||
## Software 구성
|
||||
- ROS 2 (Navigation, Motor Control)
|
||||
- QT (UI/UX)
|
||||
- API Server (Python)
|
||||
- UDP / HTTP 통신
|
||||
- FSM 기반 로봇 상태 제어
|
||||
|
||||
## 메모
|
||||
---
|
||||
|
||||
- UWB 데이터가 일정 시간 들어오지 않으면 추적 값을 갱신하지 않습니다.
|
||||
- 로드셀 값은 여러 번 읽어 평균값을 사용합니다.
|
||||
- `QT-Server/shopping_cart.db`는 시연용 SQLite DB입니다.
|
||||
## Trouble Shooting
|
||||
| 문제 | 해결 |
|
||||
|---|---|
|
||||
| UWB 통신 일시 중단 | 2초 이상 데이터 미수신 시 자동 복구 |
|
||||
| 로드셀 노이즈 | 다중 샘플링 평균 필터 적용 |
|
||||
| API 응답 지연 | 센서 처리 비동기화 (800ms → 240ms) |
|
||||
|
||||
---
|
||||
|
||||
## 시연
|
||||
- 안내 모드 시연
|
||||
- 주인 따라가기 시연
|
||||
- 도난 방지 결제 시연
|
||||
|
||||
|
||||
https://github.com/user-attachments/assets/d50bf697-262b-453a-afcf-843e31196774
|
||||
|
||||
|
||||
---
|
||||
Reference in new issue
Block a user