New Feature: Drone Control in the BeamNG–ROS 2 Bridge

We are pleased to announce a new capability in the BeamNG ROS 2 bridge arriving with the BeamNG.tech 0.38 update: integrated drone control is now available.

You can now control a BeamNG.tech drone using a ROS 2 based keyboard teleop setup. The system listens to the /drone_control ROS 2 topic and translates those messages into Lua commands for BeamNG’s droneInput controller, letting you fly the drone in real time takeoff, landing, movement, and orientation included.

What’s in the box?

  • Real-time drone control from ROS 2

  • Keyboard teleoperation

  • A simple 4-node setup:

    • Bridge

    • Scenario loader

    • Controller

    • Teleop

This is meant to make it easier to experiment, prototype, and play with aerial robotics workflows inside BeamNG.tech.

Known limitations (for now)

The drone support works, but there are a few rough edges we want to be upfront about:

  • The drone is very sensitive small bumps or hard descents can make it unstable.

  • There’s no fixed camera yet, which can make flying a bit disorienting.

  • Keyboard controls don’t support digital roll and pitch, so analog input works much better.

  • The drone has more thrust than it probably should for its size and needs tuning.

  • You may notice camera shake or odd zoom behavior when the drone gets unstable.

We’re planning improvements in all of these areas.

We’d love your feedback

This is where the community comes in. If you’re using ROS 2 and BeamNG.tech, we’d really appreciate it if you could:

  • Try out the new drone controller

  • Share your experience (good or bad)

  • Report bugs or weird behavior

  • Suggest improvements or features you’d like to see

Your feedback will help us shape where this goes next. Thanks for testing, breaking things, and helping us make it better!

2 Likes

Looking nice!

Wondering whether hurricanes (for example, from some custom mod) will affect the drone operation and how real is it?

Hi @alfredgu001324 — great question!

Right now, the drone system in BeamNG.tech doesn’t simulate full aerodynamic interactions like wind or turbulence from weather phenomena such as hurricanes. However, if you’re using a custom mod that applies external forces to objects in the simulation, those will indeed affect the drone. The controller currently assumes relatively stable conditions, so unexpected forces can definitely impact its flight behavior — sometimes dramatically.

That said, we’re actively working on improving the realism and robustness of the drone system, and dynamic environmental interaction is something we’re interested in supporting more fully in the future.

In case you haven’t seen it yet, the integration is available as part of the BeamNG ROS2 Integration v1.5.0 release. The release includes:

  • Real-time drone control via /drone_control
  • Keyboard-based teleoperation
  • PID-based attitude and position control
  • Launch files and sample scenarios
  • Updated documentation

We’ve also included a preconfigured drone scenario in JSON format to make experimenting easier.

Feel free to try it out! We’ve uploaded a ready-to-run ZIP package to help you get started faster:
Basic_drone mod

We’d love to hear your feedback once you’ve given it a go — both the good and what could be improved.

All the best,
Abdulrahman Saeed
Research Software Engineer
BeamNG.tech Support Team

Yes, looking good!

I tried working on integrating a personal drone in BeamNG with an autopilot like ArduPilot SITL sending IMU data via JSON and sending PWM commands from the autopilot in Lua to the motors but it wasn’t very conclusive. Do you think something similar could be possible?

Hi @Antmchl,

Thank you for your interest in the drone integration!

Regarding ArduPilot SITL integration with IMU data via JSON and PWM commands from the autopilot in Lua — we don’t have enough experience with that specific approach to provide detailed guidance at this time. Our current implementation focuses on a general-purpose drone system designed for tech users and researchers working with BeamNG-ROS2 bridge.

Feel free to share your findings or reach out if you have questions about the current implementation!

Best regards,