Skip to content

Commit 3e3a70d

Browse files
committed
Implemented Mellinger position control
1 parent a47717e commit 3e3a70d

File tree

1 file changed

+9
-19
lines changed

1 file changed

+9
-19
lines changed

crazyflow/sim/sim.py

+9-19
Original file line numberDiff line numberDiff line change
@@ -506,26 +506,16 @@ def step_state_controller(data: SimData) -> SimData:
506506
des_yaw = controls.state[..., [9]] # Keep (N, M, 1) shape for broadcasting
507507
dt = 1 / data.controls.state_freq
508508

509-
attitude, pos_err_i = state2attitude(
510-
states.pos, states.vel, states.quat, des_pos, des_vel, des_yaw, controls.pos_err_i, dt
509+
command_RPYT, pos_err_i = cntrl_mellinger_position(
510+
states.pos,
511+
states.quat,
512+
states.vel,
513+
states.ang_vel,
514+
controls.state,
515+
data.params,
516+
dt=1 / data.controls.state_freq,
517+
i_error=controls.pos_err_i,
511518
)
512-
# Bringing the command into the correct format
513-
command_RPYT = jnp.roll(attitude, -1, axis=-1) # bring into RPYT format
514-
command_RPYT = command_RPYT.at[..., -1].set(
515-
force2pwm(command_RPYT[..., -1], data.params)
516-
) # thrust (N) -> thrust (PWM)
517-
command_RPYT = command_RPYT.at[..., :-1].set(command_RPYT[..., :-1] * 180 / jnp.pi) # rad2deg
518-
519-
# command_RPYT, pos_err_i = cntrl_mellinger_position(
520-
# states.pos,
521-
# states.quat,
522-
# states.vel,
523-
# states.ang_vel,
524-
# controls.state,
525-
# data.params,
526-
# dt=1 / data.controls.state_freq,
527-
# i_error=controls.pos_err_i,
528-
# )
529519

530520
controls = leaf_replace(
531521
controls,

0 commit comments

Comments
 (0)