Skip to content

BeamNG/beamng-ros2-integration

Repository files navigation

BeamNG ROS2 Integration

About

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.

Table of Contents

Features

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.

Prerequirements

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 .

Getting Started

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

ROS2_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.

Compatibility

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

Troubleshooting

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/

Contributions

We always welcome user contributions, be sure to check out our contribution guidelines first, before starting your work.