11 feb 2022

Waarom kiest Social Brothers voor WebRTC?

Steven
✍️ Blog
11 min. leestijd

WebRTC staat voor web real-time communication. Het is een P2P (Peer-2-Peer) communicatieprotocol dat Social Brothers gebruikt om snelle video- en audiogesprekken op te zetten, onder andere bij remote assistance via de HoloLens. P2P betekent dat er in deze verbinding geen centrale server nodig is, omdat de twee deelnemers rechtstreeks met elkaar verbonden zijn. Dit zorgt voor een snelle verbinding met weinig vertraging. Maar er zijn meer voordelen.

WebRTC en HoloLens

Social Brothers zet WebRTC in voor de remote assistance-applicatie van Bureau Veritas. Bureau Veritas keurt schepen over heel de wereld. Dat wil zeggen dat hun inspecteurs soms de hele wereld overvliegen voor een inspectie van tien minuten. Niet alleen kost dat tijd en geld voor de inspecteur, ook de scheepvaart kan miljoenen mislopen. Het schip moet immers stil blijven liggen totdat de inspecteur ter plekke is.

Bij Social Brothers werken we al een tijdje met de HoloLens. Voor Bureau Veritas hebben we zelf een applicatie gebouwd om aan te sluiten bij dit vraagstuk van Bureau Veritas en keuringen op afstand mogelijk te maken. Het idee achter onze remote assistance-applicatie is dat er op het schip iemand aanwezig is die de HoloLens draagt. De inspecteur van Bureau Veritas zit op afstand achter zijn eigen bureau en kan via het camerabeeld van de HoloLens meekijken op het schip en communiceren met de drager van de HoloLens. Lees voor meer informatie over remote assistance ons blog hierover.

Daarnaast heeft de applicatie de mogelijkheid om audio uit te wisselen en om extra data uit te wisselen zoals de positie van de drager van de HoloLens in de machinekamer van het schip. Hierdoor kan de inspectie op afstand sneller en efficiënter uitgevoerd worden. Voor het communicatieprotocol bleek WebRTC de beste technologie en vandaar dat we dit zijn gaan toepassen voor dit proof-of-concept. WebRTC maakt het namelijk mogelijk om op een heel simpele manier twee apparaten te verbinden en een stabiele audio- en videoverbinding te krijgen.

Snelle verbinding

WebRTC is een simpele manier om twee (of meer) apparaten stabiel met elkaar te verbinden. Beide apparaten laten de server weten dat ze verbinding willen. Ze wisselen P2P-data uit (de zogenaamde handshake) en vervolgens wordt de verbinding gestart. Deze staat los van de server: die wordt enkel en alleen gebruikt voor het initiële contact. Het heen en weer sturen van custom data tussen de twee apparaten wordt mogelijk gemaakt door de RTCDataChannel-API. De techniek hierachter is beschikbaar als een reguliere JavaScript API. Voor verschillende voorbeelden over de mogelijkheden kun je hier kijken.

Het WebRTC-protocol zorgt voor een snelle verbinding. Als de server de verbinding is, stuurt de een wat naar de server en de ander haalt het op. Dat is een extra stap die voor vertraging zorgt. Vergelijk het met een gesprek: het is makkelijk om direct met degene te praten aan wie je een specifieke boodschap over wilt brengen, dan dat je een gesprek voert via een tussenpersoon. Door de extra stap in het digitale communicatieproces over te slaan, heeft P2P tot zesmaal snellere verbindingstijden. De videokwaliteit is beter en je hebt natuurlijkere online gesprekken doordat er geen vertraging in zit.

Veilige verbinding

Doordat er geen server tussen zit, is WebRTC in principe ook extra veilig, want er kan moeilijker een man-in-the-middle-aanval plaatsvinden die bepaalde communicatie opvangt. Natuurlijk moet je wel de persoon met wie je verbinding maakt vertrouwen. We verifiëren daarom via een websocket-techniek of je met de juiste persoon verbinding maakt. Als je verbinding maakt met de server, dan maakt socket.io vanaf de server een kamer aan. Die kamer krijgt een aparte naam waardoor je alleen aan kan sluiten als je de naam van de kamer weet. Zo weet je wie er aan de andere kant staat.

Datachannels bij WebRTC

Een ander voordeel van het WebRTC-protocol zijn de datachannels. Die maken het mogelijk om buiten spraak en beeld andere data heen en weer te sturen. Voor de Bureau Veritas applicatie is dat de positie van de HoloLens in de machinekamer. De inspecteur heeft een 3D-model van de machinekamer op zijn computerscherm, naast het videobeeld van de HoloLens. De positie en rotatie van de HoloLens wordt constant doorgestuurd naar de inspecteur door het datachannel. Aan de hand van die data zorgen we ervoor dat er in het 3D-model precies wordt weergegeven op welke positie de drager van de HoloLens zich bevindt.

De inspecteur ziet zowel het 3D-model als de video. Voor een inspectie van een deuk is de video van belang, maar voor het totaalplaatje is juist het 3D-model handig. Dit is veel minder schokkerig dan het camerabeeld dat als het ware te lijden heeft onder de bewegingen van de drager en de beperkte netwerksnelheid van de HoloLens.

Flexibel

De datachannels van webRTC zijn heel flexibel: je kan alles meesturen en formatten zoals jij dat wilt. Dat geeft ons de mogelijkheid om de data zo klein mogelijk te houden. Dat is belangrijk gezien het trage netwerk op het schip. Een andere voordeel van webRTC is dat het systeem zelf de videokwaliteit bepaalt aan de hand van de verbinding. Verder kunnen we er via de handshake voor zorgen dat we de juiste informatie uitwisselen en niet meer dan dat. De inspecteur dient de video van de drager van de HoloLens te zien, maar andersom niet. Door slim de juiste data op te sturen, kan je de beperkte bandbreedte van het schip beter gebruiken.

Meer weten?

Wil je op de hoogte blijven van ontwikkelingen op IT-gebied, schrijf je dan in voor onze nieuwsbrief of neem een kijkje bij onze andere blogs. We raden je ook van harte ons complete handboek over Augmented Reality aan.

Wil je meer weten over webRTC en de mogelijkheden om dit in te zetten voor remote assistance, neem dan contact op met Social Brothers.

Steven Founder[email protected]06-20413957
Ik doe aanWhatsApp

Geïnspireerd? De volgende onderwerpen zijn aanbod gekomen

DevelopmentInnovatieTech
Toon alle inspiratie