1. 소개#
이전 단계까지 BP_SpiderTrainingEnvironment를 생성하고, 그 안에 Gather Agent Reward, Gather Agent Completion, Reset Agent Episode를 구현하였다.
이전 단계까지 BP_SpiderTrainingEnvironment를 생성하고, 그 안에 Gather Agent Reward, Gather Agent Completion, Reset Agent Episode를 구현하였다.
강화학습에서 Reward는 에이전트가 어떤 행동을 더 배워야 하는지 알려주는 기준이다. 맨 처음 강화학습을 알게 된 계기였던 그네를 잘타게 하는 법을 학습 시키는 영상에 나오는 것(유전적 알고리즘으로 그네 타는 법을 학습시켰다)이 처음에는 ‘와 저게 바로 강화학습이구나!’ 했는데 둘 다 시도해보고 더 잘한 걸 더 남긴다라는 건 비슷하지만 꽤나 다양한 방면으로 차이가 있는 걸 알게 되었다.
이전 단계에서는 BP_SpiderTrainingManager에서 BP_SpiderInteractor를 생성하고, 이를 BP_SpiderLearningManager에 Listener로 등록한 뒤, BP_SpiderRobot을 Agent로 등록하는 구조까지 구성했다.
이전 단계에서는 BP_SpiderTrainingManager에서 `BP_SpiderInteractor를 생성하고, 이를 BP_SpiderLearningManager에 Listener로 등록한 뒤, BP_SpiderRobot을 Agent로 등록하는 구조까지 구성했다.
이전 단계에서는 BP_SpiderInteractor에서 학습기가 출력한 24개의 Continuous Action 값을 가져와 SpiderJointControllerComponent의 ApplyJointActions 함수로 전달하는 구조까지 구현했으니, 이번 단계에서는 지금까지 구성한 Learning Agents 입출력 구조를 실제 학습 루프에 연결하기 위한 기반 작업을 진행해보도록 하자
거미 로봇의 관절이 모두 정상적으로 접근하다는 것을 확인했으니, 이제 언리얼에서 지원하는 Learning Agent를 켜서 학습 루프까지 진입이 가능한 지 확인해보자
거미 로봇의 관절이 모두 정상적으로 접근하다는 것을 확인했으니, 이제 언리얼에서 지원하는 Learning Agent를 켜서 학습 루프까지 진입이 가능한 지 확인해보자
강화학습을 진행하기 위해서는 매 프레임 마다
정책 모델의 Action
→ 특정 관절 목표 각도
→ 물리 컨스트레인트에 적용
→ 다리 움직임가 필요함. 지금 그래서 축소 버전으로
저번에 이어서 이번에는 다리 관절 하나하나를 제어할 수 있는 구조인지 확인해보도록 하자. 왜냐하면 강화학습을 진행하기 위해서는 이후에 AI 모델이