Skip to content

Commit 7cff4fc

Browse files
committed
Add dynamic dry friction threshold
1 parent a1d0eab commit 7cff4fc

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

robot_payload_id/data/data_matrix_numeric.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -287,9 +287,14 @@ def extract_numeric_data_matrix_autodiff(
287287
if add_viscous_friction:
288288
ad_torques += viscous_frictions_ad * joint_data.joint_velocities[i]
289289
if add_dynamic_dry_friction:
290-
ad_torques += dynamic_dry_frictions_ad * np.sign(
290+
dynamic_dry_friction_torque = dynamic_dry_frictions_ad * np.sign(
291291
joint_data.joint_velocities[i]
292292
)
293+
# Theshold to avoid numerical issues
294+
dynamic_dry_friction_torque[
295+
np.abs(joint_data.joint_velocities[i]) < 0.001
296+
] = 0.0
297+
ad_torques += dynamic_dry_friction_torque
293298

294299
# Differentiate w.r.t. parameters
295300
ad_torques_derivative = np.vstack(

0 commit comments

Comments
 (0)