Blog(으)로 돌아가기

로봇 조작 RL: 무엇이 효과가 있고 무엇이 효과가 없는지 보상 형성

로봇 조작에 대한 보상 공학에 대한 실용적인 가이드 <unk> 밀집한 대 희소한 보상, 잠재력을 기반으로 한 형성, 교육과정 보상 진행, 시미-실적 격차, 그리고 보상 해킹을 피하는 방법.

[로봇 무기 가이드]

[← 블로그]

보너스 디자인은 교과서에서 설명되지 않고, 연습생들이 고통스러운 경험을 통해 학습하는 부분입니다. 우리가 실제로 조작에 효과가 있다는 것을 발견했습니다.

밀집한 대 저하 보상: 핵심 거래

스파스 보상 작업 완료만, 중간 신호는 없습니다 이론적으로 깨끗하고 해킹이 불가능합니다. 그러나 보상 은 신용 할당으로 인해 10 단계 이상의 일련의 조작 작업에 재앙적으로 실패합니다. 정책이 에피소드 완료에만 보상을 볼 때, 이전 200 가지 행동 중 성공에 기여한 것을 설명하는 신호는 없습니다. 샘플 효율성은 희귀한 보상 아래 작업 지평으로 기하급수적으로 감소합니다.

덩어리 보상 작업 진행을 위한 어떤 프록시를 기반으로 한 단계별 진전 신호 샘플 효율성을 크게 향상시킵니다. 덩어리 거리-목표 보상으로 객체를 배치하는 정책 학습은 희소성 동등보다 1050x 적은 환경 단계로 공감합니다. 비용은 보상 해킹입니다. 에이전트는 실제 작업을 해결하지 않고 프록시를 극대화 할 수있는 방법을 찾습니다.

이를 수치를 위해: 시뮬레이션된 [OpenArm] (T10) 에서 선택과 장소 작업을 수행하는 아이작 랩 벤치마크에서, 희소한 보상 은 약 200M 환경 단계 (4,096 개의 병렬 엔비디아를 가진 RTX 4090에서 약 8 시간) 로 70%의 성공을 달성 할 수 있습니다. 거리의 모양을 하는 밀집한 보상 은 12M 단계 (~ 30 분) 에서 동일한 성공률을 달성했습니다. 하지만 밀집 보상 에이전트는 이 과정에서 3개의 별도의 보상 해킹을 발견했는데, 이 작업은 반복적인 보상 재설계를 요구했습니다.

** 엄지손가락 규칙:** 작업 지평이 50 단계 미만이고 목표 구성이 명확할 때만 희귀한 보상을 사용하십시오. 다른 모든 것 톱 삽입, 조립, 도구 사용, 다단계 당신은 밀집한 모양을 필요로하며 훈련이 시작되기 전에 25 보상 재설계 반복을 예산해야합니다.

잠재력 에 기초 한 형성: 이론적 으로 안전 한 밀집 한 보상

잠재력을 기반으로 한 보상 형성에 대한 Ng, Daswani, and Russell (1999) 정리는 최적의 정책을 변경하지 않고 밀집한 보상을 추가하는 데 수학적으로 근거한 접근법을 제공합니다. 구조는: T2, 여기서 Φ는 상태에 대한 실제 가치있는 잠재 함수입니다. 기본 보상 r에 F를 추가하면 r 혼자와 동일한 최적의 정책을 공유하는 모양의 보상 r + F를 생성합니다.

조작에 있어서 가장 자연스러운 잠재 함수는 목표까지의 음의 거리가 있습니다. 이것은 에이전트가 대상을 목표로 이동할 때 긍정적인 보상을 주는 형식 용어를 생성하고, 이동할 때 부정적인 보상을 을 생성합니다.

잠재력 을 바탕으로 한 형성 을 실천 하는 것

이 이론은 깨끗하다. 구현은 아닙니다. 주요 미묘함은: 잠재 기반의 형성은 할인되지 않은 또는 제대로 할인되지 않은 무한한 지평의 경우에만 최적성을 보존합니다. 실제로는 이론적 보증을 깨는 이른 종료로 끝없는 에피소드를 실행합니다. 형성 용어는 이제 작업을 빨리 완료하는 대신 에피소드를 연장 (더 긍정적인 형성 축적) 하는 인센티브를 만들 수 있습니다.

