OmniDrones Documentation

repository·main·Indexed 20 days ago

https://github.com/btx0424/omnidrones

An open-source simulation platform built on Nvidia Isaac Sim for reinforcement learning research in multi-rotor drone control. It provides efficient simulations, benchmark tasks, and algorithm baselines. Features include support for Crazyflie 2.1 deployment, Lidar navigation, and downwash effect modeling. Compatible with Isaac Sim 4.1.0, 2023.1.0, and 2022.2.0 on Linux/Ubuntu.

Tokens
18.9K
Snippets
36
Records
131
Agent score
69%

What's inside OmniDrones

  1. Overview of OmniDrones

    main

    OmniDrones is an open-source platform for reinforcement learning (RL) research on multi-rotor drone systems. It is built on top of Nvidia Isaac Sim and provides a highly efficient and flexible simulation environment. The platform includes a suite of benchmark tasks and algorithm baselines to assist in drone control research.

    Key Requirements & Compatibility:

    • Simulator: Built on Nvidia Isaac Sim (current version uses 4.1.0).
    • Python Version: Requires Python 3.10.
    • OS Support: Does not support Windows (use Linux/Ubuntu).
    • Documentation: Detailed usage instructions are available at omnidrones.readthedocs.io.
  2. Available Multi-Agent Tasks

    main

    OmniDrones provides several multi-agent task environments. These tasks are categorized by the type of agent and the objective:

    Platform-based Tasks:

    • PlatformHover: Hovering over a platform.
    • PlatformTrack: Tracking a platform.
    • PlatformFlyThrough: Flying through a platform-based environment.

    Transport-based Tasks:

    • TransportHover: Hovering near/over transport objects.
    • TransportTrack: Tracking transport objects.
    • TransportFlyThrough: Flying through transport-based environments.

    Formation Tasks:

    • Formation: Coordinating multiple agents to maintain a specific formation.
  3. Available Single-Agent Tasks

    main

    OmniDrones provides several single-agent reinforcement learning tasks. These tasks are categorized by their objective and environment complexity:

    Basic Navigation Tasks

    • Hover: Maintaining a stable position.
    • Track: Following a specific trajectory or target.
    • FlyThrough: Navigating through a series of waypoints or obstacles.

    These tasks involve interacting with or carrying an external payload:

    • PayloadHover
    • PayloadTrack
    • PayloadFlyThrough

    Inverted Pendulum Tasks

    Tasks focused on stabilization and control dynamics:

    • InvPendulumHover
    • InvPendulumTrack
    • InvPendulumFlyThrough

    Complex Environments

    • Forest: Navigation through obstacle-dense environments (often requires LiDAR).
    • Pinball: Dynamic obstacle avoidance or target interaction.
  4. Understand the TransportTrack reward function

    main

    The reward is a composite of several factors designed to encourage trajectory tracking, safety, and stability. The total reward $r$ is calculated as:

    $r = r_{\text{separation}} \times (r_{\text{pos}} + r_{\text{pos}} \times (r_{\text{up}} + r_{\text{swing}}) + r_{\text{joint_limit}})$

    Individual reward components include:

    • pos: Trajectory tracking reward, computed as $\exp(-a \times \text{pos_error})$.
    • separation: A penalty applied to all agents when the minimum separation between them is too small.
    • up: Reward for maintaining the payload in an upright position.
    • swing: Reward for minimizing large swinging motions of the payload.
    • joint_limit: Reward for keeping joint states within a range that avoids glitchy behaviors.
    • effort: Reward based on drone effort to optimize energy consumption.