MK전민경
RESEARCH

Unity ML-Agents 기반
모바일 로봇 Sim-to-Real 주행

기간 2023.09 — 2024.04 인원 6인 (기여도 80%) 플랫폼 Clearpath Husky A200 · VLP-16

STEP 1강화학습 환경 구축

실제 로봇에 사용할 Velodyne VLP-16 사양(채널 수, FOV, 거리 범위)에 맞춰 Unity에서 LiDAR를 직접 구현하고, 거리 값을 강화학습의 상태(state)로 사용했습니다. 학습 환경은 난이도 순서로 미로, 정적 장애물, 실제 연구실 건물 복도 세 가지를 제작했습니다.

T자형 미로 학습 환경
미로 학습 환경 — 로봇(좌측)과 목표 지점(우측 하단).
Unity Scene 뷰와 Game 뷰에서 시각화한 LiDAR 포인트클라우드
구현한 LiDAR의 포인트클라우드 시각화 (좌: Scene view, 우: Game view) — 우측 상단에 ROS 연결 정보.

STEP 2보상 설계와 학습 특성 분석

LiDAR 사용 여부, 주행 거리·시간, 충돌을 종합적으로 고려해 보상 함수와 종료 조건을 설계하고, 설계 변경이 학습에 미치는 영향을 보상 곡선으로 분석했습니다. 대표적으로, 매 스텝 음의 보상(-0.01)만 주면 에이전트가 에피소드를 빨리 끝내려고 고의로 충돌하는 문제를 발견했고, 에피소드 시간 제한(60초)으로 바꿔 학습 시간을 약 50% 단축하면서 수렴에 성공했습니다.

보상 설계 두 가지 버전의 누적 보상 곡선 비교
보상·종료 조건 설계에 따른 학습 양상 비교 — 위: 스텝당 음의 보상(고의 충돌로 미수렴), 아래: 시간 제한 방식(수렴 성공).

STEP 3Sim-to-Real 전이

학습된 정책을 ONNX 모델로 변환한 뒤 ROS(Ubuntu 18.04, Melodic) 노드로 감싸 실제 Husky A200을 제어했습니다. 초기에는 시뮬레이션과 실제 LiDAR의 차이로 주행이 금방 불안정해졌는데, 시뮬레이션 LiDAR에 Gaussian Noise를 주입하고 직선 → 교차로 → 실제 복도 순의 Curriculum Learning을 적용해 개선했습니다.

ONNX 추론 노드를 중심으로 한 ROS 노드 그래프
ROS 제어 노드 그래프 — /scan, /goal을 입력받아 ONNX 추론 노드가 속도 명령을 출력.
직선, 교차로, 복도로 이어지는 커리큘럼 환경과 실제 로봇 주행 데이터
Curriculum Learning 환경(직선 → 교차로 → 연구실 복도)과 주행 로그.
RESULT

DEMO시연 영상

실제 Husky A200 복도 자율주행 (1:30)

Unity 학습 과정 편집본 — 미로 · 장애물 · 복도 환경

복도를 자율주행 중인 Husky A200 로봇
학습 정책으로 복도를 주행 중인 Husky A200.