<mujoco model="51-universal-joint">
<compiler angle="radian" autolimits="true"/>
<option timestep="0.0001" integrator="Euler" iterations="50" cone="elliptic" impratio="10" gravity="0 0 -9.81"/>
<size memory="64M"/>
<worldbody>
<body name="shaftA" pos="0 0 0.1"><joint name="j_A" type="hinge" axis="0 1 0" damping="0.002" frictionloss="0"/><inertial pos="0 -0.1241655067 0" mass="0.6231719736" fullinertia="0.001019970223 0.0003876510479 0.001028914977 0 0 0"/><body name="cross1" pos="0 0 0"><joint name="j_c1a" type="hinge" axis="1 0 0" damping="0.0005" frictionloss="0"/><inertial pos="0 0 0" mass="0.01852516134" fullinertia="0.000001424055019 0.000002525360587 0.000001663601138 0 0 -5.135234017e-7"/></body>
</body>
<body name="shaftB" pos="0 0 0.1"><joint name="j_B" type="hinge" axis="0 0.9063 -0.4226" damping="0.02" frictionloss="0"/><inertial pos="0 0.09379839286 -0.04373892322" mass="0.2703089022" fullinertia="0.0006442783017 0.0001420492373 0.0005280718642 0 0 0.000230023203"/></body>
<body name="frame" pos="0 0 0"></body>
<geom name="floor" type="plane" size="1 1 0.1" contype="0" conaffinity="0" group="1"/>
</worldbody>
<equality><connect name="eye1" body1="cross1" body2="shaftB" anchor="0 -0.008452 -0.018126" solref="0.002 1" solimp="0.95 0.99 0.001"/><connect name="eye2" body1="cross1" body2="shaftB" anchor="0 0.008452 0.018126" solref="0.002 1" solimp="0.95 0.99 0.001"/></equality>
<contact><exclude body1="cross1" body2="shaftB"/><exclude body1="cross1" body2="shaftB"/></contact>
<actuator><velocity name="drive" joint="j_A" kv="2" forcerange="-5 5"/></actuator>
</mujoco>
