Developing a simulator for Drones with ROS2 interface, looking for feedback

Hi. I’m developing a 3D simulator and visualization software for drones, that contains a ROS2 Interface plugin for data and commands exchange.

The purpose of this simulator is to provide a lightweight and user friendly test-bed to explore Drone flights for educational and experimental purposes. Some of its features include:

  • Extensive visualization tools, such as plots, telemetry data, minimap, trajectory trails, ghost estimate, position covariance, and more
  • Session controlability: Pause, and alter simulation speed, allowing it to run slower or faster than real time
  • User friendly configuration editing: users can quickly explore settings such as estimation, controller, drone properties, sensors, and more, as well as to save and load different missions.
  • Replayer: Each live session is recorded and saved, allowing the user to load and visualize any past run as if it was live.
  • (Experimental) ROS2 Interface and MAVLink support: send simulation sensor data and receive external actuator commands, allowing for testing with external flight controllers in SITL/HITL.

An early showcase is found here: DroneLab Showcase

Any feedback is appreciated. I’d love to hear about features you’d like to see in drone simulators, including pain points with existing tools.
If you’re interested in testing this software, contact me here or via the link’s contact details, and I’ll gladly provide access to a preview demo.

1 Like

If this is to support the development of flight stacks in ROS 2, an integration into ros2_control would be really useful for developing low-level and high-level controllers. This has been done before with MuJoCo for example (mujoco_ros2_control).

Hi!

Thanks for sharing this. Is this build upon an existing simulator or engine? And what are you plans to open-source the simulator?

The main advise is to determine who you are developing this for and for what kind of applications. This highly determines what you should focus on, as simulators for starting developers are students have different requirements for those that are more senior.

There are many aerial robotics simulators there so it would be good to make sure that yours solves an area that other simulators can’t support (or can be contributed too), or else it might get lost in the wide range . From the Aerial robotics community interest group we have a simulator page for simulators that can be looked at for compares. Also I’m keeping a aerial robotics category on the best-of-robot-simulator list as well

Also, I talked about the aerial robotic simulation landscape at the PX4 summit, and shared results of the survey I helped out with with the PX4 community that would at the latest Aerial ROS meeting. That could give an indication in the needs of users for you.

1 Like

Hi!

Thank you for your feedback! I’ve listened and found a lot of insight from your presentation at the summit to look into in the simulator context. I’ll also take a look at existing simulation tools.

This software is being developed without an existing engine, instead using OpenGL as the graphics API in a C++ context. I’m considering the option to open-source simulation-related modules, such as dynamics, sensors, actuators, while keeping graphics, UI, session & replayer-related contents private. As of now, I think this simulator is best suited for educational or personal use, which is also what I’ll be focusing on for the next couple of weeks.

Thank you for your comment. ros2_control looks to be an interesting feature. This simulator already can show and plot internal controller related data such as PID logs, so I’ll definitely take a look into it for ros2 integration with external use. I appreciate your help!