BeamNG.tech roads importers and exporters, Simulink interface changes, improved Python API.

For the summer release of 2023, the 0.29, BeamNG.tech has focused the efforts on new import and export options for the roads, on improving the Simulink to BeamNG connection, also adding new examples, and on Python API support. BeamNG.tech features the OpenDRIVE importer as the next step to the OpenDRIVE exporter which was released earlier this year. Moreover, the OpenStreetMap importer and exporter is now available as well as the eclipse Sumo importer and exporter. What is more, we extend the Simulink to BeamNG interface with improved connection handling and new examples which make use of Matlab as well. On BeamNGpy we include new options, updated documentation and other improvements and fixes.

BeamNG.tech 0.29 release benefits from all updates in the BeamNG.drive 0.29 release. Here is the full report on BeamNG.drive v0.29.


Here is our changelog for 0.29:

New features

  • OpenDrive (.xodr) importer added, and new example created in Examples folder.
  • OpenStreetMap (.osm) importer and exporter added, and new examples created in Examples folder. Example of Openstreetmap imported to BeamNG simulation.
  • Eclipse Sumo (.nod.xml and .edg.xml) importer and exporter added, and new examples created in Examples folder.

Simulink interface improvements and new examples

  • New connection handling:

    • Simulink won’t freeze anymore if is not receiving from BeamNG:
      • At the start of the simulation will run without any block until the connection is established and will inform in the Diagnostic Viewer when the connection is opened.
      • If there was a connection between Simulink and BeamNG running and Simulink stops receiving messages from BeamNG, it will stop the simulation after 3 seconds.
    • Reloading the scenario/vehicle, will correctly close the UDP socket on the BeamNG side, allowing to reload the controller vehicleSystemsCoupling without any error
  • New examples for the Simulink to BeamNG interface where Matlab is sollicitated to launch and stop the scenario and to display measurements. Example of Simulink/Matlab interface with BeamNG.

BeamNGpy fixes / improvements

  • Improved/added documentation https://beamngpy.readthedocs.io/en/latest/
    • Scenario class now has all parameters documented.
    • BeamNGpy.debug API methods are now documented
    • BeamNGpy.env now contains more information about the ’time of day’ object
    • Added documentation for RADAR and Mesh sensors
  • Vehicle.set_part_config now does not recreate the existing connection to the simulator, as it was not needed
  • Small refactor of unit tests, the automated sensor scripts are now also runnable under the pytest framework
  • Invalid vehicle and scene object names produced error in the simulation, now the validation is done on BeamNGpy side
    • name cannot start with the % character or a digit
    • name cannot contain the / character
  • Added new options to BeamNGpy.scenario.load called connect_player_vehicle and connect_existing_vehicles
    • connect_player_vehicle is True by default and it connects the player vehicle to the simulation after scenario load
    • connect_existing_vehicles is True by default and it connects all the already existing vehicles to the simulation after scenario load
    • setting these options to False can reduce the loading time by skipping the connection-establishing part, and these vehicles can still be connected manually using Vehicle.connect .
  • Added crash_lua_on_error option to the BeamNGpy constructor
    • behaves in the same way as the option of the same name in BeamNGpy.open .