BeamNG.tech new tool for traffic management, new LiDAR sensor, improved Linux support, more updates and fixes.
The winter release presents a new, user-friendly tool for faster scenarios set-up : the traffic manager. This is an interface to handle vehicles and their driving modes, to place traffic signs and manage traffic lights. Example of traffic manager use.
Moreover, on sensors context, we have implemented a new LiDAR which is a customizable sensor designed for users who wish to create their own LiDAR simulation solutions within the BeamNG.tech environment. The Raw LiDAR Sensor utilizes four camera sensors positioned to cover a 360° view around the sensor. Camera data captures.
This release reinforces the Linux support, tested on Ubuntu 20.04 and Ubuntu 22.04. BeamNG.tech now supports a Docker container to run on headless mode.
Important to note that, BeamNG.tech v0.34 includes all updates from the BeamNG.drive 0.34 release and hotfixes; the interested user can access the detailed reports on BeamNG.drive v0.34 here.
Here is the changelog for BeamNG.tech v0.34:
New features
-
New Traffic Manager tool : it lets the user handle
- vehicles : selection from a list of any available vehicle model (standard or simplified, along with their configurations), spawn options, driving modes assignment and other control options;
- traffic lights : generation and management;
- traffic signs : selection and spawn options. Traffic Manager icons.
-
New sensor : ‘raw’ LiDAR, which provides low-level data outputs from four camera sensors to serve users to configure and build their unique LiDAR solutions, typically in the ray-tracing/path-tracing style. This sensor is meaningful for
- building custom LiDAR solutions for autonomous vehicle testing
- testing algorithms for obstacle detection and avoidance
- simulating diverse LiDAR configurations for research and development. The documentation with usage instructions is available here.
Changes / improvements
-
Linux:
- Fixed Ubuntu 20.04 not being able to run the BeamNG binary, build tested on Ubuntu 20.04 and Ubuntu 22.04.
- Various fixes for crashes during the level loading or exiting the simulation,
console.x64
now works in headless environments, Docker support. Read more in BeamNG.drive 0.34 release notes - Fixed crash while using the Terrain Importer.
- Fixed a crash while clearing shared memory buffers.
-
Added a template Docker container for BeamNG.tech: available with instructions in the BeamNG.tech zip file in the
/tech/docker
directory. Requires an NVIDIA GPU. -
Set the default BeamNG.tech vehicle to
etk800
. -
Documented the command-line arguments used in BeamNG.tech, here.
-
SharedMemoryManager.openSharedMemory
will create the shared memory file if it does not exist yet. -
Added the
SharedMemoryManager.readSharedMemory
API function to read shared memory from Lua. -
Added the
-enable-sandbox
and-disable-sandbox
command-line arguments to control the security measures of BeamNG.tech.- With
-enable-sandbox
, the Lua and network sandboxes are enabled. - With
-disable-sandbox
, the Lua and network sandboxes are disabled. - Without these arguments, the behavior from previous versions is in place (Lua sandbox is disabled, network sandbox is enabled). This may change in later versions and it is advised to either use
-enable-sandbox
ordisable-sandbox
depending on your needs.
- With
-
Added Lua API to enable the Lua and network sandboxes if they are not enabled at startup.
Engine.Sandbox.{Lua/Network}.isEnabled()
: returns true if the corresponding sandbox is enabledEngine.Sandbox.{Lua/Network}.enable()
: enables the corresponding sandboxEngine.Sandbox.enableAll()
: enables all available sandboxes
-
Fixed Radar sensor outputs on Vulkan.
-
Fixed the
Failed to get dpi scale for Monitor 0
log spam in circumstances where the DPI cannot be obtained. -
Added a small library (
lua/common/tech/pcdLib.lua
) to write point cloud.pcd
files. -
Fixed the LiDAR adhoc request returning invalid sizes.
-
Optimized CANBusPeak Lua library’s sending and receiving functions. CANBus is a bus protocol that is used in real cars, interfaced with BeamNG.tech v0.30 and later versions.
-
New version of RoadsSensor with:
- spline interpolation for road width
- filtered heading error
- linear interpolation for curvature estimation
- bugs fixed
- new output signal added, i.e., “numlane” the number of lanes in current travel direction
-
Co-simulation editor, accessible from the World Editor:
- Logging: we’ve added logging feature of the internal/external signals from/to BeamNG/3rd party
- VSL: remake the Vehicle Stats Logger (without having co-Simulation connection) to log all internal signals of the vehicle Example of the Logging options within the Co-simulation tool.
Note : Exceptionally, on the hotfix software version, tagged as v0.34.2.0, the logging options in the co-simulation tool are not available. The co-simulation tool in v0.34.2.0 is as documented here.
- Special tribute to Formula Students and Formula Student Driverless : Available colorable traffic cones with presets; the color is adjustable in the tuning menu.
BeamNGpy-related changes
-
Changed the default BeamNGpy TCP port to a non-ephemeral port 25252. This should fix the “permission denied” error while trying to open a BeamNGpy connection. Please update your scripts appropriately (you can keep using the previous default port 64256 without issues).
-
Added Camera/LiDAR/Radar outputs to Tech Capture Player.
-
Fixed captures on case-sensitive filesystems.
-
Fixed scenario loading on case-sensitive filesystems.
-
Fixed some issues related to blocking in the BeamNGpy protocol on Lua side.
-
Optimized TCP buffer copying on Lua side.
-
Fixed hanging caused by
BeamNGpy.scenario.start()
in some cases. -
BeamNGpy.control.queue_lua_command
andVehicle.queue_lua_command
now accept theresponse
argument to get Lua responses from the simulator. -
BeamNGpy.open
now loads the extensions specified in theextensions
argument also in the case the simulator was already open. -
Fixed BeamNGpy examples which were using an invalid navigation waypoint on west_coast_usa.
-
Fixed
BeamNGpy.scenario.load
when the scenario was located in a non-standard location. -
Fixed the
ai_line.py
example to have an end. -
Vehicle.set_license_plate
now raises an error if the license plate cannot be set (when the ‘Dynamic license plates’ option is disabled). -
Fixed the
beamngpyDissector.lua
debug plugin to properly parse GetScenarios and other messages. -
Updated most BeamNGpy examples.
-
Fixed the warnings related to resources cleanup (shared memory, sockets, processes) on closing.
-
Added numlane signal to the roads sensor signals list.
ROS2 - BeamNG bridge changes
- Updated the code to latest BeamNGpy and BeamNG.tech compatible versions.
- Port Update: The used port with BeamNG is now 25252 instead of 64256.
- Fixed some sensor issues.
ROS1 - BeamNG bridge change
- Port Update: Change default port number to 25252.
Known issues:
- On annotations : The annotation result of a camera sensor does not update when we attach a LiDAR sensor simultaneously;
- Sensor configuration issues on Vulkan.