You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds documentation for Multirotor feature (isaac-sim#4400)
# Description
This MR adds more documentation to the multi-rotor classes to help users
understand the features in more detail.
## Type of change
- Documentation update
## Checklist
- [ ] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [ ] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
---------
Co-authored-by: Pascal Roth <57946385+pascal-roth@users.noreply.github.com>
This extension provides comprehensive support for multirotor systems (drones, quadcopters, hexacopters, etc.)
4
-
in Isaac Lab. It includes specialized actuator models, asset classes, and MDP components specifically designed
5
-
for multirotor simulation.
3
+
This extension (`isaaclab_contrib`) provides a collection of community-contributed components for Isaac Lab. These contributions extend the core framework with specialized robot types, actuator models, sensors, and other features that are not yet part of the main Isaac Lab package but are actively maintained and supported by the community.
6
4
7
-
## Features
5
+
## Overview
8
6
9
-
The extension provides the following key components:
7
+
The `isaaclab_contrib` package serves as an incubator for experimental and specialized features that:
10
8
11
-
### Assets
9
+
- Extend Isaac Lab's capabilities for specific robot types or use cases
10
+
- Provide domain-specific actuator models and control interfaces
11
+
- Offer specialized MDP components for reinforcement learning tasks
12
+
- May eventually be integrated into the core Isaac Lab framework
12
13
13
-
***`Multirotor`**: A specialized articulation class that extends the base `Articulation` class to support
14
-
multirotor systems with thruster actuators. This class handles the simulation of multirotor dynamics,
15
-
including thrust application at specific body locations and integration with the thruster actuator model.
14
+
## Current Contributions
16
15
17
-
### Actuators
16
+
### Multirotor Systems
18
17
19
-
***`Thruster`**: A low-level motor/thruster dynamics model with separate rise/fall time constants. This
20
-
actuator model simulates realistic motor response characteristics including:
21
-
- Asymmetric rise and fall time constants
22
-
- Thrust limits (minimum and maximum)
23
-
- Integration schemes (Euler or RK4)
24
-
- Motor spin-up and spin-down dynamics
18
+
Comprehensive support for multirotor vehicles (drones, quadcopters, hexacopters, octocopters, etc.) including:
25
19
26
-
### MDP Components
20
+
-**Assets**: `Multirotor` articulation class with thruster-based control
21
+
-**Actuators**: `Thruster` model with realistic motor dynamics
22
+
-**MDP Components**: `ThrustAction` terms for RL control
27
23
28
-
***Thrust Actions**: Action terms specifically designed for multirotor control, allowing direct thrust
29
-
commands to individual thrusters or groups of thrusters. These integrate seamlessly with Isaac Lab's
30
-
MDP framework for reinforcement learning tasks.
24
+
See the [Multirotor Systems](#multirotor-systems-detailed) section below for detailed documentation.
31
25
32
-
## Using the Extension
26
+
## Extension Structure
27
+
28
+
The extension follows Isaac Lab's standard package structure:
29
+
30
+
```tree
31
+
isaaclab_contrib/
32
+
├── actuators/ # Contributed actuator models
33
+
│ ├── thruster.py # Thruster actuator for multirotors
To use this extension in your code, import the required components:
44
+
The `isaaclab_contrib` package is included with Isaac Lab. To use contributed components:
35
45
36
46
```python
47
+
# Import multirotor components
37
48
from isaaclab_contrib.assets import Multirotor, MultirotorCfg
38
49
from isaaclab_contrib.actuators import Thruster, ThrusterCfg
39
50
from isaaclab_contrib.mdp.actions import ThrustActionCfg
40
51
```
41
52
42
-
### Example: Creating a Multirotor Asset
53
+
---
54
+
55
+
## Multirotor Systems (Detailed)
56
+
57
+
This section provides detailed documentation for the multirotor contribution, which enables simulation and control of multirotor aerial vehicles in Isaac Lab.
58
+
59
+
### Features
60
+
61
+
The multirotor system includes:
62
+
63
+
#### Assets
43
64
44
-
Here's how to configure and create a multirotor asset:
65
+
-**`Multirotor`**: A specialized articulation class that extends the base `Articulation` class to support multirotor systems with thruster actuators
66
+
- Manages multiple thruster actuators as a group
67
+
- Applies thrust forces at specific body locations
68
+
- Uses allocation matrices for control allocation
69
+
- Provides thruster-specific state information through `MultirotorData`
70
+
71
+
#### Actuators
72
+
73
+
-**`Thruster`**: A low-level motor/thruster dynamics model with realistic response characteristics:
74
+
-**Asymmetric rise and fall time constants**: Models different spin-up/spin-down rates
75
+
-**Thrust limits**: Configurable minimum and maximum thrust constraints
76
+
-**Integration schemes**: Euler or RK4 integration methods
77
+
-**Dynamic response**: Simulates motor transient behavior
78
+
79
+
#### MDP Components
80
+
81
+
-**`ThrustAction`**: Action terms specifically designed for multirotor control:
82
+
- Direct thrust commands to individual thrusters or groups
The matrix encodes the geometric configuration of thrusters including positions, orientations, and moment arms.
171
+
172
+
#### Thruster Dynamics
173
+
174
+
The `Thruster` actuator model simulates realistic motor response with asymmetric first-order dynamics:
175
+
176
+
```
177
+
dT/dt = (T_target - T_current) / τ
104
178
```
105
179
106
-
## Key Concepts
180
+
Where τ is the time constant (different for rise vs. fall):
181
+
-**Rise Time (τ_rise)**: How quickly thrust increases when commanded (typically slower)
182
+
-**Fall Time (τ_fall)**: How quickly thrust decreases when commanded (typically faster)
183
+
-**Thrust Limits**: Physical constraints [T_min, T_max] enforced after integration
184
+
185
+
This asymmetry reflects real-world motor behavior primarily caused by ESC (Electronic Speed Controller) response and propeller aerodynamics, which result in slower spin-up (thrust increase) than spin-down. While rotor inertia affects both acceleration and deceleration equally, it is not the main cause of the asymmetric response.
107
186
108
-
### Thruster Dynamics
187
+
####Thruster Control Modes
109
188
110
-
The `Thruster` actuator model simulates realistic motor response with asymmetric dynamics:
189
+
The multirotor system supports different control approaches:
111
190
112
-
-**Rise Time**: How quickly thrust increases when commanded
113
-
-**Fall Time**: How quickly thrust decreases when commanded
114
-
-**Thrust Limits**: Physical constraints on minimum and maximum thrust output
0 commit comments