본문으로 건너뛰기

MOVIN TRACIN · MOVIN Studio Usage Guide

Streaming Mocap Data into ROS by OSC

ROS는 로봇 애플리케이션 개발을 위한 오픈소스 프레임워크로, 센서, 제어, 시각화 등을 하나의 구조에서 연결할 수 있습니다.

MOVIN TRACIN과 MOVIN Studio로 캡처한 모션 데이터는 ROS 2 환경에서 실시간 (또는 파일 기반) 으로 재생, 리타게팅되어, RViz2에서 로봇 모델 움직임을 확인하거나 로봇 제어 파이프라인에 연동해 활용할 수 있습니다.

사전 준비사항

ROS 연동을 위해서는 아래 환경이 필요합니다. 하단의 패키지들이 모두 설치되어 있는지 먼저 확인해주세요.

  • ROS 2:
    • Humble (tested)
  • 필수 ROS 2 패키지:
    • robot_state_publisher
    • rviz2
    • xacro
    • tf2_ros
  • 필수 pip 패키지:
    • numpy
    • scipy
    • movin-sdk-python (BVH 파일 로딩 및 실시간 모드에 필요)
  1. Motion-Player-ROS를 다운로드해주세요.

    cd ~/ros2_ws/src
    git clone https://github.com/MOVIN3D/Motion-Player-ROS
    
  2. MOVIN SDK Python을 설치해주세요.

    pip install git+https://github.com/MOVIN3D/MOVIN-SDK-Python.git
    
    • 위 사전 준비사항에 언급된 패키지들이 모두 설치되어 있는지 확인해주세요.
    • BVH 파일 로딩 및 실시간 라이브 스트리밍을 위해 movin-sdk-python 패키지를 설치해주세요.
      • MOVIN-SDK-Python에 대해 더 알고 싶다면 해당 링크를 참고해주세요.
  3. 패키지를 빌드해주세요.

    cd ~/ros2_ws
    colcon build --packages-select motion_player
    
    • 워크스페이스 루트로 이동한 뒤 motion_player 패키지를 빌드해주세요.
  4. 빌드한 ROS 패키지를 터미널 세션에 등록해주세요.

    source ~/ros2_ws/install/setup.bash
    
    • 패키지를 빌드한 후, install/setup.bash 파일을 터미널 세션에 등록해주세요.
      • 해당 과정을 거쳐야 ROS에서 motion_player 패키지를 인식할 수 있습니다.
  5. 실시간 모드를 실행해주세요.

    ros2 launch motion_player realtime.launch.py
    
    • MOVIN Studio에서 모션 데이터를 받기 위해 실시간 모드를 실행해주세요.
    • 실시간 모드에서는 다음 기능을 사용할 수 있습니다
      • 실시간 리타게팅: MOVIN의 모션 데이터를 로봇 모델에 즉시 적용합니다.
      • 실시간 시각화: RViz2에서 MOVIN의 모션 캡처 스켈레톤과 리타게팅된 로봇 모션을 동시에 확인할 수 있습니다.
    ros2 launch motion_player realtime.launch.py port:=11235 human_height:=1.80 skeleton_offset_x:=1.5
    
    • 필요에 따라 아래와 같이 커스텀 파라미터를 지정할 수 있습니다.
    인수 (Argument)기본값 (Default)설명 (Description)
    port11235UDP port to listen for OSC mocap data
    robot_typeunitree_g1Target robot type (unitree_g1 or unitree_g1_with_hands)
    human_height1.75Human height in meters for scaling
    skeleton_offset_x1.0X offset to place skeleton beside robot
    urdf_file(package default)Path to custom URDF file
    rviz_config(package default)Path to custom RViz config file

    또한 --realtime 플래그를 사용해 직접 노드를 실행할 수도 있습니다.

    ros2 run motion_player motion_player --realtime --ros-args -p port:=11235 -p human_height:=1.8
    
  6. MOVIN Studio에서 OSC 프로토콜 스트리밍을 시작해주세요.

    MOVIN Studio에서 OSC 프로토콜 스트리밍을 시작해주세요.
    • ROS에서 설정한 포트 번호가 MOVIN Studio에 동일하게 작성되어 있는지 확인해주세요.
    • MOVIN Studio에서 OSC 프로토콜 스트리밍을 시작해주세요.