모듈 타입과 Mime
TeamGRIT Agent의 모듈 타입은 다음 10가지입니다.
LIDARVIDEOCONTROLTOPICAUDIOSPEAKERBATTERYMAPODOMETRYGPS
각 타입에 따라 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
로봇 조종 입력 데이터를 전달하기 위한 타입입니다. CONTROL은 JSON 형식을 사용하며, 접속 환경에 따라 다음 컨트롤러 입력을 지원합니다.
- 게임패드 입력
- VR 컨트롤러 입력 (VR 접속 시)
명령 형식 예시
- 일반 게임패드
{
"type": "gamepad",
"axes": [0, 0, 0, 0],
"buttons": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
- VR 컨트롤러 버튼/스틱 입력
{ "type": "vr_controller", "axes": [0, 0, 0, 0], "buttons": [0, 0, 0, 0, 0, 0] }
- VR 왼쪽 손 포즈
{ "type": "vr_left_pose", "position": [0, 0, 0], "orientation": [0, 0, 0, 0] }
- VR 오른쪽 손 포즈
{ "type": "vr_right_pose", "position": [0, 0, 0], "orientation": [0, 0, 0, 0] }
- 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