MOOSifying VoIP with MumbleConlan Cesar
Michael Novitzky
Aquaticus Intro● Capture the Flag
● Humans + Robot Teams● Can be 1v1, 2v2, 3v3, or 4v4
● Participants work together with teammates, robots● Goal is to “Capture the Flag” as many times as possible
Before VoIP
● Radio quality was poor● Audio was simplex
● Shared by 5 groups, crew and participants● Impossible to strategize
● Recording was a manual labor intensive process
Before VoIP
● Radio quality was poor● Audio was simplex
● Shared by 5 groups, crew and participants● Impossible to strategize
● Recording was a manual labor intensive process
Goals
❏ Better audio quality❏ Log speak / listen events to MOOS Database
❏ Team channels (bonus: with shoreside override)❏ Record all audio (VoIP, Speech Rec, and Ambient)
Why Mumble: Alternatives
HOMEGROWN
● PROS:○ Complete integration with MOOS (write audio binary to MOOSDB)
● CONS:○ Potentially massive undertaking○ Difficult to maintain / analyze later○ No way for external clients to connect (without extended effort)○ MOOSDB may be overrun with mass amounts of audio data
Why Mumble: Alternatives
TEAMSPEAK
● PROS:○ TeamSpeak has officially supported C++ SDK○ Most popular self-hosted channel based VoIP solution○ Cross platform client and server
● CONS:○ Closed source, incompatible with MOOS GPL license○ ARM (Raspberry PI / Pablo) SDK support requires costly licensing○ Additional costs to run offline & with each user
Why Mumble: Alternatives
DISCORD
● PROS:○ No licensing costs○ Well documented, open SDK and interface○ Easy to use, lots of configuration parameters
● CONS:○ Closed source server○ No option for self hosting servers○ No broadcasting to multiple channels at once
Why Mumble● PROS:
○ Open Source, compatible licensing○ Cross platform client and server○ Self hosted server, no need for internet connection○ Feature complete, satisfied all our goals
● CONS:○ C++ library isn’t as mature○ No official support should something go wrong
Architecture: How it Works
Headset PortAudio API
pRecord Disk
iMumbleClient MumLib
MOOSDB
Shoreside Murmur
OPUS
Protobuf
User Feedback
Participants● Clearer audio● Private team channels for strategizing● Better results when playing Aquaticus
Researchers● Easier to collect data● Allows for creation of custom analysis
tools (seen below)● Data easily published for anyone to
examine
Thank you!Any
https://github.com/HeroCC/moos-ivp-cc/tree/master/src/iMumbleClient