Below is the error encountered when running ‘ros2 launch respeaker_ros2 respeaker.launch.py‘ on a brand new Stretch 3 that has all of the Ubuntu software updates installed.
$ ros2 launch respeaker_ros2 respeaker.launch.py
[INFO] [launch]: All log files can be found below …
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [launch.user]: Sound play node will be launched.
[INFO] [respeaker_node-1]: process started with pid [3953]
[INFO] [soundplay_node.py-2]: process started with pid [3955]
[INFO] [speech_to_text-3]: process started with pid [3957]
[soundplay_node.py-2] /home/hello-robot/ament_ws/install/sound_play/lib/sound_play/soundplay_node.py:215: PyGIDeprecationWarning: Since version 3.11, calling threads_init is no longer needed. See: PyGObject/Threading – GNOME Wiki Archive
[soundplay_node.py-2] GObject.threads_init()
[soundplay_node.py-2] /home/hello-robot/ament_ws/install/sound_play/lib/sound_play/soundplay_node.py:216: PyGIDeprecationWarning: GObject.MainLoop is deprecated; use GLib.MainLoop instead
[soundplay_node.py-2] self.g_loop = threading.Thread(target=GObject.MainLoop().run)
[respeaker_node-1] [INFO] [1768086302.367954908] [respeaker_node]: Initializing Respeaker device (takes 10 seconds)
[soundplay_node.py-2] [INFO] [1768086302.925731446] [sound_play]: sound_play node is ready to play sound
[respeaker_node-1] [INFO] [1768086312.770102533] [respeaker_node]: Respeaker device initialized (Version: 16)
[respeaker_node-1] [INFO] [1768086313.059007758] [respeaker_node]: Found 5: ReSpeaker 4 Mic Array (UAC1.0): USB Audio (hw:1,0) (channels: 0)
[respeaker_node-1] [WARN] [1768086313.059489217] [respeaker_node]: 0 channel is found for respeaker
[respeaker_node-1] [WARN] [1768086313.059912736] [respeaker_node]: You may have to update firmware.
[respeaker_node-1] Traceback (most recent call last):
[respeaker_node-1] File “/home/hello-robot/ament_ws/install/respeaker_ros2/lib/respeaker_ros2/respeaker_node”, line 33, in
[respeaker_node-1] sys.exit(load_entry_point(‘respeaker-ros2==0.1.0’, ‘console_scripts’, ‘respeaker_node’)())
[respeaker_node-1] File “/home/hello-robot/ament_ws/install/respeaker_ros2/lib/python3.10/site-packages/respeaker_ros2/respeaker_node.py”, line 469, in main
[respeaker_node-1] respeaker_node = RespeakerNode()
[respeaker_node-1] File “/home/hello-robot/ament_ws/install/respeaker_ros2/lib/python3.10/site-packages/respeaker_ros2/respeaker_node.py”, line 339, in init
[respeaker_node-1] self.respeaker_audio = RespeakerAudio(self, suppress_error=suppress_pyaudio_error)
[respeaker_node-1] File “/home/hello-robot/ament_ws/install/respeaker_ros2/lib/python3.10/site-packages/respeaker_ros2/respeaker_node.py”, line 273, in init
[respeaker_node-1] raise RuntimeError(‘Invalid channels %s. (Available channels are %s)’ % (
[respeaker_node-1] RuntimeError: Invalid channels range(0, 0). (Available channels are 0)
[respeaker_node-1] Exception ignored in: <function RespeakerAudio.del at 0x735089dc88b0>
[respeaker_node-1] Traceback (most recent call last):
[respeaker_node-1] File “/home/hello-robot/ament_ws/install/respeaker_ros2/lib/python3.10/site-packages/respeaker_ros2/respeaker_node.py”, line 288, in del
[respeaker_node-1] self.stop()
[respeaker_node-1] File “/home/hello-robot/ament_ws/install/respeaker_ros2/lib/python3.10/site-packages/respeaker_ros2/respeaker_node.py”, line 318, in stop
[respeaker_node-1] if self.stream.is_active():
[respeaker_node-1] AttributeError: ‘RespeakerAudio’ object has no attribute ‘stream’
[ERROR] [respeaker_node-1]: process has died [pid 3953, exit code 1, cmd ‘/home/hello-robot/ament_ws/install/respeaker_ros2/lib/respeaker_ros2/respeaker_node --ros-args’].
‘sudo apt list | grep respeaker’ returns nothing