수정 방법은 잠재 기반의 형성과 단계별 시간 벌금과 지배적인 최종 보상과 결합하는 것입니다. 시간 벌금은 에피소드가 계속 끌리지 않도록 보장하고, 최종 보상은 작업 완료가 항상 축적된 형성 신호를 지배하도록 보장합니다.

def compute_reward(self, obs, action, next_obs, done, info):
    # Potential-based shaping (preserves optimal policy)
    phi_current = -torch.norm(obs["object_pos"] - obs["target_pos"], dim=-1)
    phi_next = -torch.norm(next_obs["object_pos"] - next_obs["target_pos"], dim=-1)
    shaping = self.gamma * phi_next - phi_current

    # Grasp bonus: activated only on first contact
    grasp_reward = 0.0
    if info["contact_force"] > self.contact_threshold and not info["has_grasped"]:
        grasp_reward = 0.5

    # Sparse task completion (dominates all dense signals)
    success = next_obs["object_at_target"].float()
    task_reward = 10.0 * success

    # Time penalty (discourages episode prolongation)
    time_penalty = -0.01

    # Action smoothness penalty
    jerk = torch.norm(action - 2 * obs["prev_action"] + obs["prev_prev_action"], dim=-1)
    smooth_penalty = -0.02 * jerk

    total = task_reward + 0.3 * shaping + grasp_reward + time_penalty + smooth_penalty
    return total

핵심 비율: 작업 완료 보상 (10.0) 은 적어도 10x 일 에피소드 전체의 최대 누적 형태가어야 합니다. 작업 공간 지각은 ~ 1.0m, 에피소드 200 단계의 경우, 최대 누적 형태는 약 0.3 × 1.0 = 0.3 각 단계, 또는 60 에피소드 전체에 대한 것입니다. 따라서 작업 보상 10.0는 실제로 너무 낮습니다. 우리는 10.0을 명확하기 위해 사용합니다. 생산에서 적절한 스케일을 사용합니다.

다단계 잠재적인 기능

많은 조작 작업은 접근, 잡기, 운송, 장소 등 여러 순서적인 단계를 가지고 있다. 단일 잠재적인 기능 (최후 목표까지의 거리는) 는 접근 및 잡기 단계에 대한 형성 신호를 제공하지 않는다. 해결책은 작업 진행에 따라 전환되는 단계 인식 잠재적인 기능입니다.

  • 단계 1 접근: Φ(s) = −d(끝_효과자, 객체). 객체 쪽으로 기하급수 제공.
  • ** 2 단계
  • ** 3 단계 운송:** Φ(s) = −d(물, 목표). 포착 후만 활성 인 것을 감지합니다.
  • 단계 4 장소: Φ(s) = −d(물, 목표) − 방향성_실점(물, 목표_ 방향성). 대상으로부터 5cm 이내에 있는 경우 활성화됩니다.

단계 전환은 시간 단계가 아닌 물리적 신호 (접촉력 임대, 물체의 높이의 변화) 를 통해 감지되어야 합니다. 시간 기반의 단계들은 단계 전환을 조기에 시작시키는 것을 배우게 되는 이용 기회를 만들어 줍니다.

조작-특별한 보상 구성요소

Component Normalization Weight Activate When Purpose
EE-to-Object Distance 작업 공간 diagonal (0.8–1.2m) 0.1–0.3× Before first contact Encourage approach
Object-to-Target Distance 작업 공간 diagonal 0.4–0.6× After grasp detected Primary transport signal
Grasp Quality [0, 1] continuous 0.1–0.2× During contact Prevent dragging
Orientation Alignment 사원수 error [0, π] 0.1–0.2× Last 20% of transport Correct placement angle
Action Smoothness (jerk) Max expected jerk −0.05–0.1× Always Hardware-safe motions
Joint Limit Penalty Binary per joint −0.1× per violation Always Stay within workspace
Collision Penalty Binary −1.0 terminal Self-collision or table Physical safety
Time Penalty Constant per step −0.01× Always Discourage stalling

