udaan.models.mujoco.quadrotor_cspayload_fleet module

N-quadrotor-cable-payload fleet for comparing controllers/gains side-by-side.

Each agent is an independent quadrotor with an N-link cable-suspended point-mass payload. All agents share one MuJoCo scene but have no inter-agent contacts. State, controllers, and labels are per-agent; one unified ctrl buffer is written once per step.

class udaan.models.mujoco.quadrotor_cspayload_fleet.QuadrotorCsPayloadFleet[source]

Bases: BaseModel

Multiple independent quadrotor-cable-payload agents in one MuJoCo scene.

Each agent keeps its own QuadrotorCsPayloadBase for controller/state bookkeeping; the fleet owns a single MuJoCo model containing N quads + N cables + N payloads.

Usage:

fleet = QuadrotorCsPayloadFleet(num_agents=2, render=True)
fleet[0]._payload_controller.setpoint = lambda t: (target, 0, 0)
fleet[1]._payload_controller.setpoint = lambda t: (target, 0, 0)
fleet.simulate(tf=8.0, payload_positions=[[1,1,0.5], [-1,-1,0.5]])
__init__(**kwargs)[source]
reset(**kwargs)[source]
simulate(tf, **kwargs)[source]

Run closed-loop sim. Each agent uses its own _payload_controller.

step(u)[source]

u is (4 * nQ,): stacked [thrust, Mx, My, Mz] per agent.