udaan.models.mujoco package¶
Submodules¶
Module contents¶
MuJoCo physics backend for Udaan.
Requires mujoco package. Install with: pip install udaan
- class udaan.models.mujoco.MujocoModel[source]¶
Bases:
object- add_arrow_at(p, R, s, label='', color=None)[source]¶
Visual markers not yet supported with built-in viewer.
- class udaan.models.mujoco.MultiQuadRigidbody[source]¶
Bases:
BaseModelMulti-quadrotor rigid-body payload MuJoCo model.
4 quadrotors carrying a rigid-body payload connected via cables. Outer loop: position-level thrust vectors (3 per quad). Inner loop: geometric attitude controller converts to wrench.
- class udaan.models.mujoco.MultiQuadrotorCSPointmass[source]¶
Bases:
BaseModelMulti-quadrotor with cable-suspended pointmass payload (MuJoCo).
- udaan.models.mujoco.Quadrotor¶
alias of
QuadrotorMujoco
- class udaan.models.mujoco.QuadrotorCsPayloadFleet[source]¶
Bases:
BaseModelMultiple 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]])
- class udaan.models.mujoco.QuadrotorFleet[source]¶
Bases:
BaseModelMultiple independent quadrotors in a single MuJoCo scene.
Each quadrotor has its own controllers and can optionally carry an added mass at an offset (for robustness testing).
Usage:
fleet = QuadrotorFleet(num_quadrotors=3, render=True) fleet[0].position_controller = MyController(...) # Add disturbance to quad 1: 0.25kg at [0.2, 0.2, -0.05] fleet = QuadrotorFleet( num_quadrotors=3, render=True, disturbances={ 1: {"mass": 0.25, "offset": [0.2, 0.2, -0.05]}, }, ) fleet.simulate(tf=10, position=np.array([0, 0, 1]))