Robot Simulation Design

New for 2026. Draft notes - work in progress.

Physical simulation models are a tool for exploring the dynamics and movement of robot designs. This is a broad topic in robotics which includes mechanical design, kinematics, dynamics, contact physics, and the mathematics of physics simulation.

In this class, we are not trying to precisely simulate a final machine, we are using simulation as a tool to evaluate a concept before committing to a physical design and fabrication process. A simplified simulation model can help identify the core kinematics and control strategy before beginning detailed design.

These notes are a summary introduction to the general principles of rigid body mechanics involving in designing a simulation model. These principles apply to any rigid-body simulator, but the implemention within a specific system varies. Please see Webots Modeling for an overview of using Webots to implement a simulation model.

All rough notes for now, this is work in progress.

Simulation Scope

  • What is the purpose of the simulation?

  • Ways to simplify a model:

    • planarize

    • constrain

    • geometric primitives

    • ignore appearance

Rigid Body Mechanics

  1. Basic rigid body concepts

  2. Out of scope: elastic and deformable bodies, continuum materials

  3. Body mass and inertia

  4. Freedoms and joints: free, hinge, slider, ball

  5. Serial-chain open-tree kinematics as a graph

    • parent bodies

    • children

    • closing loops (e.g. for linkages) required additional constraint

Coordinate Systems

  • selection of neutral reference pose

  • root body convention: X forward, Y left, Z up

  • child coordinates may follow mechanical logic

  • translation is defined by a direction vector in the parent frame

  • hinge rotation is defined by an axis including a direction vector and a location

  • rotation sign follows right-hand-rule

Kinematic Description

Rough notes for now.

  1. serial-chain open trees

Actuation

  1. Actuator types

  2. Simulated actuators have no geometry or mass

  3. Choosing to include actuator mass and volume

  4. Simulated control models

Idealized Actuators

A torque source is an idealized actuator that produces a torque \(\tau\) at any rotational velocity. (Similarly a force source produces a force \(F\) at any linear velocity.) If attached to a fixed load, it will accelerate at a uniform rate to infinite velocity.

A velocity source is an idealized actuator which moves at a constant angular rate \(\omega\) or linear rate \(V\) by producing any needed force or torque. Given a step input for desired velocity, it will produce infinite torques for a finite load.

A position source is an idealized actuator which follows a prescribed position trajectory, perfectly resisting external forces and load inertia.

Ungeared DC Motors

Nothing is ideal in the real world, but carefully engineered physical actuators can sufficiently approach the ideal to simplify their control for specific operating ranges. A quality torque motor can have very nearly a purely linear relationship between applied electrical current and output torque for low velocities. A CNC machine tool uses stiff ballscrew drives and high-frequency servo control to approximate a position source under typical cutting loads.

For real DC motors, the chief limitation is that the winding also acts as a generator to produce a speed-dependent voltage called the ‘back EMF’ (back electro-motive force). At zero speed, back EMF is zero and the motor acts much like a torque source. As it speeds up, back EMF increases and counters the applied voltage, limiting the current and hence the output torque. At full unloaded speed the torque drops to zero.

A common simplified model of a DC motor is a torque motor limited by back EMF. In this simplified model, the operating curve of the motor is a straight line in torque vs velocity from stall torque down to unloaded speed. The maximum output power of the motor occurs at the midpoint of both speed and torque.

\[ \begin{align}\begin{aligned}\tau = K_t I\\V_{emf} = K_e \omega\\V = V_{in} - K_e \omega\\V = I R\end{aligned}\end{align} \]

The motor torque \(\tau\) is linearly proportional to the winding current \(I\) by the torque constant \(K_t\). The back EMF of the winding \(V_{emf}\) is proportional to the rotation speed \(\omega\) by the speed constant \(K_e\). In SI units of Amperes, Newton-meters, and radians/sec, \(K_t\) is numerically equal to \(K_e\) and is simply called the winding constant.

The effective winding voltage \(V\) is the applied voltage \(V_{in}\) minus the back EMF. The winding current \(I\) obeys Ohm’s Law using the winding resistance \(R\) and the effective voltage \(V\).

At the peak unloaded speed, the input voltage is matched by the back EMF and no current is flowing, hence the output torque is zero.

When not moving (i.e. at stall), the motor winding acts like a pure resistance and the stall current \(I_{stall}\) is limited only by the applied voltage \(V_{stall}\) and the winding resistance \(R\). Please note than many motors will quickly overheat in this state.

This simplified model ignores other effects which affect real motors:

  • winding coil inductance which limits the rate of current change

  • position-dependent torque variation called cogging resulting from magnet and winding geometry

  • rotor inertia

Contact and Collision