ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 읽기] (2017) Learning Deep Policies for Robot Bin Picking by Simulating Robust Grasping Sequences
    논문 읽기/Dex-Net 2022. 3. 28. 11:58

    * 요약

    최근의 결과에 따르면 합성데이터로 훈련한 CNN을 사용하여 높은 정확도로 다양한 단일 객체를 파지할 수 있게 되었다. 이 논문은 빈피킹을 고려해본다. 빈피킹이란 여러 객체가 무작위로 쌓여있는 상태에서 순서대로 파지 후 목적지에 이동시키는 것이 목적인 업무이다. 우리는 heap의 state, point cloud observation, reward를 구체화하는 discrete-time의 Partially Observable Markov Decision Process를 빈피킹 모델로 사용하였다. 우리는 빈피킹의 합성 demostration을 algorithmic supervisor로부터 수집한다. 가장 강인하고 충돌이 없는 파지로 최적화하기 위해. 우리는 GQCNN을 fine-tuning하여 policy를 학습하였다. 1만개의 rollout 데이터셋으로부터. ABB YuMi를 사용하여 50개의 일반적 객체 데이터셋에 2192개의 실제 빈피킹 시도 끝에, 우리는 최종 policy가 5~10개의 객체 더미에서 94% 성공률과 96% 평균 정밀도에 도달하고 3분 안에 10개의 객체로 이루어진 더미를 해결할 수 있었다는 것을 확인하였다. 데이터셋, 실험결과, 보충 자료는 다음과 같은 주소에서 받아볼 수 있다.

     

    1. 소개

       그리퍼는 단일의 객체가 있을때 딥러닝을 사용하여 다양한 종류의 딱딱한 객체를 들고 이동시킬 수 있다. 그러나, 객체는 빈피킹과 같은 실제 산업에 있어서 주로 정리되어있지 않은 더미의 형태로 되어있다. 이러한 상태는 알고리즘이 point cloud로부터 객체 모양과 포즈를 추론하기 어렵게 만드는 sensor noise, obstruction, occlusion 때문에 매우 어려운 도전과제에 해당한다. 게다가, 로봇은 인접한 객체와의 충돌을 반드시 고려해야 하고, 각 객체가 놓여진 유한한 포즈를 가정할 수 없다.

     

       최근 연구결과에 따르면 CNN을 사용하여 뭉쳐있는 다양한 객체 세트를 파지할 수 있다는 것을 알 수 있다. 해당 CNN은 실제 로봇에 사용되는 다량의 파지 시도 데이터셋으로 훈련된다. 그러나, 실제 데이터를 수집하는데 드는 시간 비용은 서로 다른 환경에서 서로 다른 로봇을 훈련시키는데 깨끗하고 충분히 큰 데이터셋을 수집하는데 어렵게 만든다. 대안이 있다면 antipodality와 같은 파지 안정성과 연관된 기하 상태를 사용하여 label된 grasp와 point cloud 합성 데이터셋으로 훈련시키는 것이다. 그러나 이 방법은 센서 노이즈에 강인하기 위해서 여러 방향에서의 장면을 필요로 한다.

     

      이 논문에서, 우리는 한 방향에서 빠른 빈피킹을 위해서 강인한 정책을 배우기 위해, 데이터셋 생성 동안 완벽히 모델링된 불확실성을 고려한다. 우리는 noisy point cloud 관측과 객체 제거 보상과 함께 더미에서 3D 객체 포즈의 순서로서 빈피킹을 모델링한 discrete-time POMDP를 공식화하였다. 연속적인 상태와 관측으로 POMDP를 훈련하기에 어려움이 있기 때문에, 우리는 강인하고 충돌하지 않는 파지를 합성하는 algorithmic supervisor를 기반으로한 imitation learning을 사용한다. 이 파지는 wrench space 분석과 환경 속에서 객체 모양과 포즈를 전부 알고있는.

     

       이 논문은 다음과 같은 네가지 기여를 한다.

    1. POMDP로 빈피킹 공식화. point cloud를 기반으로 더미에서 객체를 반복적으로 집고 제거하는 작업을 모델링. 이것은 Dex-Net 2.0으로부터 단일 객체 순서가 없는 강인한 파지 모델을 확장시킨다.

    2. Dex-Net 2.1: POMDP의 실행에서 만번의 rollout 데이터셋. state를 전부 알고 있는 상태에서 강인한 파지를 계획하는 algorithmic robust grasping supervisor에 노이즈를 주입하여 수집한 데이터셋.

    3. 전이학습 연구. 단일 객체 파지를 위한 GQ-CNN 정책의 미리 학습된 weight로부터 빈피킹 정책을 배우기 위해.

    4. ABB YuMi 로봇을 사용하여 20개의 일반적 객체가 있는 더미에서 빈피킹 정책의 성과를 예측하는 실험

     

    Dex-Net 2.1로부터 합성 데이터가 훈련된 빈피킹 정책은 시간당 416개의 성공 파지와 96% 평균 정밀도에 도달하였다.

     

    2. 관련 연구

     

    3. 정의와 문제 설정

       우리는 빈피킹 문제를 고려한다. : 테이블 위의 객체 더미를 치운다. 더미로부터 단일 객체를 반복적으로 잡아 옮기면서. 우리의 목적은 정책을 배우는 것이다. 정책은 depth 카메라로부터 point cloud를 입력받고, 강인한 파지를 출력하는 정책. 혹은 더미로부터 객체를 제거하기 위해 그리퍼 포즈를 출력하는 정책. 파지를 위한 만족수치와 함께.

     

    3.1 가정

    우리의 모델은 파지 강인함을 계산하기 위해 관성이 무시되는 quasi-static(준정적) 물리학을 가정한다. 우리의 모델은 다음을 가정한다. 그리퍼, 단단한 객체, 카메라 파라미터로 제한된 depth 센서, 로봇에 상대적인 포즈, 객체와 그 표면 전반에 있는 마찰 범위. 이 가정은 산업 로봇에 흔하다. 우리는 한번에 하나의 객체만을 파지하는 단순 가정을 추가적으로 만들었다. 우리의 모델은 파지하는데 있어 객체 identity를 고려하지 않는다.

     

    3.2 POMDP Model

    실제 로봇에 데이터로부터 직접적으로 정책을 배우는데 있어 소요되는 비용 때문에, 우리는 더미로부터 객체를 반복적으로 파지하는 모델을 사용하여 시뮬레이션에서 정책을 학습한다. 더미는 준정적 접촉, 이미지 배치, 센서 노이즈로된 모델을 기반으로하여 무한의 평면 작업공간에 있다. 구체적으로, 우리는 빈피킹 업무를 POMDP(그림1)으로 모델링한다. 

    그림 1: POMDP 모델과 시뮬레이터 개관. 우리는 최초의 상태 분포 ρ0 로부터 샘플링한다. 해당 샘플링은 데이터셋으로부터 m개의 3D CAD 객체 모델을 균일하게 샘플링되고, 더미를 만들기 위해 pybullet dynamic simulator에서 임의의 포즈로 객체를 떨어뜨려 샘플링한다. state xt는 더미에서 객체 모양과 포즈를 포함한다. 우리는 Dex-Net 2.0으로부터 algorithmic supervisor π*를 사용하여 로봇 파지의 demostration을 생성한다. Dex-Net 2.0은 모든 상태를 완벽히 알고 있는 상태에서 미리 파지를 계획하는 데이터베이스로부터 가장 강인하고 충돌이 없는 파지 ut를 만든다. 우리는 모방 학습을 사용하여 부분 관측에 supervisor를 분류하는 정책을 학습하는 레이블된 데이터셋을 형성하기 위해, 합성 point cloud 관측 yt와 수집된 보상 Rt를 만든다. 우리는 파지 중심과 축을 중심 픽셀과 중간열에 정렬하기위해 point cloud를 변헝하여 학습데이터를 미리 조작한다. GQ-CNN 분류 성과를 높이기 위해.

     

    POMDP은 (x,u,y,R,ρ0,p,q)로 이루어져있다.

    x : state (객체 모양과 포즈)

    u : action (그리퍼 포즈)

    y : observation (point cloud)

    R : 보상 함수

    ρ0 : initial state distribution (객체 더미)

    p : next state distribution

    q : sensor noise distribution

    우리의 POMDP는 fixed maximum time horizon T를 사용한다. 각 분포에 따른 파라미터값은 보충 자료를 살펴보라.

     

    Initial State Distribution (ρ0)

    더미에 있는 객체의 위치와 모양을 모델링할 뿐만 아니라 에피소드에서 상수값으로 존재하는 카메라와 마찰에 관련한 파라미터들도 모델링 한다. 우리는 다음에 대한 distribution의 product로서 ρ0을 모델링하였다:

    1) Object Count (m) : 평균 λ인 poisson distribution

    2) Object Heap (O) : m개의 3D 삼각형 메쉬와 더미 속으로 떨어뜨린 각 메쉬 포즈의 이산적 세트에 대한 uniform distribution. (메쉬 : {M0, ... , Mm-1})

    3) Depth Camera (C) : 카메라 포즈와 내재 파라미터에 대한 uniform distribution

    4) Coulomb Friction (α) : Truncated Gaussian constrained to [0,1]

     

    initial state는 다음과 같이 샘플링한다. (1) m개의 객체와 각 객체의 3D CAD model을 샘플링 (2) 더미 중심을 위한 평면 포즈, 그리고 각 객체의 더미 중심과 평면 포즈 간 거리 offset 샘플링 (3) 테이블 위 고정된 높이 h0에서 객체를 하나씩 떨어뜨리고 모든 객체가 정지해있을때까지 dynamic simulation을 구동. 어떤 객체든 중심에서 거리 W만큼 멀어지면 제거된다.

     

    States (x)

    time t에서의 state xt는 3D 객체 메쉬 Ot와 메쉬 포즈의 세트로 구성된다.

     

    Actions (u)

    로봇은 action ut를 수행함으로써 환경에서부터 객체를 들어 제거하는 시도를 할 수 있다. 로봇은 4-DOF 그리퍼를 사용하고, 해당 그리퍼 포즈는 (p,θ,d)로 구성된다. p는 파지 중심 픽셀, θ는 이미지 공간에서의 그리퍼 방향, d는 grasp depth, 즉 이미지 평면으로부터 3D 파지 중심까지의 거리. action은 다음의 공식에 따라 3차원 공간 c에서 파지 중심과 연관되어있다. 로봇은 직선 접근 궤도를 따라 3D 그리퍼 포즈를 목표지점으로 옮기며 action을 수행한다. 그리퍼는 목표지점에서 일정한 힘으로 닫히고, 객체를 위로 들어올린다.

     

    Observations (y)

    로봇은 H x W x 3 행렬로 구체화되는 point cloud yt를 관찰한다. 해당 행렬은 H x W 해상도 depth 카메라로 이미지화된 3D 포인트의 세트로 표현된다.

     

    Rewards (R)

    Binary reward는 더미로부터 단일 객체를 제거하는 이동이 발생할 경우 보상이 주어진다. mt는 더미에 남아있는 객체의 수라고 하자. 그러면 mt+1 < mt 일때, R(xt,ut,xt+1) = 1 이다.

     

    Next State Distribution (p)

    우리는 준정적 상태 하에서 더미로부터 객체를 들어올릴 수 있는지 없는지 결정하기 위해 wrench space analysis를 사용한다. 그리고 우리는 객체가 들어올려지고 나서 나머지 객체들의 다음 state를 결정하기 위해 pybullet에서 실행한 속도 기반의 complementarity formulation으로 multibody dynamic simulation을 사용한다.

     

    action ut를 실행할때 그리퍼가 접근하는 첫번째 객체를 Mi ∈ xt 라고 하자. 그러면 우리는 이진수 지표 S(xt,ut) ∈ {0,1} 으로 파지 성공 여부를 측정할 수 있다. 이 지표를 통해, ut가 충돌을 방지하는지와 point contact model을 사용하여 state perturbation 하에서 객체 Mi에 작용하는 외부의 힘에 저항할 수 있는지 측정할 수 있다. 구체적으로, 강인한 epsilon 지표가 threshold δ = 0.002 보다 크고, 그리퍼가 직선 접근 궤도를 따라 테이블이나 객체와 충돌하지 않는 경우 S = 1 이다. 만약 S(xt,ut) = 1이면, xt+1 = f(xt,ut,i) 이다. f는 객체 더미 O의 dynamic simulation 결과로서 객체 메쉬와 포즈 세트를 반환한다. 객체 Mi는 나머지 객체가 움직이지 않을때까지 들어올려진다. 그렇지 않으면 state는 변하지 않고 남아있다. 만약 객체가 중심으로부터 거리 W보다 멀어진다면 그 객체는 더미 안으로 다시 떨어뜨린다.

     

    Observation Distribution (q)

    우리는 깊이에 비례하는 노이즈를 모델링하였다. 이 노이즈는 계산 차이에서 발생하는 오류에 기인한 깊이 비례 노이즈로 모델링된 Gamma distribution 이다.

     

    3.3 Policy

    정책은 point cloud 관측결과 y를 action u = π(y)에 mapping 시킨다. 그리고 정책은 weight θ를 가진 NN의 벡터로된 파라미터를 지닌다. 우리는 다음과 같이 정책을 고려한다.

    C는 충돌 등을 고려하여 파지가 가능한 조건을 말한다. Qθ는 0과 1사이의 실수이며 주어진 관측에서 실행하는 action을 평가하는 함수이다. 정책은 POMDP의 최초 상태, 다음 상태, 그리고 perceptual distribution이 주어졌을때 궤도 분포를 추론한다. 

     

    POMDP 학습 사이트

    https://blog.naver.com/dhldidrks/222640972942

    https://blog.naver.com/sameastrue/222647569124

    https://daeson.tistory.com/312

    강화학습을 사용하여 보상함수 R이 높은 값을 갖도록 유도하는구나!

    강화학습은 정해진 답이 없고, 알아서 보상을 최대화 해야된다.

     

    3.4 목표

    목표는 undiscounted reward의 합계를 최대화하는 정책 πθ를 학습하는 것이다.

    우리의 POMDP에서, 더미에서 제거되는 객체의 수를 최대화하는 것과 연결된다.

     

    4. Algorithmic Supervisor로부터 모방학습

    POMDP에 최적화된 솔루션은 계산할 수 없는 것으로 알려져있다. 많은 근사치 솔루션은 존재한다. 하지만 대부분 closed-form dynamics, 이산적이거나 낮은 차원의 state 공간, 혹은 가우시안 분포를 가정한다.

    우리는 algorithmic supervisor의 action을 학습하기위해 모방학습을 사용한다. 시뮬레이터로부터 state에 대한 완전한 이해를 바탕으로. 모방학습은 POMDP를 대략적으로 해결하기 위해 사용된다. state에 대한 모든 정보에 접근하여 algorithmic supervisor가 존재할 경우. 우리는 첫째로 Dex-Net 2.0으로부터 단일 객체에 강인한 grasp planner를 사용하여 algorithmic supervisor를 계산한다. Dex-Net 2.0은 알려진 객체 모양과 포즈가 주어질때 mechanical wrench space analysis를 사용하여 파지를 계산한다. 그리고나서 우리는 양성과 음성 예시의 균형을 맞추기 위해 노이즈 주입과 함께 algorithmic supervisor를 출시하여 point cloud, actions, reward의 데이터셋을 수집한다 마지막으로, 우리는 supervisor의 action을 분류하기 위해 CNN을 학습시키고, action scoring function으로서 훈련된 CNN을 사용한다.

     

    4.1 Algorithmic Robust Grasping Supervisor

    Algorithmic supervisor π*은 state에 대한 완벽한 정보를 바탕으로 데이터셋에서 각 3D 객체에 강인한 파지 세트를 미리 계산한다. 계산 효율을 위해, supervisor는 Monte-Carlo 샘플링을 사용하여 파지 성공 지표 S(u,x)를 평가하여 각 3D 객체에 강인한 파지 데이터베이스를 미리 계산한다. state xt가 주어질때, π*가 더미에서 각 객체에 가능한 action set를 가지치기하여 강인한 파지를 계획한다. 이는 강인한 파지의 남은 세트로부터 일정하게 임의로 action을 확인하고 return해주는 충돌을 사용한다. 우리는 π*가 오로지 현재 timestep에 보상을 최대화하고, 전체 시간에 있어 최선을 아닐 수 있다는 것을 강조한다.

     

    4.2 Learning a Bin Picking Policy

    우리는 noise가 주입된 π*에서 supervisor의 action을 분류하는 알고리즘을 학습하여 빈피킹 정책을 학습한다. 노이즈 주입은 분류기에 있어 양성과 음성 예시의 분포에 균형을 맞춘다. 모든 양성 예시에서 algorithmic supervisor를 출시하여.

    우리의 정책 학습 알고리즘은 두가지 단계로 구성된다: (1) 확률 (1-ε)의 π*와 확률 ε의 파지 데이터베이스로부터 임의의 action을 실행하여 demonstration을 수집한다. (2) GQCNN과 함께 supervisor로 얻어진 action을 분류하기 위해 지도학습을 사용한다. 구체적으로, 노이즈가 주입된 supervisor로부터 K개의 demonstration이 주어질때, 우리는 다음과 같이 최적화한다:

    여기서 supervisor가 action에 동의하면 Rj,t = 1 이다. 해당 action은 timestep t, rollout j 그리고 L은 크로스 엔트로피 분류 손실에서의 action이다. point cloud가 주어질때, 우리는 Dex-Net 2.0의 강인한 파지 정책을 사용한다. Dex-Net 2.0은 크로스 엔트로피 방법을 사용하여 Qθ^에 따라 antipodal 파지 후보의 세트를 샘플링하고 순위를 매긴다.

     

    4.2.1 전이학습

    컴퓨터 비전 연구는 CNN에서 얻은 특징이 새로운 영역에서 이미지를 분류할때 일반적인 특징으로서 잘 작동한다는 것을 보여왔다. 객체 더미를 시뮬레이팅하는 것은 객체 상호작용 때문에 단일 객체를 시뮬레이션하는 것보다 느리다. 이 때문에, 우리는 전이학습으로 빈피킹 정책의 NN weight를 최적화하였다. 전이학습은 Dex-Net 2.0으로부터 몇백만개의 예시로 단일 객체를 파지하기 위해 훈련된 GQ-CNN의 특징을 사용한다. 구체적으로, 경사하강법 최적화를 위해 초기화로서 weight를 사용하고 conv layer를 고정시켜둔채로 오로지 FC layer만을 업데이트하여 Dex-Net 2.0 GQ-CNN으로부터 특징을 fine-tune한다. 우리는 0.9 momentum, 0.1 base learning rate, 그리고 매 epoch마다 5%씩 learning rate를 감소시키는 경사하강법을 사용하여 10번의 epoch로 네트워크를 업데이트했다.

     

    5.2 ABB YuMi를 사용한 빈피킹

     

    5.2.1 성과 지표

    우리는 아래와 같은 지표로 성과를 비교하였다.:

    1. 성공률 : packing box로 객체를 이동시킨 파지 시도의 확률

    2. Average Precision (AP) : precision-recall curve 아래의 영역. 몇몇 사례에서, 로봇은 분류기의 confidence를 위해 theshold를 기반으로 파지를 실행할지 안할지 결정할 수 있다. AP는 이러한 시나리오의 모든 가능한 threshold에 대한 평균 성공률을 측정한다.

    3. Percent Cleared : 그릇에 이동된 객체의 분수

    4. Picks per Hour (PPH) : 시간당 예측되는 빈피킹 갯수. 이는 시간당 평균 파지 시도 수에 성공률을 곱하여 계산된다. 사람은 대략 600 PPH의 성과를 보인다.

     

     

     

     

     

Designed by Tistory.