
SISEON
Sight-based Intelligent System Elevation Optimization Normalizer 사용자의 시선과 자세를 실시간으로 인식해 모니터의 높이, 거리, 각도를 자동으로 보정하는 AIoT 시스템
GitHub →주요 기능
AI 기반 사용자 위치 인식 및 자동 조절
Jetson Orin Nano에서 YOLOv11 모델을 사용하여 실시간으로 사용자의 눈 위치와 자세를 추론하고, 최적의 모니터 위치를 계산하여 자동으로 조정합니다.
다양한 제어 모드
AI 기반 자동 제어, 사용자가 저장한 위치로 이동하는 프리셋 모드, Flutter 앱의 조이스틱을 이용한 수동 제어 모드를 지원합니다.
클라우드 연동 및 데이터 관리
Spring Boot API 서버를 통해 프리셋과 자세 로그 데이터를 AWS RDS에 저장하고 관리합니다. 모바일 앱과 데이터를 동기화합니다.
실시간 모니터링 및 제어
Flutter 기반 모바일 앱을 통해 실시간으로 시스템 상태를 모니터링하고, 원격으로 제어할 수 있습니다. 자세 통계 데이터 시각화 기능을 제공합니다.
OTA 업데이트
펌웨어 OTA(Over-the-Air) 업데이트를 지원하여 시스템을 항상 최신 상태로 유지할 수 있습니다.
기술 스택
Backend
Frontend
Firmware & IoT
AI
Database & Cloud
핵심 알고리즘/기술
실시간 제어 및 통신 아키텍처
Jetson(AI) ↔ Pi5(IoT) ↔ EC2(Backend) ↔ Flutter(App) 간의 유기적 통신. UDP, MQTT, BLE, REST API 등 다양한 프로토콜을 활용하여 300ms 이내의 실시간 반응성을 보장합니다.
동작 시나리오 기반 다중 모드 제어
프리셋, 자동, 수동 제어 시나리오에 따라 각기 다른 통신 방식(MQTT, UDP, BLE)과 ROS2 내부 토픽을 사용하여 로봇팔을 정밀하게 제어합니다.
AI 기반 눈/자세 추론
Jetson Nano에서 YOLOv11 모델을 사용하여 실시간으로 눈 위치와 자세를 추론하고, UDP 소켓을 통해 Raspberry Pi로 좌표 데이터를 전송하여 자동 제어의 기반으로 사용합니다.
REST API 및 MQTT 기반 서버 연동
Flutter 앱은 REST API를 통해 서버와 프리셋, 통계 데이터를 동기화합니다. 서버는 MQTT 토픽을 통해 Raspberry Pi에 제어 명령을 전달하여 클라우드 기반 제어를 구현합니다.
개발자 역할
Project Leader
프로젝트 전체 기획 및 관리, 팀원 역할 분담 및 일정 조율, 기술 스택 선정 및 시스템 아키텍처 설계, 프로젝트 진행 상황 모니터링 및 품질 관리
IoT 시스템 총괄 개발
Raspberry Pi 5 제어 시스템 및 ROS2 노드 개발, 하드웨어 통합 및 디바이스 간 통신 프로토콜 구현
시스템 통합 및 최적화
Edge-Cloud 하이브리드 아키텍처 설계, 실시간 성능 요구사항 분석 및 최적화, 전체 시스템 테스트 및 성능 튜닝
성능 평가
성능 요구사항
결과 예시
AI 모델 성능
실시간 눈 검출 및 자세 추정 정확도, 다양한 조명 환경에서의 안정성 검증, Jetson Orin Nano 최적화 결과


모바일 앱 UI
Flutter 기반 직관적인 사용자 인터페이스, 실시간 모니터링 대시보드, 조이스틱 제어 및 프리셋 관리





프로젝트 구조
프로젝트 구조
마이크로서비스 아키텍처 기반 모듈화된 설계로 각 컴포넌트의 독립적인 개발과 배포가 가능
smart-monitor-arm/ ├── backend/ # Spring Boot API 서버 │ ├── src/main/java/ │ │ ├── controller/ # REST API 컨트롤러 │ │ ├── service/ # 비즈니스 로직 │ │ ├── repository/ # 데이터 접근 계층 │ │ └── config/ # 설정 파일 │ ├── build.gradle │ └── Dockerfile ├── ai/ # Jetson Orin Nano AI 모듈 │ ├── models/ # YOLOv11 모델 파일 │ ├── eye_detection.py # 눈 검출 모듈 │ ├── pose_estimation.py # 자세 추정 모듈 │ ├── udp_client.py # Pi5 통신 모듈 │ └── requirements.txt ├── iot/ # Raspberry Pi 5 제어 모듈 │ ├── ros2_ws/ # ROS2 워크스페이스 │ │ └── src/ │ │ ├── arm_controller/ # 로봇팔 제어 노드 │ │ └── http_module/ # HTTP API 모듈 │ ├── mqtt_subscriber.py # MQTT 구독자 │ ├── udp_server.py # Jetson 통신 서버 │ └── dynamixel_sdk/ # Dynamixel SDK ├── frontend/ # Flutter 모바일 앱 │ ├── lib/ │ │ ├── screens/ # 화면 구성 │ │ ├── widgets/ # 위젯 컴포넌트 │ │ ├── services/ # API 서비스 │ │ └── models/ # 데이터 모델 │ ├── pubspec.yaml │ └── android/ ├── docs/ # 문서 │ ├── SRS.md # 소프트웨어 요구사항 명세서 │ ├── API.md # API 문서 │ └── SETUP.md # 설치 가이드 └── docker-compose.yml # 전체 시스템 배포
설치 및 실행
환경 요구사항
- Jetson Orin Nano (JetPack 5.x)
- Raspberry Pi 5 (Ubuntu 24.04 + ROS2 Jazzy)
- OpenMANIPULATOR-X (RM-X52-TNM)
- AWS EC2 (Ubuntu 22.04)
- Python 3.8+
- Java 17+
- Flutter SDK
- Docker & Docker Compose
- MQTT Broker
설치 방법
# 1. 저장소 클론git clone https://github.com/choihjin/smart-monitor-arm.gitcd smart-monitor-arm# 2. 백엔드 서버 배포 (EC2)cd backend && docker build -t monitor-arm-api .docker run -d -p 8080:8080 monitor-arm-api# 3. Jetson AI 모듈 설정cd ai && pip install -r requirements.txtpython eye_detection.py --config config.yaml# 4. Raspberry Pi 제어 시스템cd iot && source /opt/ros/jazzy/setup.bashcolcon build && source install/setup.bashros2 launch arm_controller arm_control.launch.py# 5. Flutter 앱 빌드cd frontend && flutter pub getflutter build apk --release
주의사항
- 각 디바이스는 동일 LAN에 연결되어야 합니다
- Jetson과 Pi5 간 UDP 통신을 위한 방화벽 설정 필요
- OpenMANIPULATOR-X 하드웨어 연결 및 보정 작업 필요
- AWS EC2에 HTTPS 인증서 설정 권장
- 프라이버시 보호를 위해 카메라 영상은 저장되지 않습니다
수상 내역
- 2025.08.22 2학기 공통 프로젝트 우수상 수상 (삼성전자)