로봇이 복잡한 물리 환경에서 작업을 수행하도록 훈련하려면 방대한 양의 고품질 시연 데이터가 필수적입니다. 그러나 지금까지는 로봇과 원격 조작 기기마다 제어 인터페이스가 파편화되어 있어, 사람의 시연 동작을 수집하는 과정에서 극심한 데이터 병목 현상이 발생했습니다. NVIDIA는 이러한 문제를 해결하기 위해 시뮬레이션 환경과 실제 로봇 환경 모두에서 인간 시연 데이터를 표준화된 방식으로 수집할 수 있는 원격 조작 프레임워크인 NVIDIA IsaacTeleop을 공개했습니다 1.
NVIDIA IsaacTeleop은 확장 현실(XR) 헤드셋의 핸드 트래킹 및 모션 컨트롤러 입력 데이터를 로봇의 실행 명령으로 변환하는 통합 인프라를 제공합니다 2. 장치 통합 과정을 간소화하고 다양한 하드웨어 간 상호운용성을 지원함으로써, 연구자와 엔지니어가 번거로운 저수준 하드웨어 드라이버 매핑 작업 없이 모방 학습용 데이터를 수집할 수 있도록 설계되었습니다 1.
Python 및 NumPy 기반의 그래프 리타겟팅과 클러치 제어
인간 조작자의 신체 비율이나 컨트롤러의 3차원 위치 궤적은 로봇의 링크 길이 및 관절 가동 범위와 일치하지 않습니다. NVIDIA IsaacTeleop은 이러한 신체 구조 차이를 보정하기 위해 그래프 기반 리타겟팅 엔진을 채택하여 입력 데이터를 로봇 동작으로 변환합니다 2. 이 엔진은 프로그래밍 언어인 Python과 수치 연산 라이브러리인 NumPy를 기반으로 순수 Python 환경에서 구현되어, 복잡한 저수준 코드를 직접 다루지 않고도 리타겟팅 구조를 유연하게 구성할 수 있도록 지원합니다 2.
원격 조작을 시작하거나 재개할 때 발생할 수 있는 급격한 관절 튐(Jerking) 현상을 방지하기 위해 프레임워크는 클러치(Clutch) 메커니즘을 지원합니다 3. 조작자가 XR 컨트롤러의 그립(Squeeze) 버튼을 눌러 설정 임계값(clutch threshold)을 넘어서는 순간의 위치와 자세를 기준점으로 고정(latch)하고, 이후 발생하는 상대적 변화량(delta)만을 로봇의 말단 장치(End-Effector) 목표 좌표로 변환합니다 3. 이를 통해 조작자가 버튼을 누르는 순간 로봇 팔이 손 위치로 급격하게 순간이동하는 위험을 차단합니다 3.
아울러 컨트롤러의 아날로그 트리거 입력값은 0(열림)에서 1(닫힘) 사이의 연속적인 값(closedness)으로 변환되어 로봇 그리퍼의 개폐 정도를 비례적으로 정밀하게 제어합니다 3. 조작자의 미세한 손가락 움직임이 그리퍼의 파지 동작으로 직접 매핑되므로 섬세한 물체 조작 데이터를 안정적으로 확보할 수 있습니다 3.
CloudXR 런타임 연동과 세션 수명 주기 관리
NVIDIA IsaacTeleop은 헤드셋 스트리밍을 처리하기 위해 OpenXR 런타임을 제공하는 NVIDIA CloudXR 기술을 통합하여 사용합니다 3. 이전에는 별도의 터미널 창에서 백그라운드 프로세스를 띄우고 환경 변수를 설정해야 했으나, 최근 환경에서는 teleop_device.connect() 명령 호출만으로 CloudXR 런타임이 자동으로 구동되도록 단순화되었습니다 3. 다만 백그라운드 서비스가 최초 구동될 때 런타임 준비 과정에서 약 30초간의 블로킹(대기 시간)이 발생할 수 있습니다 3.
해당 패키지는 리눅스(Linux) 환경의 PyPI를 통해 isaacteleop 형태로 제공되며, 플랫폼 구성에 따라 세부 설치 옵션이 나뉩니다 3. x86_64 환경에서는 완전한 리타겟팅 패키지를 설치할 수 있지만, aarch64(ARM) 기반 환경에서는 라이브러리 의존성 제약으로 인해 SciPy 기반의 경량화 리타겟터(retargeters-lite) 경로를 사용하도록 구성되어 있습니다 3.
시스템 운영 시에는 자원 해제 순서에 주의해야 합니다. CloudXR 런타임은 프로세스당 단일 인스턴스(싱글톤)로 구성되므로 프로세스 하나당 단일 원격 조작 객체만 실행해야 합니다 3. 또한 세션이 비정상 종료되는 것을 방지하기 위해 제어 루프를 try/finally 구조로 감싸고, 종료 시 명시적으로 teleop_device.disconnect()를 호출해 CloudXR 런타임보다 먼저 OpenXR 세션이 안전하게 종료되도록 관리해야 합니다 3.
Unitree G1 전신 텔레오퍼레이션과 안전 운영 조건
인간형 로봇의 전신 원격 조작 환경에서는 조작자의 명령이 물리 로봇에 전달되는 과정을 정밀하게 제어해야 합니다. 예를 들어 Jetson AGX Thor와 Unitree G1 휴머노이드 로봇을 연결하여 전신 제어를 수행할 때, Isaac ROS 환경 기반의 안전 컨트롤러는 blend_ratio 매개변수를 활용합니다 4.
초기 구동 시 blend_ratio는 0.0으로 설정되어 있어 로봇의 기본 모터 제어 명령만 전달되며 원격 조작 입력은 차단됩니다 4. 추론 컨트롤러(InferenceController)가 활성화되기까지 약 40초의 초기화 대기 시간이 발생할 수 있으며, 준비가 완료된 후 blend_ratio 값을 1.0으로 점진적으로 올려야 조작자의 컨트롤러 입력이 완전하게 로봇 구동으로 전환됩니다 4. 비상 상황이 발생할 경우 ros2 param set /safety_controller blend_ratio 0.0 명령을 즉시 실행하여 원격 제어를 차단할 수 있습니다 4.
실제 물리 하드웨어를 구동할 때는 안전사고를 예방하기 위한 운영 인력 배치가 권장됩니다. NVIDIA 공식 가이드라인은 하드웨어 원격 조작 시 최소 2인 1조 구성을 요구하며, 조작자 1명은 XR 장비를 착용하고 제어에 집중하고, 모니터링 담당자 1명은 로봇의 동작 상태와 콘솔 로그를 감시하며 비상 정지 명령을 수행할 준비를 갖추어야 합니다 4.
지원 현황과 하드웨어 도입 전 검토 기준
현재 NVIDIA IsaacTeleop이 공식적으로 지원하는 범위와 향후 추가될 예정인 기능 로드맵은 다음과 같습니다 [^1]:
현재 지원 기능: XR 헤드셋 기반의 그리퍼 및 3지(tri-finger) 핸드 조작, 전용 글러브를 활용한 다지형 로봇 손(dex-hand) 정밀 조작, 착석형 전신 로코매니퓰레이션(Homie), 추적 기반 전신 로코매니퓰레이션(SONIC), 로봇 없이 사람 시점 영상만 기록하는 에고센트릭(Egocentric) 데이터 수집 1.
향후 지원 예정 기능: 게임패드, 젤로(Gello), 햅틱 인터페이스 등 비 XR(non-XR) 장치를 활용한 원격 조작, 클라우드 기반 로봇 시뮬레이션 원격 제어, 데스크톱 및 XR 헤드셋 대상의 원격 카메라 스트리밍 확장 1.
NVIDIA IsaacTeleop은 물리적 AI 구현을 위해 다종 기기의 시연 데이터를 체계적으로 수집하려는 연구팀이나 로봇 개발 조직에 실질적인 개발 편의성을 제공합니다. 다만 도입을 검토할 때는 몇 가지 선결 조건을 확인해야 합니다. 먼저 운영체제가 리눅스 기반으로 구축되어 있어야 하며, 네트워크 환경이 CloudXR의 실시간 패킷 전송과 방화벽 포트 조건을 충족하는지 검증해야 합니다 3. 또한 물리 로봇에 적용하기 전 MuJoCo 등 시뮬레이션 환경에서 조작 명령 수신과 비상 정지 루틴이 정상 작동하는지 사전 점검하는 절차가 반드시 선행되어야 합니다 4.
참고
1GitHub - NVIDIA/IsaacCapture: The unified framework for sim & real robot teleoperation · GitHub
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