** 객체 거리 최종 효과:** 구성 요소를 [0, 1]에서 유지하기 위해 작업 공간 디아곤알 (일반적으로 0.81.2m) 으로 정상화하십시오. 무게: 0.10.3x 전체 보상 규모. 목적: 객체에 접근하는 것을 권장하십시오. 첫 접촉 후 차단하여 객체 근처에 헤킹을 피하십시오. 실제에서는 붕괴되는 활성화 무게를 사용합니다. 접촉이 일어나지 않은 상태에서 완전한 무게를 사용하며, 첫 접촉 후 10단계 이상으로 순차적으로 붕괴되어 0로 떨어집니다.

** 대상 거리:** 포착이 감지된 후에만 활성화한다 (접촉력 > 문턱). 작업 공간에 의해 정상화한다. 무게: 0.40.6×. 이는 운송 단계의 주요 밀도가 높은 신호입니다. 좁은 배치 용인 (<2mm) 과제에 대해서는 마지막 5cm에 기하급수적 보너스를 추가하십시오: T4 d가 미터에 있습니다. 이것은 더 넓은 운송 행동에 영향을 주지 않고 정밀 배치 단계에 강한 기하급수성을 만들어 냅니다.

Grasp 품질: 접촉 안정성의 쌍성 또는 연속 측정 예를 들어, 접촉 정상은 긍정적 인 힘 폐쇄를 형성하는지 여부, 또는 당신이 그것을 가지고 있다면 GQ-CNN 점수를. 무게: 0.10.2×. 이 없이는 요인은 물건을 잡아가는 대신 끌어당기는 것을 배우게 된다. 시뮬레이션에서, 당신은 물리 엔진이 제공하는 접촉 포인트와 정상에서 반극 포착 품질을 계산할 수 있습니다. MuJoCo: 객체의 반대편에서 최소 2개의 접촉 지점이 존재하는지 확인하고, 정상 각이 150도 이상 차이가 있는 것을 확인한다.

