[Unitree Go2] Access to Microphone

Hello,

I’m using a Go2 EDU Plus with the expansion dock (Jetson Orin NX) and need to capture audio synced with the robot’s motion.
I need to capture acoustic data through the go2
Is audio recording accessible via built-in microphone from Go2?

My questions:

  1. Does the Go2 EDU Plus (with expansion dock) have a functional onboard microphone that is accessible to the user via SDK, ROS2 topic, or any API?
  2. If so, what is the correct method to access/stream/record from it (e.g., ALSA device name, ROS2 topic, ffmpeg/PulseAudio configuration)?

Robot info (if needed for your reference):
Model: Go2 EDU Plus
SDK: unitree_sdk2py

From my experience, the microphone is NOT accessible. But it is very simple to attach an external microphone to the jetson carrier board and access that for your recording controls. The speaker inside of the main robot body, however, is accessible.

What are you trying to record? I have programmed my GO2-EDU to execute all of his sport moves (sit, wave, pounce, etc) using voice commands.

Do you talk to the robot using wifi or bluetooth ? Because when i tried to tak to it directly the voice recognition model kept failing because all the noise with my voice.

Hi Jina,

Not via the SDK. The Go2 only exposes VuiClient (volume, brightness, mic
on/off), so there’s nothing there you can record from. rt/audio_msg is a G1
topic, it won’t help you here.

The phone app pulls audio over WebRTC though, and that route works. Have a
look at go2_webrtc_connect, it has live_audio and save_audio examples.
Community project, not Unitree’s, and it runs over wifi rather than DDS.

For acoustic data synced to motion I’d skip that and put a USB mic on the
Orin in the dock. It shows up as a normal ALSA device, arecord or ffmpeg
work as usual, and you get proper timestamps to line up with your state
topics. The WebRTC stream is too jittery for that.

Best Regards
Naeem Zain Uddin
Robotics Software Engineer
MYBOTSHOP GmbH