Skip to main content
Version: 3.3.x

모듈 타입과 Mime

TeamGRIT Agent의 모듈 타입은 다음 10가지입니다.

  • LIDAR
  • VIDEO
  • CONTROL
  • TOPIC
  • AUDIO
  • SPEAKER
  • BATTERY
  • MAP
  • ODOMETRY
  • GPS

각 타입에 따라 CoBiz 웹페이지에서 데이터를 처리하는 방식이 달라지므로, 데이터 식별을 위해 Mime 데이터를 작성해야 합니다.

아래는 각각의 Type에 대한 설명 및 Type별로 Mime 데이터를 작성하는 방법에 대한 설명입니다.

VIDEO

영상 데이터를 통합하기 위한 타입입니다. 로봇이 보고있는 화면이 될 수도 있고, 캡쳐한 이미지가 될 수도 있습니다. 아래는 CoBiz 웹페이지에서 지원하는 형식에 따라 Mime 데이터가 어떻게 정의되는지를 나타냅니다. (편의상 데이터의 해상도는 VGA 640*480 30fps로 가정하겠습니다.)

  • 이미지 형식
    • JPEG
      • mime: image/jpeg;width=640;height=480;framerate=30;codecs=jpeg
    • PNG
      • mime: image/png;width=640;height=480;framerate=30;codecs=png
  • 비디오 형식
    • H.264
      • mime: video/h264;width=640;height=480;framerate=30;codecs=avc1.42002A
    • H.265
      • mime: video/h265;width=640;height=480;framerate=30;codecs=hvc1.1.6.L123.00
    • VP8
      • mime: video/vp8;width=640;height=480;framerate=30;codecs=vp8
    • VP9
      • mime: video/vp9;width=640;height=480;framerate=30;codecs=vp09.00.31.08
    • AV1
      • mime: video/av1;width=640;height=480;framerate=30;codecs=av01.0.08M.10.0.110.09

LIDAR

라이다 데이터를 통합하기 위한 타입입니다. CoBiz 웹페이지에서는 Google의 Draco 압축 방식(PointCloud2 -> Draco)을 지원합니다.

  • mime: lidar/draco

CONTROL

로봇 조종 입력 데이터를 전달하기 위한 타입입니다. CONTROL은 JSON 형식을 사용하며, 접속 환경에 따라 다음 컨트롤러 입력을 지원합니다.

  • 게임패드 입력
  • VR 컨트롤러 입력 (VR 접속 시)

명령 형식 예시

  1. 일반 게임패드
{
"type": "gamepad",
"axes": [0, 0, 0, 0],
"buttons": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
  1. VR 컨트롤러 버튼/스틱 입력
{ "type": "vr_controller", "axes": [0, 0, 0, 0], "buttons": [0, 0, 0, 0, 0, 0] }
  1. VR 왼쪽 손 포즈
{ "type": "vr_left_pose", "position": [0, 0, 0], "orientation": [0, 0, 0, 0] }
  1. VR 오른쪽 손 포즈
{ "type": "vr_right_pose", "position": [0, 0, 0], "orientation": [0, 0, 0, 0] }
  1. VR 머리 포즈
{ "type": "vr_head_pose", "position": [0, 0, 0], "orientation": [0, 0, 0, 0] }
  • mime: text/json

TOPIC

로봇의 센서 데이터를 통합하기 위한 타입입니다. ROS 토픽 메시지를 그대로 사용하는 타입입니다. 토픽의 메시지 타입을 rosmsg 파라미터로 명시합니다.

  • mime 형식: application/x-ros2msg;rosmsg=<ROS2 message type>
  • 예시: application/x-ros2msg;rosmsg=sensor_msgs/msg/JointState

AUDIO

로봇에서 송신하는 음성 데이터를 통합하기 위한 타입입니다. CoBiz에서는 Opus 코덱을 사용한 압축 방식을 지원합니다.

  • mime: audio/opus;bitrate=64000;numberOfChannels=1;sampleRate=48000;codecs=opus

SPEAKER

로봇에서 수신하는 음성 데이터를 통합하기 위한 타입입니다.

  • mime: audio/opus;bitrate=64000;numberOfChannels=1;sampleRate=48000;codecs=opus

BATTERY

로봇의 배터레 데이터를 통합하기 위한 타입입니다. sensor_msgs/msg/BatteryState 토픽 데이터를 사용합니다.

  • mime: application/x-ros2msg;rosmsg=sensor_msgs/msg/BatteryState

MAP

로봇이 송신하는 지도 데이터를 통합하기 위한 타입입니다. nav_msgs/msg/OccupancyGrid 토픽 데이터를 사용합니다.

  • mime: application/x-ros2msg;rosmsg=nav_msgs/msg/OccupancyGrid

ODOMETRY

로봇이 송신하는 오도메트리 데이터를 통합하기 위한 타입입니다. nav_msgs/msg/Odometry 토픽 데이터를 사용합니다.

  • mime: application/x-ros2msg;rosmsg=nav_msgs/msg/Odometry

GPS

로봇이 송신하는 GPS 데이터를 통합하기 위한 타입입니다. sensor_msgs/msg/NavSatFix 토픽 데이터를 사용합니다.

  • mime: application/x-ros2msg;rosmsg=sensor_msgs/msg/NavSatFix