본문 바로가기
ML Study/Robotics논문리뷰

PerAct 논문리뷰(PERCEIVER-ACTOR: A Multi-Task Transformer for Robotic Manipulation)

by 누워있는말티즈 2024. 7. 23.

PERCEIVER-ACTOR: A Multi-Task Transformer for Robotic Manipulation

Perceiver-Actor: A Multi-Task Transformer for Robotic Manipulation

기본적으로 알면 이해에 도움이 되는 Transformer

Attention Is All You Need

Abstract

NLP 등 영역에서 인기가 많은 Transformer를 Robot Learning에 적용하고자 한다.

Transformer를 활용하려면 많은 데이터셋이 필요하지만 robot manipulation 데이터셋은 한정되어 있고 비싸다. 따라서 manipulation task에 transformer 적용을 위한 모델로 PerAct를 제안한다.

Input : [Language Goals(English)] + [RGB-D voxel observation]

→ Perceiver Transformer Encoding → Actor Network

Output : [Discretized Action] for next best voxel action

Introduction

Overview

PerAct는 language conditioned behavior cloning agent for 6-DoF manipulation으로 “language goal controlled action”“perceptual representation”을 학습하는 것이다.

Components

Dataset : Expert demonstration → [language goal, observation, action]

여기에 keyframe(heuristic observation)이 나온다. 논문에서는 joint velocity ==0, gripper open state가 변하지 않는 경우에 대한 keyframe 설정.

Perceiver

Input: RGB-D voxel grid & language goals.

*language goal*은 pretrained된 CLIP의 language encoder를 그대로 사용, 이를 이용해 language를 unseen semantic categories와 instance에 대해 align

*voxel observation*은 ViT처럼 5^3 사이즈의 3D patch로 분리되고 flatten된다.language encoding은 linear layer로 미세 조정되어 voxel encoding과 결합되어 input 시퀀스를 구성. 이후, voxel과 토큰의 위치를 통합하기 위해 "학습된" positional embedding이 추가.

Structure: Perceiver Transformer를 사용해 large input spaces를 a small set of latent vectors로 인코딩

Process: voxel grid를 3D patche로 쪼개고 3D convolution layer를 통과해 인코딩한다. 인코딩된 latent vector와 language feature 결합하여 Perceiver Transformer 통과.

Output: 이 시퀀스는 다시 원래 보컬 크기로 업샘플링 되어 3D Q-functions을 통해 행동 값 예측

Perceiver는 전체 input을 직접 처리하는 대신, cross-attention을 통해 input과 latent vector를 결합하여 연산을 수행. 그 다음, self-attention을 통해 인코딩을 반복적으로 수행하며, 최종적으로 생성된 latent vector를 다시 cross-attention을 통해 원래 input과 동일한 차원으로 디코딩한다.

Perceiver는 6개의 self-attention layer와 input, output에 각각 하나의 cross-attention layer를 사용한다. 디코더는 input의 정보를 어느 정도 유지하기 위해 UNet과 유사하게 skip connection을 사용한다. voxel grid를 3D Q-function으로 형성하여 translation, rotation, collision avoidance를 구현한다.

Actor

Role: Perceiver에서 예측한 행동 값을 기반으로 다음 동작을 결정

Structure: discretized translations, rotations, and gripper states 예측.

Decision: Selects the optimal action by maximizing the Q-functions and executes it using a motion planner.

PerAct는 오로지 현재의 observation에만 의존하여 다음 sequential task를 결정한다.

Results

Simulation

C2FARM-BC는 PerAct와 가장 비교 가능한 경쟁 방법이었으나, C2FARM의 coarse-to-fine-grain 방식은 2단계의 voxelization을 수행하기 때문에 receptive field가 제한된다. 이로 인해 복잡도가 높은 작업에서의 성능이 떨어진다.

Ablation

(1) skip connection : 학습 속도 약간 증가
(2) Perceiver Transformer: global receptive field에서 performance에 필수
(3) good keyframe : supervised learning에 필수, 랜덤/고정 간격 키프레임은 성능이 안나온다

Real Robot Experiment

Test Model : Franka Emika Panda

7종류 task, 53 demonstrations

단순한 task에서는 시뮬레이션과 같이 65% 이상의 성공률, 복잡해질 수록 gripper open state 를 잘못 하는 경우가 많음
→ HGDAgger 적용하여 해결할 수 있을 것으로 보인다.

Conclusion

Manipulator 수준에서는 준수하지만 아직 dexterous control로 확장은 어렵다…

반응형

댓글