← 메인 페이지로 돌아가기
SISEON
2025.07 ~ 2025.08

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

Java
Spring Boot
Jenkins
Docker

Frontend

Flutter

Firmware & IoT

C++
ROS2
Bluetooth LE
MQTT (EMQX)

AI

PyTorch
OpenCV
FastAPI

Database & Cloud

MySQL
AWS EC2

핵심 알고리즘/기술

실시간 제어 및 통신 아키텍처

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 하이브리드 아키텍처 설계, 실시간 성능 요구사항 분석 및 최적화, 전체 시스템 테스트 및 성능 튜닝

성능 평가

성능 요구사항

실시간 위치 반영 딜레이≤ 500ms
프리셋 적용 도달 시간≤ 10초
Jetson AI 모델 FPS≥ 15 FPS
EC2 서버 처리량50 TPS
Arm 이동 속도112 rpm
AI 추론 시간≤ 50 ms/frame

결과 예시

AI 모델 성능

실시간 눈 검출 및 자세 추정 정확도, 다양한 조명 환경에서의 안정성 검증, Jetson Orin Nano 최적화 결과

AI 모델 성능 1AI 모델 성능 2

모바일 앱 UI

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

모바일 앱 UI 1모바일 앱 UI 2모바일 앱 UI 3모바일 앱 UI 4모바일 앱 UI 5

프로젝트 구조

프로젝트 구조

마이크로서비스 아키텍처 기반 모듈화된 설계로 각 컴포넌트의 독립적인 개발과 배포가 가능


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.git
cd 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.txt
python eye_detection.py --config config.yaml
# 4. Raspberry Pi 제어 시스템
cd iot && source /opt/ros/jazzy/setup.bash
colcon build && source install/setup.bash
ros2 launch arm_controller arm_control.launch.py
# 5. Flutter 앱 빌드
cd frontend && flutter pub get
flutter build apk --release

주의사항

  • 각 디바이스는 동일 LAN에 연결되어야 합니다
  • Jetson과 Pi5 간 UDP 통신을 위한 방화벽 설정 필요
  • OpenMANIPULATOR-X 하드웨어 연결 및 보정 작업 필요
  • AWS EC2에 HTTPS 인증서 설정 권장
  • 프라이버시 보호를 위해 카메라 영상은 저장되지 않습니다

수상 내역

  • 2025.08.22 2학기 공통 프로젝트 우수상 수상 (삼성전자)

발표자료

프로젝트 발표 자료 (PDF)

프로젝트 시연 영상