** 액션 매끄러움:** 하드웨어를 손상시키는 T5으로 계산하여 T5로 계산하여 T5을 손상시키는 K (joint position's third derivative) 를 처벌합니다. T5로 계산합니다. 무게: 0.050.1x는 부정적인 벌금으로 계산합니다. K (Junk) 의 정책이 실제 하드웨어에 실패하기 때문에 sim-to-real 전송에 중요합니다. 특히 OpenArm에서 우리는 벌 없이 훈련된 정책이 손목 관절의 세보가 15분 이내에 계속 작동하는 동안 과열되는 것을 발견했습니다.

보너스 해킹: 현장 가이드

다음 해크는 조작 보상 디자인에서 반복적으로 나타납니다. 그들은 경고로 나열되어 있습니다. 발견이 아닙니다.

Hack Name Mechanism Frequency Fix
Hover Exploitation EE hovers near object, accumulating proximity reward without grasping Very common Disable EE-proximity after first contact; add time penalty for non-contact phases
Table Push for Termination Pushes object off table to trigger early episode end (less accumulated negative reward) Common Large negative terminal reward (−10×) for out-of-bounds; verify termination conditions
Success Oscillation Rapidly oscillates object through target zone to trigger success on rolling window check Common Require success maintained for 10+ consecutive steps
Gravity Exploitation Drops object near target from height, scoring placement reward during free-fall Moderate Check that EE is within 5cm of object at success time; require low object velocity (<0.05 m/s)
Contact Cycling Repeatedly touches and releases object to accumulate first-contact bonus Moderate Make grasp bonus one-time per episode using a boolean flag
Joint Limit Surfing Jams joints against limits to achieve workspace positions unreachable with smooth motion Occasional Add continuous joint-limit proximity penalty, not just at-limit penalty
Sim Physics Exploitation Exploits penetration or tunneling bugs to teleport objects Rare but catastrophic Validate object positions between steps; flag teleports >5cm as invalid

해킹 방지 설계 원칙

  • 터미널 보상 지배: 작업 완료 최종 보상은 에피소드 한 에피소드 중 가능한 최대 누적 밀도 보상 10x 이상으로 있어야합니다. 이것은 정책이 항상 밀도 높은 보상 축적을 이용하는 것보다 실제 작업을 완료하는 것을 선호하는 것을 보장합니다. 최대 값을 계산하십시오: (단계 한 단계 최대 모양) × (최고 에피소드 길이가) × (형량) 당신의 임상 보상도 그 규모를 1배 넘어야 합니다.
  • ** 컴포넌트 정상화:** 모든 밀집 보상 구성 요소를 [-1, 1]에 보관하고 명시적인 무게를 설정하십시오. 다른 스케일에서의 비정상화 된 보상 구성 요소는 예측할 수 없을 정도로 상호 작용하여 보상 기능을 구현 세부 사항에 매우 민감하게 만듭니다. 훈련 중에 각 구성 요소의 실행 통계를 기록합니다.
  • ** 적대적 테스트:** 완전한 훈련 실행 전에, 적대적 작업을 완료하지 않고도 의도적으로 보상을 극대화하려고 노력하는 스크립트 적대적 정책으로 보상 기능을 테스트하십시오. 적대자가 작업을 완료하지 않는 높은 보상 경로를 발견하면 GPU 시간을 낭비하기 전에 재설계하십시오. RCSV에서는 일반적인 조작 작업을위한 ~ 20 개의 적대적 스크립트의 라이브러리를 유지합니다. 5분 정도 걸리고 며칠도 절약할 수 있습니다.
  • ** 보상 구성 요소 기록:** 훈련 중에 보상 구성 요소를 각각 기록하고, 전체만을 기록하지 마십시오. 보상 곡선이 건강하게 보이지만 성공률이 떨어지면 구성 요소 분분으로 에이전트가 어떤 용어를 활용하고 있는지 알 수 있습니다. 각 구성 요소를 별도의 스칼라로 추적하기 위해 TensorBoard 또는 Weights & Biases를 사용합니다.

교육 계획 에 대한 보상

복잡한 다단계 작업에 있어서 기어를 조립하고, 클리어링 크기가 <1mm, 혼합된 객체를 분류하는 단일 정적 보상 기능이 거의 작동하지 않습니다. 일관되게 성공하는 방법은 교육과정 보상 진행입니다. 작업을 학습할 수 있도록 단순화된 보상으로 시작하여, 점차적으로 어려움과 정밀 요구 사항을 증가시킵니다.

단계 1: 한 접근 (단계 0~5M)

최종 효과자만 객체에 가깝게 보상합니다. 포착 품질 요구 사항이 없습니다. 배치 정확도 없습니다. 목표는 기본 팔 제어 및 작업 공간 탐색을 배우는 것입니다. 성공 임대: EE 객체에서 5cm 이내에.

2단계: 학위 취득 (5M~20M 단계)

포착 품질 보상이 추가됩니다. 근접 문턱을 강화합니다. 요인은 이제 물체를 둘러싼 손가락을 실제로 닫아야하며 안정적인 접촉을 설정해야합니다. 성공 문턱: 테이블 표면에서 10cm 높이 물체가 들어간 경우.

3단계: 운송 (단계 20M50M)

대상에서 대상까지의 거리 보상 활성화를 위한 작업. 대리인은 대상에서 5cm 이내에 있는 객체를 붙잡고, 끌어올리고, 목표 방향으로 이동해야 한다.

4단계: 정밀 배치 (50M~100M 단계)

모든 임계값을 좁히십시오. 방향성 조율 보너스를 추가하십시오. 기하급수적 정확성 보너스를 활성화하십시오. 성공 임계값: 방향성 오류 <5도와 목표로부터 2mm 이내에 있는 객체. 여기서 가장 많은 인내와 가장 신중한 보상 조정이 필요합니다.

class CurriculumRewardManager:
    """Manages reward curriculum progression based on training progress."""

    def __init__(self, env_cfg):
        self.stages = [
            {"name": "reach",     "threshold": 0.70, "min_steps": 2_000_000},
            {"name": "grasp",     "threshold": 0.60, "min_steps": 5_000_000},
            {"name": "transport", "threshold": 0.50, "min_steps": 10_000_000},
            {"name": "precise",   "threshold": None, "min_steps": 0},
        ]
        self.current_stage = 0
        self.total_steps = 0

    def maybe_advance(self, success_rate, steps_in_stage):
        stage = self.stages[self.current_stage]
        if (stage["threshold"] is not None
            and success_rate >= stage["threshold"]
            and steps_in_stage >= stage["min_steps"]
            and self.current_stage < len(self.stages) - 1):
            self.current_stage += 1
            print(f"Advancing to stage: {self.stages[self.current_stage]['name']}")

    def get_reward_weights(self):
        """Returns reward component weights for current curriculum stage."""
        if self.current_stage == 0:   # reach
            return {"ee_dist": 1.0, "grasp": 0.0, "obj_dist": 0.0, "orient": 0.0}
        elif self.current_stage == 1: # grasp
            return {"ee_dist": 0.5, "grasp": 0.5, "obj_dist": 0.0, "orient": 0.0}
        elif self.current_stage == 2: # transport
            return {"ee_dist": 0.2, "grasp": 0.3, "obj_dist": 0.5, "orient": 0.0}
        else:                          # precise
            return {"ee_dist": 0.1, "grasp": 0.2, "obj_dist": 0.4, "orient": 0.3}

단계 진출 문턱 (70%, 60%, 50%) 은 의도적으로 100% 이하로 설정됩니다. 정책은 각 단계에서 필수적인 행동을 배워내면, 쉬운 버전에 적합하지 않은 후에 앞으로 나아가기를 원합니다. 진출하기 전에 95%의 성공을 기다리면 정책은 쉬운 보상을 위해 최적화된 습관을 개발합니다. 정확성 요구 사항이 증가하면 배워내기가 어렵습니다.

시미스 로 리얼 보상 격차

시뮬레이션에서 완벽하게 작동하는 보상 기능은 도메인 무작위로도 실제 하드웨어에서 완전히 다른 행동을 생성할 수 있습니다. 보상 격차는 크게 세 가지 원천을 가지고 있습니다.

1. 연락처 동화 부합

Sim 접촉 모델 (MuJoCo의 소프트-컨택트, 아이작 Sim의 GPU 가속화 된 딱딱한 몸) 은 마찰 계수, 접촉 딱딱성 및 변형 행동으로 현실과 다르다. 미세한 초자연 접촉 상태에 따라 달라지는 보상 (그램프 품질, 슬라이딩 마찰) 은 sim vs. 실제에서 다른 기하급수들을 생성합니다. 완화: 훈련 중에 추부 계수 (0.31.2× 명칭), 접촉 딱딱함 (±50%), 물체 질량 (±30%) 를 무작위로 조정한다. RCSV의 [RL 환경]T11) 은 이러한 무작위 범위를 기본으로 포함한다.

