18. 기존 애니메이션 기반 자세 기준 및 가동 범위 확인 계획

date
3월 29, 2026
status
완료
tags
unrealRL

1. 목적#

현재 로봇은 강화학습 과정에서 앞으로 이동하려고 시도하지만, 상부 몸체가 앞으로 크게 고꾸라진 뒤 안정적인 자세로 복귀하지 못하는 문제가 발생하고 있다.

이 문제를 해결하기 위해 바로 Physics Constraint 값을 수정하거나 Reward를 추가하기 전에, 먼저 기존 에셋에 포함된 애니메이션을 통해 모델이 원래 어떤 자세와 움직임 범위를 가지도록 제작되었는지 확인할 필요가 있다.

현재 에셋에는 Idle, Walk Forward, Walk Backward, Walk Left, Walk Right, Landing 등의 애니메이션 시퀀스가 포함되어 있다. 이 애니메이션들은 단순한 시각적 연출이 아니라, 모델 제작자가 의도한 기본 자세, 다리 관절의 움직임 범위, 상부 몸체의 흔들림 정도를 확인할 수 있는 참고 기준으로 사용할 수 있다.

따라서 이번 단계의 목표는 기존 애니메이션을 직접 재생해 보면서 다음 항목을 확인하는 것이다.

확인 항목확인 목적
Idle 자세학습 Reset Pose와 기본 자세 기준 확인
Walk Forward전진 시 다리 관절과 몸체 움직임 확인
Walk Backward후진 시 관절 움직임 방향과 범위 확인
Walk Left / Right좌우 이동 시 다리 패턴과 몸체 반응 확인
Landing착지 시 몸체가 내려가거나 기울어지는 허용 범위 확인
Top_M 움직임상부 차체가 Root_M 기준으로 어느 정도 움직이는지 확인

2. 애니메이션 확인이 필요한 이유#

Physics Asset에는 이미 Body와 Constraint가 설정되어 있으며, 각 Constraint에는 어느 정도까지 회전할 수 있는지에 대한 Swing / Twist 제한값이 들어 있을 수 있다.

하지만 Constraint 값만 봐서는 실제 모델이 어떤 자세를 자연스러운 기본 자세로 갖고 있는지, 걷기 동작에서 다리와 상부 몸체가 어느 정도 움직이는지 직관적으로 파악하기 어렵다.

반면 애니메이션 시퀀스를 재생하면 모델이 제작 당시 의도된 방식으로 움직이는 모습을 확인할 수 있다. 이를 통해 다음 기준을 잡을 수 있다.

기준활용 위치
기본 서 있는 자세Reset Pose
자연스러운 관절 회전 범위ActionScale
보행 중 몸체 흔들림 정도Posture Reward
상부 몸체 회전 허용 범위Top_M : Root_M Constraint
착지 시 일시적인 자세 변화Completion / Fall 판단 기준

다만 애니메이션에서 보이는 움직임이 곧바로 물리 시뮬레이션에서 허용되는 움직임을 의미하는 것은 아니다. 애니메이션은 본의 회전을 직접 재생하는 것이고, Physics Asset은 물리 Body와 Constraint를 이용해 충돌과 힘을 계산하는 구조이기 때문이다.

따라서 애니메이션은 자연스러운 목표 동작의 참고 기준으로 사용하고, 최종적인 물리 가능 범위는 Physics Asset의 Constraint 설정과 Simulate 결과를 함께 확인해야 한다.

3. 확인할 애니메이션 목록#

현재 확인할 애니메이션은 다음과 같다.

애니메이션확인할 내용
A_ISO_Mech_Idle_01기본 대기 자세, 몸체 높이, 다리 벌림 정도
A_ISO_Mech_WalkForward_01전진 시 다리 관절 움직임, 몸체 흔들림
A_ISO_Mech_WalkBackward_01후진 시 다리 움직임 방향, 전진 동작과의 차이
A_ISO_Mech_Walk_L_01좌측 이동 시 다리 패턴, 몸체 기울기
A_ISO_Mech_Walk_R_01우측 이동 시 다리 패턴, 몸체 기울기
A_ISO_Mech_Landing_01착지 시 몸체 내려감, 일시적 기울기 허용 범위
A_ISO_Mech_Death_01낙상 또는 실패 상태 참고

