← Robot workspaceSO-101 CLASSROOM

PHYSICS MODEL

What the simulation models

The arm and objects respond to gravity, motor torque, friction, and contact forces. The parameters come from published models. They have not yet been measured on this classroom robot.

Try a load comparison

  1. In Objects, choose Load gripper load test. The scene starts paused with a 50 g block between the jaws.
  2. Choose Run simulation. Watch the block as the arm grips, lifts, turns its wrist, and releases.
  3. Change the block's mass, choose Apply & reset scene, then run again. Keep the other properties the same.
  4. Compare motion and the peak joint torque readout. If the arm cannot reach a target, inspect Check for tracking and torque warnings.

This is a comparison experiment, not a payload specification. The starting block is already between the jaws; this example does not plan a pickup from the table. A block can slip, fall, or remain resting on a jaw after it opens.

Objects

Drag an object across the table. Shift-drag changes its height, and Escape cancels. Placement pauses physics, clears that object’s velocity, and places it upright at its configured rotation. Other objects and the arm keep their current state. The new starting position is saved with the project; resume physics to release the object under gravity.

Add up to 12 blocks, spheres, or cylinders. Set mass in grams (1–10,000 g), dimensions in millimeters (5–150 mm), position, rotation about the vertical axis, color, and friction coefficient (0–2). Objects are uniform rigid bodies; their dimensions and mass determine their inertia.

Objects collide with each other, the table, and the robot's contact shapes. A grasp is held by contact forces; the application never attaches an object to the gripper. Changing properties resets the scene. Project exports include object properties and the starting arm pose.

The table uses friction 0.8; robot contact surfaces use 1.0. For a contact, the sliding coefficient is the geometric mean of the two surfaces' coefficients. Torsional and rolling friction are approximate. These values describe this model, not measured materials.

Robot and motor parameters

Parameter Model value or source
Link transforms, mass, inertia The Robot Studio SO-101 new-calibration MJCF
Contact shapes MuJoCo Menagerie SO-101; simplified shapes and gripper mesh pieces
Gravity 9.81 m/s² downward
Integration step 0.002 seconds
Actuator torque limit ±2.94 N·m per joint
Position / velocity gains 998.22 / 2.731
Joint damping / friction loss / armature 0.60 / 0.052 / 0.028, in MuJoCo SI units
Target rate limit 15°/s during sequence playback. Manual dragging and sliders send targets immediately; motor dynamics still apply.
Gripper convention 0–100% maps linearly across the model's −10–100° jaw range

The servo parameters are published estimates, originally adapted from another STS3215 project. The torque limit is not a measured continuous rating. The base is fixed to the table and has an added approximate collision box. Contact between the adjacent base and shoulder collision envelopes is excluded because those simplified shapes overlap at the bearing. Base contact with objects and other links remains enabled. Camera hardware is excluded.

What remains approximate

Visible CAD surfaces are more detailed than the contact shapes. The model does not include printed-part flexibility, gear backlash, motor heating, supply-voltage effects, or a measured servo control response. Contact compliance and friction are estimates. The fixed base assumes the physical arm is securely mounted.

Agreement with a real arm requires measuring joint reference positions, motion under known loads, slip, and stopping behavior. No physical arm was connected during development. Simulation results cannot establish the arm's payload rating or certify a real movement.

The physical controller does not use simulated objects as an obstacle map. A teacher must check the actual workspace before running a saved sequence.

Checks performed

Automated checks compare visual and physical geometry, free fall against gravitational acceleration, equal-force acceleration for different masses, settling on the table, a contact-held lift and release, motor saturation under an excessive load, and repeatable scene resets. These check implementation consistency; they do not replace comparison with hardware.

Sources

The physics engine runs in a separate browser worker. Python records movement targets; it does not read simulated forces or object positions during program execution.