2· 관찰 지연

실제 로봇 관측은 변수 지연 (관동코더의 경우 115ms, 카메라 프레임의 경우 3080ms) 를 가지고 도착한다. 서로 다른 양에 의해 구석된 관측에서 계산된 보상 구성 요소는 일관성이 없는 신호를 생성한다. 시밍에서 모든 관측은 동기화된다. 완화: 훈련 중에 시뮬레이션 센서에 무작위 관측 지연 (02 제어 단계) 를 추가한다. 이것은 대부분의 실무자들이 깨닫는 것보다 더 중요합니다. 우리는 시뮬레이션에서 90%의 성공을 달성하는 정책을 보았습니다. 실제 하드웨어에서 30%까지 떨어집니다.

3. 액추이터 모델 부합

시뮬레이션 모터는 명령에 즉각적이고 정확하게 반응한다. 실제 서버는 대역폭 제한을 (정상적으로 위치 제어 서버는 515 Hz), 역 반응 (0.10.5도 일반적인 조화 드라이브) 및 토크 파동을 가지고 있다. 정확한 최종 효과 위치에 의존하는 보상은 실제 로봇이 시뮬레이션 정책이 기대하는 위치를 달성할 수 없기 때문에 영향을 받는다. 완화: 1급 저파스 필터로 520 Hz 사이 주파수를 무작위로 분류하고, 관절에 ±0.3도 정도의 균일한 반사음 소리를 추가한다. [OpenArm]T12) 에서 구체적으로, 손목 관절은 가장 많은 반사음 (~0.4도) 를 가지고 있으며 이 무작위로 가장 많은 혜택을 누린다.

** 실용적 시험:** 시뮬레이션 훈련 정책을 배포하기 전에 모든 추상화 를 동시에 극단화 로 설정 한 시뮬레이션 에서 평가 하십시오 (최고의 경우 마찰, 최대 지연, 가장 낮은 액추어터 대역폭). 성공률이 50% 이상 유지된다면, 정책 은 실제 배포 를 위해 충분히 견고 하게 될 것 이다. 30% 이하로 떨어지면 훈련 중에 더 많은 추상화 를 추가 한다.

특정 과제 에 대한 보상 기능

다음은 일반적인 조작 작업에 대한 현장 테스트 보상 사양이 있으며, RCSV에서 여러 개의 설계 반복을 통해 조정됩니다:

선택 및 장소 (단순)

2단계: 접근 + 운송. 접촉까지 EE 거리 모양 (중도 0.3) 그리고 포착 후 객체 거리 모양 (중도 0.5) . 10단계 동안 목표로부터 3cm 이내에 있는 객체에 대한 터미널: +100. 시간 처벌: −0.01/단계. 총 훈련: ~15M 단계 아이작 연구소 (4096 envs), ~45분 RTX 4090.

페그 삽입 (밀착 용납 < 1mm)

4단계 교육과정이 필요합니다. 접근, 잡기, 거친 조율 (홀 축의 10도 내에서 축), 미세한 삽입. 중요한 통찰력: 위치 기반보다는 최종 삽입 단계에서 힘 기반 보상을 사용하십시오. 이유는 미리미터 미세 위치 정확도가 시각에서 신뢰할 수 없으나, 성공적인 삽입 과정에서 힘 프로필은 구별되고 일관적입니다. 위치보다는 특징적인 힘 서명 (XY 힘으로 Z 힘의 증가) 을 보상하십시오. 전체 훈련: ~ 100M 단계, ~ 5 시간.

객체 재주정 (손으로)

단단계, 하지만 현명한 손가락 제어가 필요합니다. 보상은: 현재와 목표 지향 사이의 방향 오류, SO에 지질 거리로 측정된다(3). 중요한 추가: 객체 선형 속도를 처벌 ( 객체가 직장에 회전해야 하며, 작업 공간을 건너 비행하지 않아야 한다). 또한 접촉력의 갑작스러운 감소로 감지되는 손가락-물류 슬립 이벤트를 처벌합니다. 이 작업은 매우 어렵다고 알려져 있습니다. 200M+ 단계와 4060%의 성공률을 기대합니다. 신중한 보상 설계에도 불구하고. 시밍에서 알레그로 핸드와 가장 잘 작동합니다. 실제 하드웨어에서, 그림자 핸드의 촉각 피드백은 도움이되지만 센서 소음을 도입합니다.

2차례의 집회

각 팔에 대한 별도의 보상 스트림과 조율 보너스를 요구합니다. 각 팔은 각 접근/잡아/운송 단계를 얻습니다. 조율 보너스는 양 팔이 조립 단계에 대한 올바른 상대적인 구성에 있다는 것을 보상합니다. 이 때 보너스 설계는 정말 어려워집니다. 조정에 대한 너무 많은 무게는 두 팔이 실제로 작업을 완료하지 않고 올바른 상대적 자세로 얼어붙게 만듭니다. 너무 적은 무게와 팔이 충돌합니다. 우리는 0.15 × 무게를 조정에 사용합니다. 조정 잠재력은 두 개의 잡힌 부분의 결합 표면의 부정적인 거리로 정의됩니다.

