Rapport Real-time datastromen
Versie 1.0
Datum Status
22 December 2010 Final
Real-time datastromen | 22 December 2010
Colofon
IVENT A&A CDC Madame Curielaan 4-6 Postbus 20703 2289 CA Rijswijk Contactpersoon
Patrick Brooijmans Teamleider Functionele Integratie M +31 6 51313575
[email protected]
Versie Opdrachtgever Auteur(s) Projecten
1.0 i-Bridge2.0 Geodan i-Bridge2.0
Pagina 2 van 12
Real-time datastromen | 22 December 2010
Inhoud Colofon ............................................................................................................2 1 Inleiding ...................................................................................................4 2 Technisch..................................................................................................5 2.1 Standaarden ........................................................................................ 5 2.2 Data-infrastructuur ............................................................................... 6 2.3 Surface applicatie ................................................................................. 7 3 Gebruik ...................................................................................................10 3.1 Surface applicatie ............................................................................... 10 4 Conclusie ................................................................................................12
Pagina 3 van 12
Real-time datastromen | 22 December 2010
1
Inleiding
Binnen timebox 4 van het project I-Bridge 2.0 is mede aandacht besteed aan het gebruik van real time datastromen in crisis managment. Binnen het bestaande IBridge worden vooral berichten uitgewisseld, met een geografische component. Er is een duidelijk ontwikkeling naar meer real-time (geo)informatie. Binnen incidentbestrijding is ook een duidelijk aanwijsbaar nut van real-time informatie die gedeeld kan worden. Dit maakt het mogelijk om meer te delen dan een kaartbeeld. Binnen I-Bridge timebox 4 is gewerkt aan de implementatie van real time video binnen het I-Bridge crisismanagementsysteem. Hiervoor wordt video afkomstig van vliegende platformen gebruikt. Binnen crisisbestrijding is het nut van de blik van boven die een vliegend platform biedt onderkend. De toepassing ervan tijdens incidenten staat echter nog aan het begin van zijn ontwikkeling.
Pagina 4 van 12
Real-time datastromen | 22 December 2010
2
2.1
Technisch
Standaarden
Om real-time data geografisch toe te kunnen passen moet deze data ook voorzien zijn van geografische metadata die beschrijft waar deze data opgenomen is. Voor video stromen is er een standaard voor geografische metadata: de NATO standaard STANG4609. In deze standaard staat gespecificeerd hoe een videostroom gecombineerd wordt met een metadatastroom en welke keywords deze metadatastroom mag bevatten. Binnen STANAG-4609 zijn keywords gedefinieerd die de eigenschappen (naam, etc.), geografische locatie en richting specificeren van het platform, plus alle kijkrichtingen van de (video) sensor. Hiermee wordt dus de oriëntatie van de sensor ten opzichte van het vliegende platform beschreven. Om te kunnen weten waar de sensor daadwerkelijk naar kijkt moeten dus de kijkhoeken teruggerekend worden naar hoeken ten opzichte van een geografisch systeem. Een STANAG 4609 stream bestaat uit een MPEG-2 transport stream waarin een video stream ziet met video beelden een audio stream en een metadata stream.
Figuur 1 MPEG-2 transport stream (bron: STANAG-4609 standaard)
Binnen de metadata stream wordt een zogenaamde KLV (key – length – value) codering gebruikt. Hierin wordt eerst een tag meegestuurd die aangeeft wat voor metadata er verstuurd wordt, dan een specificatie van het aantal bytes en tot slot de waarde zelf. Dit wordt voor alle metadata herhaald. De metadata wordt aan de zender kant gesynchroniseerd met de video beelden. Dus ieder video beeld moet worden vergezeld door de bijbehorende metadata. Indien de metadata trager beschikbaar komt, doordat de eerst berekend moet worden bijvoorbeeld, moet de video stroom gebufferd worden zodat deze synchroon naar buiten gaat.
Pagina 5 van 12
Real-time datastromen | 22 December 2010
Figuur 2: STANAG 4609 metadata codering (bron: STANAG standaard)
2.2
Data-infrastructuur
De video stroom kan zowel vanaf het plaats incident beschikbaar worden gemaakt als vanaf een willekeurige anders locatie. Wanneer vanaf de plaats incident een UAV wordt bestuurd wordt ook de datastroom lokaal ontvangen.
Figuur 3: Schematisch: de video stroom kan op plaats incident of elders ontvangen worden.
Pagina 6 van 12
Real-time datastromen | 22 December 2010
2.3
Surface applicatie
De surface applicatie is gebouwd op de bestaand I-Bridge surface applicatie. De ondersteuning van de metadata stroom en het ondersteunen van externe video zijn ingebouwd. Er is voor gekozen om niet een volledige transport stream in te bouwen in de surface applicatie maar om alleen functionaliteit in te bouwen voor de ondersteuning van de metadata stroom. Hiervoor zijn een aantal redenen: 1. Het houdt het dataverkeer naar de surface beperkt. 2. De surface applicatie zelf heeft genoeg aan de metadata, het video beeld zelf wordt extern getoond op een externe computer met display. In de praktijk is de transport stream gesplitst door de aanbieder van de data stroom. Dat wil zeggen dat de stromen gescheiden aangeboden zijn. 2.3.1
Ontvangen, verwerken en tonen van data
De platforms sturen video beelden en metadata door naar hun grondstation, deze twee losse data stromen werden vervolgens verwerkt tot één data stroom volgens de STANAG-4609 standaard beschreven in 2.1. De STANAG-4609 data werd vervolgens als een UDP Multicast stream over het netwerk gestuurd zodat de data beschikbaar was voor alle aangesloten computers op het netwerk. Vanwege de complexiteit van de STANAG-4609 stream is er besloten de metadata (volgens STANAG-4609 formaat) uit de stream te halen en naast de volledige stream te versturen als een UDP unicast stream rechtstreeks naar de Surface tafel. De platform metadata informatie (verstuurd via unicast naar de Surface) word als bytestream opgepikt door de Surface en verwerkt tot begrijpbare data, met deze data kon vervolgens een platform op de juiste locatie op de kaart aangegeven worden. Wanneer een gebruiker het platform op de kaart aandrukte werd er meer metadata informatie getoond: o Unix_Time_Stamp o Mission_ID o Platform_ID o Platform_Heading_Angle o Platform_Pitch_Angle o Platform_Roll_Angle o Platform_designation o Device_Type_and_polarity o Image_Coordinate_System o Device_Latitude o Device_Longitude o Device_Altitude o Field_of_View_Horizontal o Field_Of_View_Vertical o Device_relative_azimuth o Device_relative_elevation o Device_relative_Roll o Device_to_Centre_of_Frame_Slant_Range o Target_width o Frame_Center_Latitude o Frame_Center_Longitude o Frame_Center_Elevation o Platform_Ground_speed o Device_to_Centre_of_Frame_Ground_Range o LDS_version
Pagina 7 van 12
Real-time datastromen | 22 December 2010
Naast het tonen van extra informatie bij het platform op de Surface nadat een gebruiker op het platform drukte werd er ook een udp multicast adres doorgestuurd naar de video computer over een socketserver. Het udp multicast adres wat werd doorgestuurd was het multicast adres waarop de volledige STANAG-4609 stream werd doorgestuurd. Wanneer de video computer een nieuw ip adres ontving werd er een VLC speler geopend die verbinding maakte naar het doorgestuurde adres.
Figuur 4: Netwerk schema, de video stroom en metadata stroom worden gescheiden aan de applicatie aangeboden. De surface zelf onvangt alleen de metadata stroom. De video stroom wordt in een externe applicatie geopend vanaf de tafel.
2.3.2
Berekenen hoekpunten uit beeldhoeken
Binnen I-Bridge was niet voor alle platforms alle metadata beschikbaar. De STANAG 4609 standaard beschrijft wel metadata die de coördinaten van alle hoekpunten van het video frame weergeeft maar juist deze metadata velden waren niet altijd met een bruikbare waarde gevuld. Hierom is ervoor gekozen om deze hoekpunten te berekenen uit de oriëntatie van de sensor ten opzichte van het platform en de locatie en oriëntatie van het platform zelf. Allereerst wordt de afstand van platform tot video frame berekend uit de elevatie van de sensor en het field of view in vertical richting: rangeFar = (centerOfFrameSlant * sin(sensorElevation)) / sin(sensorElevation - (fovVertical / 2)); rangeNear = (centerOfFrameSlant * sin(sensorElevation)) / sin(sensorElevation + (fovVertical / 2));
Daarna worden de afmetingen van het video frame berekend in meters: Pagina 8 van 12
Real-time datastromen | 22 December 2010
frameNearWidth = 2 * rangeNear frameFarWidth = 2 * rangeFar * tan(fovHorizontal / 2); frameHeight = rangeFar - rangeNear;
*
tan(fovHorizontal
/
2);
Hieruit volgen de beeldhoeken van het video frame ten opzichte van het platform: widthNearAngle = ((frameNearWidth / 6378139) widthFarAngle = ((frameFarWidth / 6378139) heightAngle = ((frameHeight / 6378139) / (2 * pi)) * 360 viewAngle cosView sinView
=
platformHeadingAngle = =
/ /
(2 (2
* *
pi)) pi))
* *
360 360
+ deviceAzimuth; cos(GetRadians(viewAngle)) sin(GetRadians(viewAngle))
Binnen de metadata waren de coordinaten van het centrum van het frame niet voor alle platforms beschikbaar. Deze werden dus uit de relatieve coördinaten van het beeld ten opzichte van het platform berekend: relativeLongitude = deviceLongitude + ((centerOfFrameGround / 6378139) / (2 * pi)) * 360 * sinView; relativeLatitude = deviceLatitude + ((centerOfFrameGround / 6378139) / (2 * pi)) * 360 * cosView;
Uiteindelijk kunnen hieruit de hoekpunten van het videobeeld in geografische coordinaten berekend worden: lon1 = relativeLongitude - widthNearAngle / 2 * cosView - heightAngle / 2 lat1 = relativeLatitude + widthNearAngle / 2 * sinView - heightAngle / 2 lon2 = relativeLongitude + widthNearAngle / 2 * cosView - heightAngle / 2 lat2 = relativeLatitude - widthNearAngle / 2 * sinView - heightAngle / 2 lon3 = relativeLongitude + widthFarAngle / 2 * cosView + heightAngle / 2 lat3 = relativeLatitude - widthFarAngle / 2 * sinView + heightAngle / 2 lon4 = relativeLongitude - widthFarAngle / 2 * cosView + heightAngle / 2 lat4 = relativeLatitude + widthFarAngle / 2 * sinView + heightAngle / 2 * cosView;
* * * * * * *
sinView; cosView; sinView; cosView; sinView; cosView; sinView;
Hoewel dit een aanzienlijke vereenvoudiging van de geometrie betekent blijkt het in de praktijk goed te werken. De vereenvoudigingen zijn toelaatbaar onder de voorwaarden dat de platformhoeken beperkt blijven. Tijdens scherpe bochten en steile daal- of stijgvluchten gaan de vereenvoudigingen niet meer op. Tijdens videowaarnemingen moet het platform echter meestal stabiel genoeg vliegen om deze voorwaarden tegemoet te komen.
Pagina 9 van 12
Real-time datastromen | 22 December 2010
3
3.1
Gebruik
Surface applicatie
De surface applicatie is gebaseerd op de I-Bridge surface applicatie. Deze applicatie laat het Common Operational Picture zien zoals dit gedeeld wordt door de deelnemers aan een incident. De surface applicatie is uitgebreid met de video functionaliteit. De UAV-video informatie is als GIS-laag in de surface applicatie geconfigureerd. De gebruiker moet de laag aanvinken in het lagenoverzicht van de applicatie voordat de video informatie zichtbaar wordt gemaakt op de surface. 3.1.1
Visualisatie
De I-Bridge surface applicatie laat een symbool zien als representatie van de locatie van het platform. Hiervoor wordt een afbeelding van het vliegtuig, helicopter of ballon gebruikt. De kijkrichting van de sensor wordt getoond door een vierhoek te tonen wat overeenkomt met de randen van het (video) beeld.
Figuur 5: De surface applicatie toont een UAV positie en de beeldgrenzen (het video frame)
De metadata stroom van de UAV kan getoond worden op de surface. Wanneer het icoon van de UAV aangeraakt wordt wordt een window geopend waarin de meest recente metadata voor desbetreffende UAV getoond wordt. Het window toont ook weer het logo van de corresponderende UAV zodat voor de gebruikers duidelijk is van welk UAV de data is. Dit is met name van belang wanneer meerdere UAV stromen getoond worden.
Pagina 10 van 12
Real-time datastromen | 22 December 2010
Figuur 6: Metadata display window op de surface applicatie
3.1.2
Gebruik externe display
De surface applicatie zelf is niet geschikt om ook het live video beeld te laten zien. De surface is bedoeld om de incidentkaart te laten zien met daarop relevante (locatie) informatie. Het video beeld zelf wordt dan ook getoond op een extern display. Het externe video beeld laat de video stroom zien van de laatst geselecteerd UAV. De gebruiker kan een videostroom selecteren door het aanraken van het videoframe in de surface applicatie. 3.1.3
Schakelen tussen databronnen
De surface applicatie ondersteunt meerdere databronnen simultaan. In de configuratie kunnen een aantal verschillende video bronnen aangeven worden, ieder met een eigen bijbehorende metadata stroom. De verschillende videobronnen moeten wel hun respectievelijke video en metadatastromen ieder op een eigen poort uitzenden. De surface applicatie heeft voor iedere connectie een aparte poort nodig.
Pagina 11 van 12
Real-time datastromen | 22 December 2010
4
Conclusie
Tijdens de CEPNIC oefening is de surface applicatie gebruikt om live luchtbeelden te ontvangen van een vliegend platform van het Nationaal Luchten Ruimtevaartlaboratorium. Hierbij heeft NLR, zoals gezegd, de video en metadata stream gescheiden aangeboden. Tijdens de oefening is de datastroom van 1 platform ontvangen en weergegeven; het NLR vliegtuig gaf zijn video stroom volgens de afgesproken standaard door en kon worden getoond op de surface. De surface toonde zowel de locatie van het vliegtuig als de locatie van het video frame. In de praktijk blijkt dat tijdens (snelle) draaien van het vliegtuig het video frame niet altijd op de juiste plaats getoond wordt. Dit is een direct gevolg van de gekozen vereenvoudigingen in de sensor geometrie berekeningen. In de praktijk duren snelle veranderingen en scherpe draaien kort genoeg om niet storend te zijn voor de waarnemers achter de tafel. Tijdens de oefeningen werd voornamelijk met de sensor onder een relatief scherpe hoek naar beneden gekeken. Wanneer de sensor ook de horizon laat zien wordt de locatie van het video frame ook onjuist getoond. Dit gebeurde ook relatief weinig gedurende de oefening. Het laatste is echter wel een aandachtspunt; wanneer de horizon in beeld is van de sensor heeft het video frame in feite een oneindige afmeting. Dit geval moet afgevangen worden in de surface applicatie.
Pagina 12 van 12