본문으로 건너뛰기
버전: 3.4.x

빌드, 실행, 점검, 트러블슈팅

미디어가 익숙하지 않을 때의 빠른 점검

카메라

v4l2-ctl --list-devices
ls /dev/video*
v4l2-ctl --device=/dev/video0 --list-formats-ext
ros2 topic info -v /realsense/color/image_raw

오디오 입력

cat /proc/asound/cards
arecord -l
arecord -L

예시:

audios:
- name: mic1
type: alsa
source: plughw:CARD=Device,DEV=0
channels: 1

오디오 출력

aplay -l
aplay -L
fuser -v /dev/snd/*
pactl info
pactl list short sinks

pactl list short sinks의 sink 이름을 speaker[].source에 사용합니다.

최소 재생 테스트

gst-launch-1.0 -q audiotestsrc num-buffers=100 ! audioconvert ! audioresample ! alsasink device="plughw:CARD=PCH,DEV=0"
gst-launch-1.0 -q audiotestsrc num-buffers=100 ! audioconvert ! audioresample ! pulsesink

빌드

cd /home/ubuntu/cobiz/cobiz
source /opt/ros/$ROS_DISTRO/setup.bash
colcon build --symlink-install
source install/setup.bash

실행

cobiz_bridge_nodemanager_node서로 다른 터미널에서 실행하는 것을 권장합니다.

터미널 A: cobiz_bridge_node

cd /home/ubuntu/cobiz/cobiz
source /opt/ros/$ROS_DISTRO/setup.bash
source install/setup.bash
ros2 run cobiz_bridge cobiz_bridge_node

터미널 B: manager_node

cd /home/ubuntu/cobiz/cobiz
source /opt/ros/$ROS_DISTRO/setup.bash
source install/setup.bash
ros2 run manager_node manager_node

권장 실행 순서

  1. cobiz_bridge_node
  2. manager_node
  3. 플러그인 노드

manager_node/device_info를 받아 child 노드를 자동 실행하므로, 반드시 cobiz_bridge_node를 먼저 켠 뒤 manager_node를 실행합니다.

기본 동작 점검

cobiz_bridge_node 실행 후 /device_info 발행 확인:

ros2 topic echo /device_info --once

manager_node 실행 후 노드 목록 확인:

ros2 node list

Task 상태 흐름 점검:

ros2 node list
ros2 topic info -v /task_state
ros2 topic echo /task_state

트러블슈팅

  • /task_state는 나오는데 서버 반영이 안 됨

    • request_manager 실행 여부 확인
    • COBIZ_API_ADDRESS, COBIZ_API_TOKEN 확인
    • task_id, task_type 누락 여부 확인
  • speaker_node: Failed to set pipeline to PLAYING

    • ALSA 장치 busy 확인: fuser -v /dev/snd/*
    • PulseAudio 또는 pipewire가 점유 중이면 speaker.type: pulse 고려
  • topic_node: visible publishers=1인데 rx=0

    • QoS, ROS domain, 환경변수 mismatch 점검