보너스 설계 에 대한 일반적인 실수

  1. ** 관찰에 대한 보상, 명시하지 않습니다:** 특권적 인 시미 상태 (정확한) 보다 카메라 관찰 (음악이있는) 에서 계산 보상.
  2. ** 에피소드 경계를 잊어 버리는 것:** 잠재력 기반의 형성은 에피소드 리셋을 올바르게 처리해야 합니다. 에피소드 시작 시 잠재력을 제로로 하지 않으면, 각 에피소드의 첫 단계는 최종 상태 잠재력과 초기 상태 잠재력 사이의 차이로부터 거짓 된 큰 형성 신호를 얻습니다.
  3. ** 보상 지연 부합:** 만약 당신의 보상 이 접촉 탐지 에 달려 있고, 당신의 접촉 탐지 에 2 단계 지연이 있는 경우, 보상 신호 는 2 단계 지연으로 도착한다. 정책 은 "가어야 할 때"보다 2 단계 앞당기도록 배우며, 진동을 일으킨다. 보상 계산과 관찰 시기가 일치하도록 한다.
  4. ** 경계에 테스트 하지 않습니다:** 작업 공간의 중심에 있는 객체에 대해 보상이 작동할 수 있지만, 가장자리에 가까운 객체 (거리의 정상화가 다르게 행동하는 곳) 또는 로봇의 관절 한계에 가까운 객체에 대해 교류할 수 있습니다 (접근성 제한이 보상 기하급수와 상호 작용하는 곳). 작업 공간의 네 각지에서 객체들을 사용하여 테스트합니다.
  5. ** 단일 씨앗 평가:** RL는 씨앗에 민감한 것으로 알려져 있습니다. 한 씨앗에서 90%의 성공을 거두는 보상으로 다른 씨앗에서 20%를 얻을 수 있습니다. 보상 작업을 완료하기 전에 항상 적어도 3 개의 씨앗을 평가하십시오. RCSV에서는 5 개의 씨앗을 표준으로 사용하고 평균 ± std를 보고합니다.

도구 및 프레임워크

다음 프레임워크는 조작 RL에 대한 보상 기능 인프라를 제공합니다:

  • Isaac Lab (NVIDIA): GPU 평행형 엔버가 내장된 보상 기능 클래스. 규모 (4,09616,384 평행 엔버) 에 적합하다. T6 클래스는 각 구성 요소에 대한 로그 아웃 박스를 통해 중량된 다 구성 요소 보상을 지원합니다. 생산 훈련에 권장됩니다.
  • MuJoCo + 체육관: 보다 정확한 접촉 물리학, 더 적은 병렬 환경 (특히 164 CPU). 개별 에피소드를 상세히 검사해야 하는 보상 프로토타입을 위해 더 좋습니다. T7은 보상 해크를 진단하는 데 귀중합니다. 0.1 × 속도에서 에이전트의 행동을 관찰하는 것은 보상 곡선이 숨기는 것을 보여줍니다.
  • robosuite (스탠포드): 표준 보상 기능으로 미리 구축된 조작 작업. 보상 설계에 좋은 출발점.
  • RCSV RL 환경: 오픈아름 및 다른 RCSV 하드웨어 모델, 검증된 보상 기능 및 도메인 무작위 설정과 함께 미리 구성된 아이작 연구소 환경. [문서]

관련 독서

이미레이션 학습에서 흔히 발생하는 오류 · 행동 정책 설명 · 로봇 스타트업 기술 스택 · 로봇 방언사 · RCSV RL 환경

RCSV의 시뮬레이션 환경은 표준 조작 작업에 대한 참조 보상 구현을 포함하고 있으며, 해킹 방지 방지를 내장하고 있습니다. 사용 가능한 작업 및 보상 사양을 [RL 환경 문서]T19에서 참조하십시오.

조작 RL에 대한 시뮬레이션 환경

RCSV는 일반적인 조작 작업에 대한 검증된 보상 기능이 있는 미리 구성된 시뮬레이션 환경을 제공합니다. 처음부터 구축하는 대신 검증된 보상 디자인으로 시작하십시오.

RL 환경을 탐구 해결 엔지니어와 이야기