본문으로 건너뛰기

"로보틱스" 태그로 연결된 4개 게시물개의 게시물이 있습니다.

모든 태그 보기

[Webots 로보틱스] Sim-to-Real: Arduino Uno, HC-06 블루투스, ArUco 마커 비전 추적으로 현실 세계 전이 (#5)

· 약 5분
Jihwan Park (jaybee)
AI & Robotics Engineer

ArUco 마커 비전 추적 화면

📌 핵심 요약 (TL;DR)

  • 문제(Problem): 마이크로컨트롤러(Arduino Uno ATmega328P)의 2KB RAM 한계로 인한 연산 제약, 바퀴 슬립(Wheel Slip) 및 센서 노이즈, 그리고 시뮬레이션 물리와 실제 하드웨어 간의 Sim-to-Real 간극(Reality Gap) 발생.
  • 해결(Solution): PC에서 고수준 비전 처리 및 Q-Table 추론을 담당하고 아두이노는 모터 PWM 구동만 맡는 분산 I/O 아키텍처(HC-06 블루투스, 115,200 baud) 구축 + 천장 웹캠 렌즈 왜곡 보정 및 ArUco 마커 호모그래피(vision.py) 기반 실시간 위치/헤딩 추적 시스템 구현.
  • 결과(Result): 가상에서 학습된 648-bin Q-Table 가중치만으로 실제 1.2m × 1.2m 아레나에서 목표 도달 성공률 86.7%를 달성하며 성공적인 하드웨어 배포 완수.

[Webots 로보틱스] evaluate_qlearning: 결정론적 주행 정량 평가와 DQN·SARSA 벤치마크 (#4)

· 약 4분
Jihwan Park (jaybee)
AI & Robotics Engineer

성공률 및 스텝 수 벤치마크

📌 핵심 요약 (TL;DR)

  • 목적(Objective): 학습 중 탐색 노이즈(Epsilon)를 완전히 끈 상태(ε=0)에서 순수하게 고착된 정책(Greedy Policy)의 자율주행 신뢰성과 경로 품질을 검증.
  • 평가 방법(Evaluation): evaluate_qlearning.py를 통해 5개 평가 시드(Eval Seeds 0~4)에 걸쳐 총 30회 독립 테스트를 수행하고, 성공률, 이론 최단 경로 대비 주행 효율(Path Efficiency), 근접 위기(Near-miss) 횟수를 정밀 측정.
  • 결과(Result): Tabular Q-Learning은 장애물 맵에서 93.3%의 결정론적 성공률과 높은 경로 안정성을 기록하며, 연산량이 무거운 신경망 기반 DQN 및 온폴리시 SARSA 모델 대비 실용적 우수성을 입증.

[Webots 로보틱스] Tabular Q-Learning 구현과 보상 함수(Reward Function) 튜닝 (#2)

· 약 5분
Jihwan Park (jaybee)
AI & Robotics Engineer

학습 보상 곡선

📌 핵심 요약 (TL;DR)

  • 문제(Problem): 목표 도달(+1.0)과 벽 충돌(-1.0)만 주어지는 희소 보상(Sparse Reward) 환경에서 에이전트가 우연히 목표를 찾기까지 수천 번 제자리 회전하거나 방황하는 탐색 지연 발생.
  • 해결(Solution): 목표와의 유클리드 거리 변화량에 비례하는 포텐셜 기반 보상(+0.1 × Δdist)과 스텝(-0.01), 회전(-0.01), 후진(-0.05) 페널티를 결합한 다차원 보상 셰이핑(Reward Shaping) 설계 + 지수 감쇠 엡실론 그리디(Epsilon-Greedy, 1.0 → 0.05) 전략 적용.
  • 결과(Result): 장애물 없는 환경(no_obstacle) 기준 500 에피소드 이내에 이동 평균 보상이 안정적 양수 구간(0.7+)으로 진입하고 최종 목표 도달 성공률 98% 이상 달성.

[Webots 로보틱스] Q-Learning 자율주행: 648개 상태 공간 이산화와 소켓 통신 아키텍처 (#1)

· 약 5분
Jihwan Park (jaybee)
AI & Robotics Engineer

Webots 시뮬레이션 환경

📌 핵심 요약 (TL;DR)

  • 문제(Problem): 연속적인 센서 거리·각도 데이터로 인해 고전적 표 기반 Q-Learning(Tabular Q-Learning) 적용 시 상태 공간 폭발 및 Webots 시뮬레이터와 학습 스크립트 간 실시간 동기화 오버헤드 발생.
  • 해결(Solution): 5차원 연속 센서 입력을 기하학적·물리적 의미를 가진 구간으로 분할하여 3 × 8 × 3 × 3 × 3 = 648개의 이산 상태(Bin)로 매핑(discretizer.py)하고, TCP 로컬 소켓(Port 5000, Line-delimited JSON) 기반의 IPC 제어 파이프라인 구축.
  • 결과(Result): O(1)의 초고속 Q-Table 갱신 속도를 확보하고, 시뮬레이션 물리 스텝(32ms)에 맞춘 안정적인 동기화 루프 완성.