모듈 타입과 Mime
TeamGRIT Agent의 모듈 타입은 총 6가지의 타입이 존재합니다.
VIDEO
LIDAR
CONTROL
SENSOR
MICROPHONE
SPEAKER
각각의 Type에 따라 CoBiz 웹페이지에서 데이터를 처리하는 방식이 달라지기 때문에 데이터 식별을 위해 Mime 데이터를 작성해야 합니다.
아래는 각각의 Type에 대한 설명 및 Type별로 Mime 데이터를 작성하는 방법에 대한 설명입니다.
VIDEO
영상 데이터를 통합하기 위한 타입입니다. 로봇이 보고있는 화면이 될 수도 있고, 캡쳐한 이미지가 될 수도 있습니다. 아래는 CoBiz 웹페이지에서 지원하는 형식에 따라 Mime 데이터가 어떻게 정의되는지를 나타냅니다. (편의상 데이터의 해상도는 VGA 640*480 30fps로 가정하겠습니다.)
- 이미지 형식
- JPEG
- mime:
image/jpeg;width=640;height=480;framerate=30;codecs=jpeg
- mime:
- PNG
- mime:
image/png;width=640;height=480;framerate=30;codecs=png
- mime:
- JPEG
- 비디오 형식
- H.264
- mime:
video/h264;width=640;height=480;framerate=30;codecs=avc1.42002A
- mime:
- H.265
- mime:
video/h265;width=640;height=480;framerate=30;codecs=hvc1.1.6.L123.00
- mime:
- VP8
- mime:
video/vp8;width=640;height=480;framerate=30;codecs=vp8
- mime:
- VP9
- mime:
video/vp9;width=640;height=480;framerate=30;codecs=vp09.00.31.08
- mime:
- AV1
- mime:
video/av1;width=640;height=480;framerate=30;codecs=av01.0.08M.10.0.110.09
- mime:
- H.264
LIDAR
라이다 데이터를 통합하기 위한 타입입니다. CoBiz 웹페이지에서는 Google의 Draco 압축 방식(PointCloud2 -> Draco)을 지원합니다.
- mime:
lidar/draco
CONTROL
GamePad에서 나오는 데이터를 활용하여 로봇을 조종하기 위해 정의된 타입입니다. 주로 JSON으로 파싱된 데이터 형식을 지원합니다.
{ "channel": [...] //20 바이트 배열 }
- mime:
text/json
SENSOR
사용자가 필요한 로봇의 센서값을 JSON 형식으로 파싱하여 쓸 수 있습니다. JSON 데이터는 2종류가 있으며 1개의 데이터 깊이만을 지원합니다. 다음은 센서 데이터 예시입니다.
{
"data": {
"motor_left_1": 123,
...
},
"type": "anything you want (low_level, high_level, imu …)"
}
- mime:
text/json
MICROPHONE
로봇에서 송신하는 음성 데이터를 통합하기 위한 타입입니다. 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