Claude에서 열기ChatGPT에서 열기
https://rainbowrobotics.github.io/RBQ/nightly/llms-full.txt 는 Rainbow Robotics RBQ 4족 로봇 매뉴얼 전문입니다. 읽고 이 문서를 근거로 한국어로 답변해 주세요.
AI 답변은 부정확할 수 있습니다. 안전·정비 항목은 매뉴얼 원문을 확인하세요.
한국어
https://rainbowrobotics.github.io/RBQ/nightly/llms-full.txt 는 Rainbow Robotics RBQ 4족 로봇 매뉴얼 전문입니다. 읽고 이 문서를 근거로 한국어로 답변해 주세요.
AI 답변은 부정확할 수 있습니다. 안전·정비 항목은 매뉴얼 원문을 확인하세요.
한국어
로봇은 마이크로 녹음하고 스피커로 음원 파일을 재생합니다. 녹음과 재생은 8081 포트, 녹음 파일 다운로드는 8080 포트로 보내는 HTTP 요청입니다. 둘 다 로봇 웹 계정(rb / rainbow2026)으로 HTTP Basic 인증을 하고, 본문은 JSON 입니다.
로봇은 마이크와 스피커를 하나씩만 쓰며, 어느 것을 쓸지 스스로 정합니다.
| 로봇 | 마이크 | 스피커 |
|---|---|---|
| PTZ 페이로드 장착 | PTZ 카메라 마이크 | PTZ 카메라 스피커 |
| PTZ 페이로드 없음 | 로봇 오디오 입력에 꽂은 마이크 | 로봇 스피커 |
PTZ 카메라가 켜지거나 빠지면 약 5초 안에 전환됩니다. 녹음·재생 전에 쓰이는 장치를 확인하세요. input 과 output 이 ptz, robot, none 중 하나로 나옵니다.
curl -u rb:rainbow2026 http://192.168.0.10:8081/api/audio/statusmic_present 만으로는 마이크가 있는지 알 수 없습니다. mic_signal 을 보세요. 소리가 들어오면 1, 거의 무음이라 잭이 비었을 수 있으면 0 입니다. 상태를 조회할 때 1분에 한 번까지만 다시 재므로, 마이크를 꽂고 1분 뒤에 확인하세요. 마이크는 녹음을 시작하기 전에 꽂으세요 — 녹음 중에 빼면 나머지는 무음으로 저장됩니다.스피커 앰프 (12V)(CAN-FD 로봇은 스피커 앰프)를 켜세요 — 정비를 참고하세요. PTZ 카메라 스피커는 자체 앰프가 있습니다.녹음을 시작합니다. 로봇이 응답한 순간부터 녹음되므로 응답을 받은 뒤 말하세요. 응답에 파일 경로가 담겨 옵니다.
curl -u rb:rainbow2026 -X PUT http://192.168.0.10:8081/api/audio/record \
-H 'Content-Type: application/json' -d '{"state":"start","source":"mic"}'
# {"path":"20261026/mic_20261026_143000.wav", ...}마이크가 없으면 no microphone 으로 실패합니다.
녹음을 끝냅니다. 이렇게 해야 파일이 완성됩니다 — 녹음 중인 파일은 길이가 0초로 읽힙니다.
curl -u rb:rainbow2026 -X PUT http://192.168.0.10:8081/api/audio/record \
-H 'Content-Type: application/json' -d '{"state":"stop"}'파일을 받습니다. 같은 포트의 GET /api/audio/list 가 녹음 목록을 돌려줍니다.
curl -u rb:rainbow2026 -o rec.wav \
'http://192.168.0.10:8080/api/audio/file?path=20261026/mic_20261026_143000.wav'파일 하나는 30분이 지나면 닫힙니다. 녹음 중에 다시 시작하면 앞 파일을 닫고 새 파일로 녹음합니다.
파일을 base64 로 나눠 올립니다. 조각마다 바이트 offset 과 파일 전체 크기 total 을 함께 보내며, 전체 50 MB 까지입니다. 마지막 조각이 도착하면 로봇이 재생용으로 변환하고 경로를 돌려줍니다. 10분을 넘는 부분은 잘립니다.
curl -u rb:rainbow2026 -X POST http://192.168.0.10:8081/api/audio/upload \
-H 'Content-Type: application/json' \
-d '{"name":"alarm","offset":0,"total":<bytes>,"data":"<base64>"}'
# 마지막 조각: {"path":"library/alarm.wav", ...}재생합니다. "loop":true 면 최대 30분까지 반복합니다.
curl -u rb:rainbow2026 -X PUT http://192.168.0.10:8081/api/audio/play \
-H 'Content-Type: application/json' -d '{"path":"library/alarm.wav","loop":false}'같은 요청에 {"state":"stop"} 을 보내 멈춥니다. 다른 파일을 재생하면 재생 중이던 파일을 대신합니다.
WARNING
재생은 운용 앱의 워키토키와 스피커 하나를 같이 씁니다. 운용 앱이 연결돼 있다가 끊기면 재생도 함께 멈춥니다.
로봇 자체 인터페이스는 파일 녹음·재생만 합니다. 실시간 음성은 PTZ 카메라(192.168.0.100)를 직접 사용하세요.
profile4 RTSP 스트림 (rtsp://<user>:<password>@192.168.0.100:554/profile4/media.smp)에 마이크 트랙이 들어 있습니다. 이를 받거나, 스트림을 저장해 녹음합니다.profile4 에 Require: www.onvif.org/ver20/backchannel 헤더를 붙여 접속하고 sendonly 트랙을 SETUP 한 뒤 PLAY 합니다. PLAY 응답 뒤에 보내는 소리는 바로 나옵니다. G.711 μ-law(PCMU) 8 kHz 를 20 ms 마다 160바이트씩 보내고, 말이 없는 동안에도 무음 프레임을 계속 보내세요. 다 쓰면 세션을 닫습니다(TEARDOWN).카메라 스피커는 25 W 입니다. 오디오 설정은 SUNAPI 레퍼런스를 참고하세요.
로봇도 파일 재생과 운용 앱의 워키토키에 같은 백채널을 쓰므로 둘을 동시에 쓰지 마세요. 로봇은 소리가 끝나고 2초 뒤 백채널을 닫습니다. 카메라 계정과 SUNAPI 는 PTZ 카메라를 참고하세요.