For the complete documentation index, see llms.txt. This page is also available as Markdown.

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)

port

11235

UDP port to listen for OSC mocap data

robot_type

unitree_g1

Target robot type (unitree_g1 or unitree_g1_with_hands)

human_height

1.75

Human height in meters for scaling

skeleton_offset_x

1.0

X 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 프로토콜 스트리밍을 시작해주세요.

  • ROS에서 설정한 포트 번호가 MOVIN Studio에 동일하게 작성되어 있는지 확인해주세요.

  • MOVIN Studio에서 OSC 프로토콜 스트리밍을 시작해주세요.

마지막 업데이트