Ask me what skills you need
What are you building?
Tell me what you're working on and I'll find the best agent skills for you.
Use this skill when implementing the inner control loop for a quadrotor — attitude (roll/pitch/yaw) PID control and attitude planning (converting desired acceleration to desired Euler angles). Covers gain layout, integral reset pattern, and the attitude planner inverse kinematics.
Two cooperating modules form the inner loop:
Given desired acceleration [ax, ay] and current yaw ψ, compute desired roll/pitch via inverse kinematics:
φ_des is proportional to (ax·sin(ψ) − ay·cos(ψ)) / gθ_des is proportional to (ax·cos(ψ) + ay·sin(ψ)) / gReturn rot = [φ_des, θ_des, ψ] and omega = [0, 0, desired_yaw_rate].
PID control on Euler angle errors, scaled by the inertia matrix:
e = desired_rot − current_rot (element-wise, 3D vector).integral_e += e * dt.M = I @ (kp * e + ki * integral_e + kd * (desired_omega − current_omega)).Use make_attitude_integral() to create a fresh {"e": zeros(3)} dict before the simulation loop. Never use a mutable default argument for this state.
npx skills add benchflow-ai/skillsbench --skill attitude-controller-plannerHow clear and easy to understand the SKILL.md instructions are, rated from 1 to 5.
Clear and well structured, with only minor parts that might need a second read.
How directly an agent can act on the SKILL.md instructions, rated from 1 to 5.
Mostly actionable with clear steps; only a few small gaps remain.