OFS Simulator3D Mod: Surge & Sway Fix - v1.6

If your measurements are correct, apply the following code in Simulator3D.cs, starting line 250.

		strokerMesh.GlobalRotate(Vector3.Right,
			Mathf.Deg2Rad(
				Mathf.Lerp(35.0f, -35.0f, pitch)
			)
		);

		strokerMesh.GlobalRotate(Vector3.Forward,
			Mathf.Deg2Rad(
				Mathf.Lerp(-30.0f, 30.0f, roll)
			)
		);

		strokerMesh.RotateObjectLocal(Vector3.Up, 
			Mathf.Deg2Rad(
				Mathf.Lerp(-120.0f, 120.0f, twist)
			)
		);

		strokerMesh.Translation = new Vector3(
			Mathf.Lerp(0.667f, -0.667f, sway),
			Mathf.Lerp(-1.0f, 1.0f, mainStroke),
			Mathf.Lerp(0.5f, -0.5f, surge)
		);
	}
}

About the twist, it varies according to the servo.

I measured mine but got different results.
up/down: -6cm to +6cm (12cm)
left/right: -4cm to +4cm (8cm)
forward/backward: +2.75cm to +2.75cm (5.5cm)
pitch: -28.5° to +28.5° (57°)
roll: -19° to 19° (28°)

Mine is the customized SR6 with metal bearing arms from FunOSR.
@Tempest May I ask what’s the roll and pitch range for a default SR6? Is it the same as the OSR2+?

This is how I set up the inverse Kinematics, as in the maths that’s going on inside the ESP32 to calculate the servo angles:

The design is based around a modified Stewart platform with six servos driving six arms, which connect to the receiver via six linkages. The arrangement gives a theoretical total movement range of 120mm in the up-down direction and 60mm in the left-right and forward-backward directions. The receiver can simultaneously also rotate in roll and pitch by approximately ±30 degrees.

So your values are about right. It will vary a bit because there’s variation between different models of servo.

1 Like

Update: V1.6

  • Changed Pitch and Roll of the model to 30° to better match an actual SR6. (Previously 45°)
1 Like

Dunno if it hasn’t processed yet but I can’t see the update, still shows the last release being v1.5

should now be publised

1 Like

Just found out that the angles are different for SR6 and OSR2+.

My OSR2+ with Khrull’s firmware:
Pitch: -25° to 25° (50°)
Roll: -29° to 29° (58°)

I think there might need a way to switch between the two device.

Sure about that? As you asked Tempest if they were the same which they didn’t say yes to.