이 중 강화학습 기준 설정에 직접적으로 중요한 것은 Idle, Walk Forward, Walk Backward, Walk Left, Walk Right, Landing이다. Death 애니메이션은 정상 자세 기준보다는 실패 상태나 낙상 판정 참고용으로만 사용한다.

4. 테스트용 Preview Pawn 구성 방향#

기존 Learning Agents용 BP_SpiderRobot을 바로 수정하면 학습 구조와 애니메이션 테스트가 섞일 수 있다. 따라서 애니메이션 확인용 Pawn을 별도로 만드는 것이 좋다.

flowchart TD
    Input[WASD / Space / Mouse 입력] --> PreviewPawn[BP_SpiderAnimPreviewPawn]
    PreviewPawn --> AnimBP[ABP_SpiderPreview]
    AnimBP --> Idle[Idle]
    AnimBP --> WalkF[Walk Forward]
    AnimBP --> WalkB[Walk Backward]
    AnimBP --> WalkL[Walk Left]
    AnimBP --> WalkR[Walk Right]
    AnimBP --> Landing[Landing]
    Mouse[Mouse X/Y] --> TopControl[Top_M 회전 테스트]
    TopControl --> AnimBP

테스트용 Pawn에서는 WASD 입력으로 전후좌우 이동 애니메이션을 재생하고, Space 입력으로 Landing 또는 Jump 계열 동작을 확인한다. 또한 Mouse 입력을 이용해 Top_M을 상하좌우로 회전시켜, 상부 몸체가 어느 정도 회전할 때 자연스럽게 보이는지 확인한다.

이 방식은 최종 학습 제어 방식이 아니라, 기존 애니메이션과 모델 구조를 분석하기 위한 임시 확인용 구성이다.


5. 입력 구성#

테스트 입력은 다음과 같이 구성해보자

입력동작
W전진 애니메이션 재생
S후진 애니메이션 재생
A좌측 이동 애니메이션 재생
D우측 이동 애니메이션 재생
SpaceLanding 또는 Jump 계열 애니메이션 재생
Mouse X상부 몸체 좌우 회전 확인
Mouse Y상부 몸체 상하 회전 확인

초기 테스트에서는 실제 물리 이동을 정확히 구현하는 것보다, 입력에 따라 애니메이션이 정상적으로 전환되고 각 Body의 움직임을 관찰할 수 있는지가 더 중요하다.

6. 확인 결과의 활용 방향#

애니메이션 확인을 통해 얻은 값은 이후 강화학습 설정에 바로 사용할 수 있다.

확인 결과반영 위치
Idle 기본 자세Reset Pose
Walk 시 관절 회전 범위DA_SpiderJointConfigActionScale
다리별 기본 회전 방향BaseTargetOrientation
Top_M 흔들림 범위Top_M : Root_M Constraint
몸체 기울기 허용 범위Posture Reward
착지 시 일시적 낮아짐Fall / Completion 기준

특히 현재 문제인 상부 몸체 고꾸라짐 현상은 Top_MRoot_M 기준으로 얼마나 기울어질 때 자연스러운 범위를 벗어나는지 확인하는 데 도움이 된다.

이를 바탕으로 이후에는 Top_M : Root_M Constraint에서 기존 Swing / Twist 제한값을 확인하고, 필요한 경우 Angular Drive의 Strength와 Damping을 조정한다.

7. 정리#

이번 단계는 학습을 바로 개선하기 위한 Reward 수정 단계가 아니라, 기존 모델과 애니메이션이 가지고 있는 기준 자세를 확인하는 단계이다.

애니메이션을 통해 자연스러운 기본 자세와 관절 움직임 범위를 확인하고, Physics Asset을 통해 실제 물리 Constraint가 이를 어떻게 제한하고 있는지 비교한다.

이후 Observation과 Reward에서는 Root_M을 보행 기준 Body로 사용하고, Top_M은 상부 차체 안정성을 확인하는 보조 기준 Body로 사용한다.

flowchart TD
    A[기존 애니메이션 재생] --> B[기본 자세 확인]
    B --> C[관절 가동 범위 확인]
    C --> D[Root_M / Top_M 상대 움직임 확인]
    D --> E[Physics Constraint 기존값과 비교]
    E --> F[ActionScale / Reset Pose / Reward 기준 반영]

따라서 애니메이션 확인은 단순한 시각 테스트가 아니라, 강화학습에 사용할 물리 기준과 자세 안정화 기준을 정리하기 위한 사전 분석 단계라고 볼 수 있다.

Be Your Own Lamp