본문 바로가기

[05] 강화학습을 이용한 sim2real 자율주행

  • 강민주
  • 인천대학교
  • 작품구분일반형
  • 공개여부비공개
  • 카테고리기계
  • 등록일2023-06-19
  • 팀원(공동개발자)
  • 출품 경진대회2023년 산학 캡스톤디자인 경진대회 학생팀 & 멘토 모집

상세설명

1. 수행배경

  • 자율주행 기술은 현대 사회에서 꾸준한 관심을 받고 있다. 자동차, 로봇 및 기타 교통 수단의 자율주행은 운전의 안전성과 편의성을 향상시킬 수 있다. 그러나 실제 환경에서 자율주행 시스템을 효과적으로 테스트하고 개발하는 것은 어려움이 있다. 따라서 시뮬레이션 환경을 사용하여 자율주행 알고리즘의 개발과 테스트를 수행하는 것이 필요하다.

2. 수행기간

  • 2023.04.10 ~ 2023.06.05

3. 개발작품 설명

  • 프로젝트 계획: 본격적으로 프로젝트를 시작하기 전 전반적인 계획을 세운다.
  • 프로그램 설치 및 환경 구축: 프로젝트 진행을 위해 Windows 11 기반인 데스크탑 환경을 우분투 04로 변경한다. 이를 통해 Isaac sim 프로그램을 원활하게 설치하고 활용할 수 있다. 변경된 운영체제에서 Isaac sim을 성공적으로 설치한 후에는, 코드 실행과 관련된 문제를 해결하기 위해 가상환경을 구성한다. 이를 통해 프로젝트 이후에도 코드를 원활하게 실행하고 관리할 수 있는 환경을 마련한다. 이와 같은 작업들을 통해 프로젝트에 필요한 환경을 구축하여 원활한 진행을 보장한다.
  • 프로그램 사용법 숙지 및 오픈소스 실행: 유튜브 강의와 엔비디아에서 제공하는 튜토리얼을 통해 Isaac sim의 사용법을 숙지한다. 이를 통해 프로그램의 기능과 기능들을 활용하는 방법을 이해할 수 있다. 또한, 실제 프로젝트 수행을 위해 깃허브에서 오픈소스 코드를 활용한다. 이는 코드는 Python 내에서 Isaac sim의 기능을 어떻게 활용하는지 알기 위함이다. 이러한 학습과 코드 실행을 통해 Isaac sim을 활용할 수 있는 능력을 갖춘다.
  • 프로젝트 구현: Isaac sim 내에서 열 수 있는 3D 데이터 교환 형식을 갖는 도로 형태의 usd 파일을 만든다.

    그 후, 이전에 참고한 Python 코드를 커스텀하여 프로젝트가 요구하는 시뮬레이션 환경을 구축한다. 이 코드 상에서는 Jetbot의 시작 위치 설정, Waypoint 설정 등이 가능하다. Waypoint란 reward를 주기 위한 장치로 밑의 사진처럼 도로를 주행하기 위해 Jetbot이 반드시 지나야 하는 부분에 배치하여 이를 통과할 때마다 reward를 주는 방식으로 학습을 진행한다.

    또한 강화학습을 위한 State, Action, Reward, Episode 종료 조건 등을 Python 코드 내에서 정의해준다. 강화학습은 Mini Batch와 Cliping을 사용하여 학습의 안정성이 높은 PPO(Proximal policy optimization)알고리즘을 사용한다.

  • 실험 및 결과 도출: 시뮬레이션 환경 내에서 총 200만 Epoch만큼의 학습을 진행하며 10만 Epoch마다 Check Point를 저장하여 학습이 원활히 진행되는지 확인한다. 또한, 학습이 끝난 후 저장된 Check point를 통해 10만 Epoch, 50만 Epoch, 100만 Epoch, 150만 Epoch, 200만 Epoch 결과를 각각 비교한다. 10만 번 학습한 경우 도로 주행을 전혀 하지 못하는 상태이며 50만, 100만 번은 도로 주행은 하지만 속도가 느리고 종종 비틀거림이 있다. 150만 번 학습한 경우 주행 속도가 빨라지며 이전보다 훨씬 안정적이고, 200만 번 학습한 결과가 가장 좋은 것으로 나타난다.

4. 활용방안

  • 자율주행 기술 산업의 발전

    이 프로젝트는 자율주행 기술의 발전에 기여할 것으로 기대된다. 자율주행 기술은 교통 안전성, 운전 편의성, 환경 보호 등 다양한 영역에서 긍정적인 영향을 미칠 수 있다. 프로젝트 결과물을 기반으로 한 자율주행 시스템은 자동차 산업 및 로봇 분야 등에서 적용 가능성을 가지며, 이를 통해 자율주행 기술 산업의 발전과 혁신을 이끌어 낼 수 있다.

  • 안전성 및 효율성 향상

    자율주행 기술은 운전 중 발생할 수 있는 인간의 실수나 주의력 부족 등으로 인한 사고 위험을 줄일 수 있다. 이 프로젝트에서 개발된 자율주행 시스템은 정확하고 안정적인 주행을 실현할 것으로 기대된다. 따라서, 이를 실제 도로 환경에 적용함으로써 교통 안전성을 향상시키고, 사고 발생률을 감소시킬 수 있다. 또한, 효율적인 경로 계획 및 운행 최적화를 통해 도로 혼잡도를 줄이고 교통 흐름을 개선할 수 있다.

  • 신뢰성 있는 자율주행 시스템의 개발

    Sim2Real을 통해 시뮬레이션에서 실제로 적용된 자율주행 알고리즘은 현실 세계에서의 성능과 안정성을 입증하게 된다. 이는 자율주행 시스템을 개발하는 기업이나 연구 기관에 신뢰성과 실용성을 제공하며, 자율주행 시장에서의 경쟁력을 향상시킬 수 있다. 또한, 실제 도로 환경에서의 테스트와 검증을 통해 개선 사항을 도출하고, 자율주행 시스템을 지속적으로 발전시킬 수 있다.

소개 영상

정보가 없습니다.

소개 슬라이드

정보가 없습니다.

기타자료

비공개 자료입니다.

댓글