Use libsumo instead of TraCI socket integration

With recent SUMO versions one can use a direct C++ library "libsumo" as TraCI API instead of the classic TCP based client/server architecture to provide access to SUMO. This might be a performance and stability improvement for future integration.

Advantages

  • Faster with high number of vehicles
  • Less error prone integration
  • No need to adjust and check TraCI interfaces with new SUMO versions

Drawbacks (as of 21.10.2019)

  • Not running with SUMO-GUI (!) -> blocker right now
  • Subscriptions that require additional arguments (vehicle.getLeader) don't work -> we may not need this now

Further reading