Claude에서 열기ChatGPT에서 열기
https://rainbowrobotics.github.io/RBQ/llms-full.txt 는 Rainbow Robotics RBQ 4족 로봇 매뉴얼 전문입니다. 읽고 이 문서를 근거로 한국어로 답변해 주세요.
AI 답변은 부정확할 수 있습니다. 안전·정비 항목은 매뉴얼 원문을 확인하세요.
한국어
https://rainbowrobotics.github.io/RBQ/llms-full.txt 는 Rainbow Robotics RBQ 4족 로봇 매뉴얼 전문입니다. 읽고 이 문서를 근거로 한국어로 답변해 주세요.
AI 답변은 부정확할 수 있습니다. 안전·정비 항목은 매뉴얼 원문을 확인하세요.
한국어
소스: rbq_sdk/cpp/example/src/rbq_image_echo.cpp
압축 카메라 토픽을 구독해 초당 수신율, 마지막 프레임 크기, 이미지 포맷을 출력하는 읽기 전용 진단 도구입니다. 카메라 스트림이 실제로 발행되고 있는지, SDK 호스트에서 도달 가능한지 확인할 때 사용합니다.
프로그램 동작:
argv[1]에서 토픽 이름을 읽습니다 (기본값 rt/rbq/vision/sensor_4/rgb/compressed).ChannelFactory를 초기화하고 Subscriber<CompressedImage_>를 생성합니다.Ctrl+C(SIGINT/SIGTERM) 시 총 샘플 수를 출력하고 정상 종료합니다.발행은 하지 않으므로 실제 로봇이나 시뮬레이터와 함께 실행해도 안전합니다.
bash scripts/sim.bash --vision).rbq_sdk/cpp/example/에서:
bash scripts/setup.bash
bash scripts/build.bash바이너리 위치: bin/rbq_image_echo
기본값이 로봇에 맞춰져 있으므로 그대로 실행하면 됩니다:
./bin/rbq_image_echo로봇의 enp45s0 인터페이스로 rt/rbq/vision/sensor_4/rgb/compressed(전방 카메라)을 구독합니다 — 인터페이스(main()의 ChannelFactory::Instance().Init(0, "enp45s0"))와 기본 토픽 모두 예제에 내장돼 있습니다. 다른 카메라를 보려면 토픽을 첫 번째 인자로 전달하세요.
시뮬레이터는 로봇이 아니라 본인 PC에서 동작하므로 두 가지가 달라집니다.
1. 실제로 존재하는 인터페이스로 심을 띄우세요. -i 없이 sim.bash --vision을 실행하면 비전/카메라 발행 측이 로봇의 enp45s0에 뜨는데, 이 인터페이스는 본인 PC에 없어서 클라이언트가 아무것도 못 받습니다. ip link로 인터페이스를 확인해(예: enp3s0) 전달하면 심 전체가 그 인터페이스를 공유합니다:
bash scripts/sim.bash --vision -i enp3s02. 이 클라이언트를 같은 인터페이스로 맞춘 뒤 실행하세요. 인터페이스가 소스에 하드코딩돼 있으니 CycloneDDS 설정으로 덮어씁니다. SDK는 CYCLONEDDS_URI가 설정돼 있을 때만 그 값을 쓰므로 먼저 파일을 만들어야 합니다(enp3s0을 본인 인터페이스로 교체):
cat > /tmp/cyclonedds.xml <<'EOF'
<?xml version="1.0" encoding="utf-8" ?>
<CycloneDDS xmlns="https://cdds.io/config">
<Domain Id="any">
<General>
<Interfaces><NetworkInterface name="enp3s0" priority="default" multicast="default"/></Interfaces>
<AllowMulticast>spdp</AllowMulticast>
</General>
</Domain>
</CycloneDDS>
EOF
export CYCLONEDDS_URI=file:///tmp/cyclonedds.xml그런 다음 실행하세요. 카메라는 로봇·심 모두 숫자 id를 씁니다 — sensor_4가 전방, sensor_5가 후방 카메라입니다:
./bin/rbq_image_echo rt/rbq/vision/sensor_4/rgb/compressed # 전방 카메라
./bin/rbq_image_echo rt/rbq/vision/sensor_5/rgb/compressed # 후방 카메라sensor_4가 전방, sensor_5가 후방 카메라입니다. sensor_0–sensor_3은 depth와 ir만 발행합니다.
심과 이 클라이언트는 같은 인터페이스를 써야 합니다 — 다르거나, 둘 다
lo(보통 멀티캐스트 미지원)에 두면rate=0 Hz가 됩니다.
MuJoCo 시뮬레이터(sim.bash --vision)에서 sensor_4(전방 카메라)를 구독한 결과:
[rbq_image_echo] subscribed to 'rt/rbq/vision/sensor_4/rgb/compressed'
[rbq_image_echo] waiting for samples (Ctrl+C to exit)...
[rbq_image_echo] 1.0s total=15 rate=15 Hz last=13053 bytes fmt='jpeg'
[rbq_image_echo] 2.0s total=29 rate=14 Hz last=13080 bytes fmt='jpeg'
[rbq_image_echo] 3.0s total=44 rate=15 Hz last=13067 bytes fmt='jpeg'
[rbq_image_echo] exiting, total samples = 44수신율이 일정하고 바이트 크기가 0이 아니며 fmt='jpeg'이면 스트림이 정상입니다. rate=0 Hz이면 해당 토픽/인터페이스에서 발행 측을 찾지 못한 것이니 토픽 이름과 DDS 인터페이스를 확인하세요.