Skip to main content
Version: 3.4.x

Build, Run, Inspection, and Troubleshooting

Quick checks when media is unfamiliar

Camera

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

Audio input

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

Example:

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

Audio output

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

Use the sink name from pactl list short sinks as speaker[].source.

Minimal playback test

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

Build

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

Run

It is recommended to run cobiz_bridge_node and manager_node in separate terminals.

Terminal 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

Terminal 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. plugin nodes

Because manager_node automatically starts child nodes after receiving /device_info, always start cobiz_bridge_node first and only then run manager_node.

Basic behavior checks

Confirm /device_info publication after starting cobiz_bridge_node:

ros2 topic echo /device_info --once

Check the node list after starting manager_node:

ros2 node list

Inspect the Task-state flow:

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

Troubleshooting

  • /task_state is published but the server does not reflect it

    • check whether request_manager is running
    • verify COBIZ_API_ADDRESS and COBIZ_API_TOKEN
    • confirm that task_id and task_type are present
  • speaker_node: Failed to set pipeline to PLAYING

    • check whether the ALSA device is busy: fuser -v /dev/snd/*
    • if PulseAudio or PipeWire holds the device, consider speaker.type: pulse
  • topic_node: visible publishers=1 but rx=0

    • inspect QoS, ROS domain, and environment-variable mismatches