This repository contains packages to support the interoperability between BeamNG.tech and ROS2. BeamNG.tech is a driving simulation platform, suitable for commercial and academic use. Free licenses are available for non-commercial and academic use. Inquiries can be made through our registration form. For inquiries regarding commercial use, contact us at licensing@beamng.com.
As of now the BeamNG ROS2 integration supports one package for the remote control of the simulation platform and one package for the control of a driving agent. A third package manages custom messages.
For using the BeamNG ROS2 integration, a BeamNG.tech build and a python environment with BeamNGpy installed are required.
Note that BeamNG.tech only runs on Window, although Linux support is on its way. That means that BeamNG.tech needs to run on a separate Windows machine, or that ROS2 needs to run on on WSL2.
The BeamNG ROS2 integration is compatible with the ROS2 distributions humble hawksbill .
To use this project, a basic knowledge of the BeamNG.tech simulator and the BeamNGpy is neccessary. We recommend to familiarize yourself first with BeamNGpy to get a basic understanding of the platform before using the BeamNG ROS2 Integration.
After setting up BeamNG.tech and BeamNGpy with a python environment, the simulation needs to be started through BeamNGpy.
The ROS2 packages from this repository need to be added and build in your colcon workspace. See the ROS2 tutorials for more information on how to set up a colcon workspace.
A node connecting ROS2 to the simulation can then be started with the help of the bridge.py
file in the beamng_control
package through the command:
ros2 run beamng_control bridge
It needs to be configured to contain the correct IP address of the machine hosting the simulation.
Using it will start up a node that connects to the simulation and starts up a scenario as defined in the beamng_control/config/simple_scenario.json
.
Other scenario specifications are available in the same directory.
Running the BeamNG ROS2 integration requires three individual software components, here is a list of compatible versions.
BeamNG.tech | BeamNGpy | BeamNG ROS2 Integration |
---|---|---|
0.31 | 1.28 | 0.1.0 |
This section lists common issues with BeamNG ROS2 Integration in particular. Since this library is closely tied to BeamNG.tech and thus BeamNG.drive, it is also recommended to consult the documentation on BeamNG.drive here:
https://documentation.beamng.com/
We always welcome user contributions, be sure to check out our contribution guidelines first, before starting your work.