@@ -139,6 +139,7 @@ def attitude2force_torque(
139139 vel : Array ,
140140 ang_vel : Array ,
141141 cmd : Array ,
142+ prev_ang_vel : Array | None = None ,
142143 ctrl_errors : tuple [Array , ...] | None = None ,
143144 ctrl_info : tuple [Array , ...] | None = None ,
144145 ctrl_freq : int = 500 ,
@@ -209,18 +210,13 @@ def attitude2force_torque(
209210 # Warning: We assume zero desired angular velocity
210211 ang_vel_des = xp .zeros_like (ang_vel )
211212 prev_ang_vel_des = xp .zeros_like (ang_vel )
212- ew = ang_vel_des - ang_vel # if the setpoint is ever != 0 => change sign of setpoint[1]
213+ ew = ang_vel_des - ang_vel
213214 # WARNING: if the setpoint is ever != 0 => change sign of ew.y!
214215
215- # ang_vel_d_err likely dampens the system because of measurement noise. This term needs to be
216- # tuned to the sensors of the drone. Since we don't have similar noise properties in the sim, we
217- # set this term to zero. We still keep the calculation in here for completeness.
218- # prev_ang_vel = ang_vel if ctrl_info is None else ctrl_info[0]
219- # Disable the ang_vel_d_err term by setting prev_ang_vel to ang_vel. The other two terms are
220- # already zero.
221- prev_ang_vel = ang_vel
216+ # l.259 ff [err_d_rpy]
217+ prev_ang_vel = xp .zeros_like (ang_vel ) if prev_ang_vel is None else prev_ang_vel
222218 ang_vel_d_err = ((ang_vel_des - prev_ang_vel_des ) - (ang_vel - prev_ang_vel )) / dt
223- # # l.281: No err_d_yaw
219+ # l.281: No err_d_yaw
224220 ang_vel_d_err = xpx .at (ang_vel_d_err )[..., 2 ].set (0 )
225221
226222 # l. 268 ff Integral Error
0 commit comments