TLCCC

TLCCC staat voor Traffic Light Controller C Collection en is een code bibliotheek in de taal C waarmee op eenvoudige wijze voertuigafhankelijke regelingen kunnen worden opgebouwd. De bibliotheek biedt in de huidige vorm een gedeeltelijke implementatie van de CVN-C interface versie 4. Hiermee kan een regeling in principe zonder wijzigingen in de automaat omgeving worden gebruikt.

Achtergrond

Het project is ontstaan vanuit (en is nog steeds) een experiment, waarbij het doel was een voertuigafhankelijke regeling op te bouwen in de (niet object georiënteerde) taal C, in de geest van (object georiënteerde) talen als C++ en C#. De gedachte hierachter is dat veruit de meeste functionaliteit van een verkeersregeling gestandaardiseerd kan worden, en dus eenvoudig kan worden opgenomen in (instelbare) functies die gelden voor elke regeling. TLCCC is daarbij zo opgezet dat het programmeren van een regeling hoofdzakelijk bestaat uit het opbouwen van de configuratie.

Opzet

De bibliotheek is opgezet vanuit een object georiënteerd perspectief. Dit betekent dat regeltechnische elementen zoals signaalgroepen en detectoren, worden gezien als objecten. Middels aanroepen van functies wordt de status van die objecten geactualiseerd. Door deze opzet hoeft voor het bouwen van een regelaar relatief weinig code te worden geschreven: na configuratie van de objecten, handelen de functies uit de bibliotheek het regelproces af.

Een regeling kent in TLCCC een hiërarchische opbouw. Detectors worden bijvoorbeeld gezien als horend bij een fasecyclus. Ook andere elementen, zoals timers, horen bij een object, bv een signaalgroep of een detector. Dit zorgt ervoor dat niet voor elke regeling code hoeft te worden geschreven die zorgt voor aanvragen en verlengen op basis van detectie. Na configuratie is bekend welke detectors bij welke fase horen, en welke functies de detectoren hebben. Op basis van die informatie kunnen standaard functies uit de TLCCC functie bibliotheek zorg dragen voor het afhandelen van bijvoorbeeld aanvragen en verlengen, op basis van de status van de detectie.

Functionaliteit

Met TLCCC kan momenteel een volledige voertuigafhankelijke regeling worden gebouwd. De functionaliteit die TLCCC biedt wordt hieronder puntsgewijs samengevat:

  • Volledige en stabiele voertuigafhankelijke module regeling
  • Aanvragen en verlengen op basis van detectie
  • Testomgeving met een bitmap voor het besturingssysteem Windows
  • Eenvoudig opbouwen van een regeling, zeer weinig handmatig programmeren nodig
  • Gebruikt CVN-C interface 4 voor bijhouden van IO status
  • De broncode van de TLCCC functie bibliotheek is open source beschikbaar onder een MIT licentie (zie link bij status)
  • De TLCGen biedt de mogelijkheid voor genereren van een TLCCC regeling

Deze lijst omvat niet alle aspecten die voor een voertuigafhankelijke regeling in Nederland gebruikelijk zijn. Voorbeelden van elementen die nog ontbreken zijn: vooruit realisaties, alternatieve realisaties, wachtgroen, meeverleng groen, nalopen. In de testomgeving ontbreekt daarnaast nog de mogelijkheid voor detector simulatie. De modulaire opzet van het framework maakt het relatief eenvoudig dergelijk functionaliteit toe te voegen.

Status

TLCCC is als experiment geslaagd: het resultaat is een stabiele voertuigafhankelijke regeling in de taal C. De huidige versie van de broncode geldt als ‘beta’ versie, en is dus nog in ontwikkeling. Het framework is (nog) niet op straat toegepast. Het is daar vanwege het gebruik van de CVN-C interface in principe wel geschikt voor. Wel is de regeling getest in de testomgeving, en gekoppeld aan het simulatie pakket SUMO (middels TraCI). Voor eventuele toepassing op straat wordt geadviseerd eerst grondig te testen, zo mogelijk ook middels een duurtest, die in de huidige versie nog afwezig is.

De actuele broncode (dd. 27 juli 2017) is beschikbaar op Github: https://github.com/CodingConnected/CodingConnected.TLCCC. Wanneer concrete projecten aanleiding geven voor uitbreiding van de bibliotheek wordt ook dit via Github ontsloten.

Interesse?

Maakt u voor uw projecten gebruik van de bibliotheek, of heeft u een uitbreiding geschreven? Dan blijf ik graag op de hoogte!

Uiteraard praat ik ook graag verder over mogelijkheden voor praktische toepassing van de bibliotheek voor (onderzoeks)projecten, en/of op straat. Neem contact op om door te praten over de mogelijkheden.

Screenshots

Hieronder een aantal screenshot van praktische toepassing van de TLCCC.

TLCCC test regeling in testomgeving onder Windows

Microsimulatie in SUMO met TLCCC regeling

30-10-2017, 11:17