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.
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:
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?
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!