Prev-Talk | Next-Talk | All-Talks | Talks-Sorted | MOOS-DAWG'19

Talk-31: MOOSifying VoIP via Mumble

Conlan Cesar, MIT

In the summer of 2018, we created the MOOS app iMumbleClient, which is a VoIP client designed to connect to a centralized server (“murmur”) and record when audio was sent and received for later analysis. It’s greater objective was to assist Project Aquaticus by giving a more flexible, monitorable, and clearer alternative to portable handheld radios, as well as unifying the experience of communication between robot companions, human teammates, and the shoreside safety team.

Architecturally, the app works by recording and playing audio with the C++ library PortAudio, and sending that audio to the centralized murmur server, which then decides which other connected clients should be sent the audio. The received audio is played back in near real-time to participants. Speech is sent when a configurable mail post is received, and every client that hears the audio posts a mailing of when the audio begins to playback and ends. These breadcrumbs can be used to determine latency between communications, diagnostics on the status of participants, and used within other moos apps (say, to light an LED or start recording). In our implementation, the participant pressed and held a button, which started sending audio to teammates and recording to disk.

The iMumbleClient code and install instructions can be found in the moos-ivp-cc tree (hosted publicly on github):

https://github.com/HeroCC/moos-ivp-cc/tree/master/src/iMumbleClient

Categories:

  • Interoperability