내 머릿속

[강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -3편- 본문

자율주행

[강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -3편-

두구궁 2025. 1. 21. 19:21
728x90
반응형
SMALL

https://howtobemechanic.tistory.com/39

 

[강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -2편-

https://howtobemechanic.tistory.com/38 [강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -1편-https://www.youtube.com/watch?v=rVCHgXl9E6o 본 예제는 다음 영상을 보고 한국인을 위해 제작된 예제입니다. 사

howtobemechanic.tistory.com


이 글은 2편에서 이어지는 글이다.

 

이제 대망의 강화학습을 돌리는 부분이다.

 

강화학습 코드

처음에 받았던 Isaac_SAC/src/robot_control/scripts에 있는 train_sac_isaac.py가 그 코드이다.

 

이 코드는 가상환경을 키고, 카메라 이미지에 기반해서 충돌 및 도착점의 여부를 판단하게 하는 부분과, Action으로 제어입력이 들어가게 하고 라이다 데이터를 받는 부분도 구현이 되어있다.

 

강화학습 알고리즘으로는 SAC(Soft-Actor-Critic)이 적용되어있으며, 사실 이 코드를 이용해서 아이작 심 환경에서는 어떤 강화학습이든 돌려볼 수 있다. SAC는 SOTA는 아니지만 이를 기반으로 한 많은 연구들이 이루어진 만큼 좋은 예제인거 같다.

 

cd Isaac_SAC/src/robot_control/scripts
python3 train_sac_isaac.py

 

다음과 같이 코드를 실행해주면 되는데, 문제는

 

No module named 'omni.kit.usd' 오류가 발생 할 수도 있다.

 

이 글을 따라 진행하고 있었다면.

 

pip install isaacsim-extscache-physics==4.2.0.2 isaacsim-extscache-kit==4.2.0.2 isaacsim-extscache-kit-sdk==4.2.0.2 --extra-index-url https://pypi.nvidia.com

 

다음과 같은 명령어로 재설치를 해보는걸 추천한다.

 

오류가 나지 않는다면 다음과 같은 화면을 볼 수 있을 것이다.

 

이제 충돌하면 Reward Function에서 패널티가 들어가면서 초기화가 될 것이고, 랜덤한 조향 및 속도 명령이 계속 주어질 것이다.

 

맵은 충돌 시마다 초기화가 되어서 과적합을 방지하는 것 같고, rviz2로 sun_image 토픽을 Image로 보면

 

 

오른쪽 그림과 같이 Topview로 이진화된 이미지가 나온다. 아마도 이 이진화 된 이미지로 시뮬레이션이 초기화 되게 한거 같다.

 

자세한 설명은 없지만, 이전 과정을 수정해서 제어 명령을 바꿔본다던지, 경로를 생성하게 한다던지 여러가지 적용이 가능할 거같다.

 

다음에는 다른 강화학습 예제로 돌아올 예정이다.

 

감사합니다.

728x90
반응형
LIST