SkillAgentSearch skills...

motor-model-dynamics

Use this skill when simulating quadrotor physical dynamics — mapping desired thrust/moments to individual motor RPMs via a propeller allocation matrix, applying first-order motor lag, and integrating the nonlinear equations of motion (translational and rotational) using RK45.

Install / Use

npx skills add benchflow-ai/skillsbench --skill motor-model-dynamics

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

86/100

Supported Platforms

Universal

Our assessment of motor-model-dynamics

motor-model-dynamics scores 86/100 on our quality scale, 17th of 71 Project & Program Management skills we index (top 24%).

Its SKILL.md is 3.3 KB long, well organised into 11 sections with 1 code example: a solid amount of guidance for an agent.

With 1,813 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
26/30
Structure
17/20
Description
15/15
Adoption
14/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 2 months ago, so motor-model-dynamics is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

motor-model-dynamics compared with similar skills

All 4 of these similar skills score higher than motor-model-dynamics; compare them before choosing.

SkillScoreStarsUpdatedFormat
motor-model-dynamics (this skill)by benchflow-ai861.8k2mo agoSKILL.md
algorithmic-artby anthropics100177.9k9d agoSKILL.md
pptxby anthropics100177.9k9d agoSKILL.md
designby nextlevelbuilder100130.2k11d agoSKILL.md
ui-ux-pro-maxby nextlevelbuilder100130.2k11d agoSKILL.md

Frequently asked questions

How do I install motor-model-dynamics?
Run npx skills add benchflow-ai/skillsbench --skill motor-model-dynamics. The install tabs above show the steps for each supported agent.
Which AI agents does motor-model-dynamics work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is motor-model-dynamics safe to use?
It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is motor-model-dynamics still maintained?
The repository was last updated about 2 months ago, so motor-model-dynamics is actively maintained.

name: motor-model-dynamics description: Use this skill when simulating quadrotor physical dynamics — mapping desired thrust/moments to individual motor RPMs via a propeller allocation matrix, applying first-order motor lag, and integrating the nonlinear equations of motion (translational and rotational) using RK45.

Motor Model and Dynamics Simulation

Overview

Two modules form the physics layer of the simulator:

  1. Motor model — maps desired [F, Mx, My, Mz] → desired motor RPMs → applies first-order lag → returns actual thrust and moments
  2. Dynamics — nonlinear equations of motion; given forces and moments, returns the 16-element state derivative for ODE integration

Motor Model

Propeller Allocation Matrix (X-frame quadrotor)

The 4×4 allocation matrix maps [F, Mx, My, Mz] to squared motor RPMs. For an X-frame with arm length d, thrust coefficient cT, and torque coefficient cQ:

         motor:  1      2      3      4
Thrust:         +cT    +cT    +cT    +cT
Roll  (Mx):      0    +d·cT    0    -d·cT
Pitch (My):    -d·cT    0    +d·cT    0
Yaw   (Mz):    -cQ    +cQ    -cQ    +cQ

Implementation Logic

  1. Build the 4×4 prop_matrix from cT, cQ, and d.
  2. Solve prop_matrix @ rpm_sq = [F, Mx, My, Mz] for rpm_sq (desired squared RPMs).
  3. Take sqrt of each element (clamp negatives to 0 first), then clip to [rpm_min, rpm_max].
  4. Apply first-order motor lag: rpm_dot = km * (rpm_desired - rpm_current).
  5. Compute actual force/moment using prop_matrix @ (motor_rpm ** 2) and return (F_actual, M_actual, rpm_dot).

Dynamics (Equations of Motion)

State vector (16,)

| Indices | Meaning | |---|---| | 0:3 | Position [x, y, z] | | 3:6 | Velocity [vẋ, vẏ, vż] | | 6:9 | Euler angles [φ, θ, ψ] | | 9:12 | Angular velocity [p, q, r] | | 12:16 | Motor RPM [ω₁, ω₂, ω₃, ω₄] |

Implementation Logic

Compute state_dot (16,) from current state and applied forces/moments:

  1. Position derivative = current velocity (state[3:6]).
  2. Velocity derivative = gravity + thrust projected into world frame via ZYX Euler rotation. The x/y accelerations depend on F/m, sin/cos of all three Euler angles. The z acceleration is −g + (F/m)·cos(φ)·cos(θ).
  3. Euler angle derivative = current angular velocity (state[9:12]).
  4. Angular velocity derivative = I⁻¹ M (solve inertia matrix against moment vector).
  5. Motor RPM derivative = rpm_motor_dot from the motor model.

RK45 Integration

Use scipy.integrate.solve_ivp with method='RK45' over each timestep [t_k, t_{k+1}]. The ODE function wraps dynamics(params, s, F_actual, M_actual, rpm_motor_dot) with F_actual and M_actual held constant for the step. After solving, take the last column of sol.y as the new state.

Motor Physical Limits

| Parameter | Value | Meaning | |---|---|---| | rpm_min | 3000 | Minimum motor speed (motors always spinning) | | rpm_max | 20000 | Maximum motor speed | | motor_constant km | 36.5 s⁻¹ | First-order time constant; τ = 1/km ≈ 27 ms |

Max Thrust Calculation

Derived from motor limits:

  • T_max = 4 * cT * rpm_max² (all 4 motors at max RPM)
  • T_min = 4 * cT * rpm_min²
  • Thrust-to-weight ratio: twr = T_max / (mass * gravity)
  • Max upward acceleration: (T_max − mass·g) / mass
  • Max downward acceleration: (mass·g − T_min) / mass

Related Skills

View on GitHub
GitHub Stars1.8k
CategoryProject
Updated2mo ago
Forks368

Languages

PDDL

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions