모듈 타입과 Mime
TeamGRIT Agent의 모듈 타입은 총 6가지의 타입이 존재합니다.
VIDEOLIDARCONTROLSENSORMICROPHONESPEAKER
각각의 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