Dynamics: The Forces and Why Motion Occurs

Dynamics is the branch of mechanics that deals with the effect that forces have on the motion of objects. In engineering, particularly in computer engineering, mechatronics, and robotics, understanding dynamics is crucial for designing systems that interact with the physical world. From autonomous vehicles to robotic manipulators, dynamics principles govern how machines move and respond to forces.

1. Newton’s Laws of Motion in Engineering

Newton’s three laws form the foundation of classical mechanics and are essential for understanding how engineered systems behave under various forces.

1.1 First Law: The Law of Inertia

Statement: An object at rest stays at rest, and an object in motion continues in motion with the same speed and in the same direction unless acted upon by an unbalanced external force.

Engineering Application: In computer-controlled systems, this law explains why motors must overcome inertia to start movement. For instance, a robotic arm at rest requires a startup torque to begin motion, and once moving, it will continue until braking forces are applied.

1.2 Second Law: F = ma

Statement: The acceleration of an object is directly proportional to the net force acting on the object and inversely proportional to its mass.

Mathematical Form: ΣF = ma, where ΣF is the vector sum of all forces, m is mass, and a is acceleration.

Engineering Application: This law is critical in motion control algorithms. When programming a drone’s flight controller, engineers must calculate the thrust force needed to achieve desired acceleration based on the drone’s mass and payload.

1.3 Third Law: Action-Reaction

Statement: For every action, there is an equal and opposite reaction.

Engineering Application: In robotics, when a robotic gripper exerts force on an object, the object exerts an equal and opposite force on the gripper. This principle is crucial for force feedback sensors and haptic systems.

2. Force Analysis and Free Body Diagrams

Free body diagrams (FBDs) are essential tools for visualizing and analyzing forces acting on an object. In engineering design, FBDs help identify all forces and calculate net forces for motion prediction.

2.1 Steps to Create a Free Body Diagram

  1. Isolate the object of interest from its surroundings
  2. Represent the object as a point or simplified shape
  3. Draw all external forces acting on the object as vectors
  4. Label each force with its magnitude and direction
  5. Establish a coordinate system for analysis

2.2 Common Forces in Engineering Systems

Force TypeSymbolDirectionEngineering Example
WeightW or mgDownward (toward Earth’s center)Payload on a drone
Normal ForceN or FNPerpendicular to contact surfaceRobot wheel on ground
Frictionf or FfOpposite to motion directionMotor shaft bearing resistance
TensionTAlong cable/ropeCable-driven robotic system
Applied ForceFappDirection of applicationMotor thrust, actuator force
Air ResistanceFdOpposite to velocityDrag on autonomous vehicle

3. Friction, Tension, and Normal Forces

3.1 Friction Forces

Friction is a force that opposes motion between surfaces in contact. Understanding friction is critical in robotics for grip control, motion planning, and energy efficiency.

Static Friction (fs): Prevents objects from starting to move. Maximum static friction: fs,max = μsN, where μs is the coefficient of static friction.

Kinetic Friction (fk): Acts on moving objects. fk = μkN, where μk is the coefficient of kinetic friction (typically μk < μs).

3.2 Normal Forces

The normal force is the perpendicular contact force between surfaces. It adjusts to prevent objects from penetrating surfaces and is crucial for calculating friction forces.

3.3 Tension Forces

Tension is the pulling force transmitted through cables, ropes, or strings. In cable-driven robots and pulley systems, tension forces enable force transmission over distances.

4. Dynamics in Robotics and Mechatronics

Modern robotic systems rely heavily on dynamics principles for motion control, trajectory planning, and force interaction with the environment.

4.1 Robotic Manipulator Dynamics

Robotic arms must account for multiple forces: gravitational loads, inertial forces during acceleration, joint friction, and payload forces. The equations of motion for multi-link robots involve complex dynamics equations derived from Lagrangian or Newton-Euler formulations.

4.2 Mobile Robot Dynamics

Wheeled and tracked robots must overcome friction, navigate slopes, and handle dynamic obstacles. The traction force from wheels must exceed resistance forces for movement to occur.

4.3 Aerial Vehicle Dynamics

Drones and UAVs balance thrust forces, gravitational weight, air resistance, and control torques. The dynamics involve six degrees of freedom (three translational, three rotational) requiring sophisticated control algorithms.

5. Worked Examples with Step-by-Step Solutions

Example 1: Robot on Horizontal Surface

Problem: A mobile robot with mass 15 kg moves on a horizontal floor. The coefficient of kinetic friction is 0.25. If a motor applies a horizontal force of 50 N, what is the robot’s acceleration?

Solution:

Step 1: Draw free body diagram identifying all forces:

  • Weight: W = mg = 15 kg × 9.8 m/s² = 147 N (downward)
  • Normal force: N (upward)
  • Applied force: Fapp = 50 N (horizontal)
  • Friction: fk (opposite to motion)

Step 2: Apply equilibrium in vertical direction (no vertical acceleration):
ΣFy = 0
N – W = 0
N = 147 N

Step 3: Calculate friction force:
fk = μkN = 0.25 × 147 N = 36.75 N

Step 4: Apply Newton’s second law in horizontal direction:
ΣFx = ma
Fapp – fk = ma
50 N – 36.75 N = 15 kg × a
a = 13.25/15 = 0.883 m/s²

Answer: The robot accelerates at 0.883 m/s²

Example 2: Drone Vertical Acceleration

Problem: A quadcopter drone has a total mass of 2.5 kg (including payload). What total thrust force must the four rotors produce for the drone to accelerate upward at 3 m/s²?

Solution:

Step 1: Identify forces:

  • Weight: W = mg = 2.5 kg × 9.8 m/s² = 24.5 N (downward)
  • Thrust: T (upward)

Step 2: Apply Newton’s second law (upward is positive):
ΣF = ma
T – W = ma
T = ma + W
T = 2.5 kg × 3 m/s² + 24.5 N
T = 7.5 N + 24.5 N = 32 N

Answer: The rotors must produce a total thrust of 32 N

Example 3: Robot Arm Lifting Load

Problem: A vertical cable in a robotic crane system lifts a 50 kg component with an upward acceleration of 2 m/s². What is the tension in the cable?

Solution:

Step 1: Identify forces on the component:

  • Weight: W = 50 kg × 9.8 m/s² = 490 N (downward)
  • Tension: T (upward)

Step 2: Apply Newton’s second law (upward positive):
ΣF = ma
T – W = ma
T = m(a + g)
T = 50 kg × (2 m/s² + 9.8 m/s²)
T = 50 kg × 11.8 m/s² = 590 N

Answer: The cable tension is 590 N

Example 4: Robot on Inclined Surface

Problem: A 20 kg tracked robot climbs a 30° incline. The coefficient of kinetic friction is 0.15. What force parallel to the incline must the motors provide for the robot to move up at constant velocity?

Solution:

Step 1: Choose coordinate system aligned with incline (x-axis parallel to incline, y-axis perpendicular)

Step 2: Resolve weight into components:
Wx = mg sin(30°) = 20 kg × 9.8 m/s² × 0.5 = 98 N (down the incline)
Wy = mg cos(30°) = 20 kg × 9.8 m/s² × 0.866 = 169.7 N (into incline)

Step 3: Find normal force (perpendicular equilibrium):
N = Wy = 169.7 N

Step 4: Calculate friction:
fk = μkN = 0.15 × 169.7 N = 25.5 N (down the incline)

Step 5: For constant velocity, acceleration = 0:
ΣFx = 0
Fapp – Wx – fk = 0
Fapp = 98 N + 25.5 N = 123.5 N

Answer: The motors must provide 123.5 N parallel to the incline

Example 5: Two Connected Robots

Problem: Two robots are connected by a light cable. Robot A (mass 10 kg) pulls robot B (mass 15 kg) across a frictionless horizontal surface with a force of 75 N. Find: (a) the acceleration of the system, and (b) the tension in the connecting cable.

Solution:

Part (a) – System acceleration:

Step 1: Consider both robots as one system:
Total mass = mA + mB = 10 kg + 15 kg = 25 kg

Step 2: Apply Newton’s second law to system:
ΣF = (mA + mB)a
75 N = 25 kg × a
a = 3 m/s²

Part (b) – Cable tension:

Step 3: Isolate robot B and apply Newton’s second law:
ΣF = mBa
T = 15 kg × 3 m/s² = 45 N

Answer: (a) System accelerates at 3 m/s², (b) Cable tension is 45 N

Example 6: Circular Motion – Robotic Centrifuge

Problem: A sample holder in a laboratory centrifuge robot rotates in a horizontal circle of radius 0.3 m. The 0.5 kg sample completes one revolution every 0.8 seconds. What centripetal force is required?

Solution:

Step 1: Calculate angular velocity:
ω = 2π/T = 2π/0.8 s = 7.85 rad/s

Step 2: Calculate tangential velocity:
v = ωr = 7.85 rad/s × 0.3 m = 2.36 m/s

Step 3: Calculate centripetal acceleration:
ac = v²/r = (2.36 m/s)²/0.3 m = 18.5 m/s²

Step 4: Calculate centripetal force:
Fc = mac = 0.5 kg × 18.5 m/s² = 9.25 N

Answer: The required centripetal force is 9.25 N

6. Programming Simulations for Dynamics

Computer simulations allow engineers to model dynamic systems, predict behavior, and optimize control algorithms before physical implementation.

6.1 Simple Motion Simulation with Friction

import numpy as np
import matplotlib.pyplot as plt

# Simulation parameters
dt = 0.01  # time step (seconds)
t_max = 10  # simulation duration (seconds)
time = np.arange(0, t_max, dt)

# Robot parameters
mass = 15.0  # kg
mu_k = 0.25  # coefficient of kinetic friction
F_applied = 50.0  # applied force (N)
g = 9.8  # gravity (m/s^2)

# Calculate friction force
N = mass * g  # normal force
f_friction = mu_k * N

# Net force and acceleration
F_net = F_applied - f_friction
acceleration = F_net / mass

# Initialize arrays
velocity = np.zeros(len(time))
position = np.zeros(len(time))

# Numerical integration using Euler method
for i in range(1, len(time)):
    velocity[i] = velocity[i-1] + acceleration * dt
    position[i] = position[i-1] + velocity[i] * dt

# Plotting results
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(10, 8))

ax1.plot(time, position)
ax1.set_ylabel('Position (m)')
ax1.set_title('Robot Motion Simulation with Friction')
ax1.grid(True)

ax2.plot(time, velocity)
ax2.set_ylabel('Velocity (m/s)')
ax2.grid(True)

ax3.plot(time, [acceleration]*len(time))
ax3.set_ylabel('Acceleration (m/s²)')
ax3.set_xlabel('Time (s)')
ax3.grid(True)

plt.tight_layout()
plt.show()

print(f"Net Force: {F_net:.2f} N")
print(f"Acceleration: {acceleration:.2f} m/s²")
print(f"Final Velocity: {velocity[-1]:.2f} m/s")
print(f"Final Position: {position[-1]:.2f} m")

6.2 Drone Vertical Motion Simulation

import numpy as np
import matplotlib.pyplot as plt

# Simulation parameters
dt = 0.01
t_max = 5
time = np.arange(0, t_max, dt)

# Drone parameters
mass = 2.5  # kg
g = 9.8  # m/s^2
thrust = 32.0  # N (from Example 2)

# Initialize arrays
altitude = np.zeros(len(time))
velocity = np.zeros(len(time))
acceleration = np.zeros(len(time))

# Simulation loop
for i in range(1, len(time)):
    # Net force and acceleration
    F_net = thrust - mass * g
    acceleration[i] = F_net / mass

    # Update velocity and position
    velocity[i] = velocity[i-1] + acceleration[i] * dt
    altitude[i] = altitude[i-1] + velocity[i] * dt

# Plotting
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(10, 8))

ax1.plot(time, altitude)
ax1.set_ylabel('Altitude (m)')
ax1.set_title('Drone Vertical Ascent Simulation')
ax1.grid(True)

ax2.plot(time, velocity)
ax2.set_ylabel('Velocity (m/s)')
ax2.grid(True)

ax3.plot(time, acceleration)
ax3.set_ylabel('Acceleration (m/s²)')
ax3.set_xlabel('Time (s)')
ax3.grid(True)

plt.tight_layout()
plt.show()

print(f"Final altitude: {altitude[-1]:.2f} m")
print(f"Final velocity: {velocity[-1]:.2f} m/s")

6.3 Robot on Incline Simulation

import numpy as np
import matplotlib.pyplot as plt

def simulate_robot_incline(mass, angle_deg, mu_k, F_applied, t_max=10, dt=0.01):
    """
    Simulate robot motion on an inclined plane.

    Parameters:
    - mass: robot mass (kg)
    - angle_deg: incline angle (degrees)
    - mu_k: coefficient of kinetic friction
    - F_applied: applied force parallel to incline (N)
    - t_max: simulation time (s)
    - dt: time step (s)
    """
    g = 9.8
    angle_rad = np.radians(angle_deg)
    time = np.arange(0, t_max, dt)

    # Force components
    W_parallel = mass * g * np.sin(angle_rad)
    W_perpendicular = mass * g * np.cos(angle_rad)
    N = W_perpendicular
    f_friction = mu_k * N

    # Net force and acceleration
    F_net = F_applied - W_parallel - f_friction
    acceleration = F_net / mass

    # Initialize arrays
    velocity = np.zeros(len(time))
    position = np.zeros(len(time))

    # Integration
    for i in range(1, len(time)):
        if velocity[i-1] < 0 and F_applied < W_parallel + f_friction:
            # Robot has stopped and won't move again
            velocity[i] = 0
            position[i] = position[i-1]
        else:
            velocity[i] = velocity[i-1] + acceleration * dt
            position[i] = position[i-1] + velocity[i] * dt

    # Plotting
    fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 6))

    ax1.plot(time, position)
    ax1.set_ylabel('Position along incline (m)')
    ax1.set_title(f'Robot on {angle_deg}° Incline')
    ax1.grid(True)

    ax2.plot(time, velocity)
    ax2.set_ylabel('Velocity (m/s)')
    ax2.set_xlabel('Time (s)')
    ax2.grid(True)

    plt.tight_layout()
    plt.show()

    return time, position, velocity, acceleration

# Run simulation with parameters from Example 4
time, pos, vel, acc = simulate_robot_incline(
    mass=20,
    angle_deg=30,
    mu_k=0.15,
    F_applied=123.5
)

print(f"Acceleration: {acc:.3f} m/s² (should be ~0 for constant velocity)")

6.4 Two-Body System Simulation

import numpy as np
import matplotlib.pyplot as plt

class TwoRobotSystem:
    def __init__(self, m1, m2, F_applied, mu_k=0):
        self.m1 = m1  # mass of robot A
        self.m2 = m2  # mass of robot B
        self.F_applied = F_applied
        self.mu_k = mu_k
        self.g = 9.8

    def calculate_dynamics(self):
        """Calculate acceleration and cable tension"""
        # System acceleration
        total_mass = self.m1 + self.m2
        self.acceleration = self.F_applied / total_mass

        # Cable tension (force on robot B)
        self.tension = self.m2 * self.acceleration

        return self.acceleration, self.tension

    def simulate(self, t_max=5, dt=0.01):
        """Run time-domain simulation"""
        time = np.arange(0, t_max, dt)

        # Calculate dynamics
        acc, tension = self.calculate_dynamics()

        # Initialize arrays
        velocity = np.zeros(len(time))
        position = np.zeros(len(time))

        # Integration
        for i in range(1, len(time)):
            velocity[i] = velocity[i-1] + acc * dt
            position[i] = position[i-1] + velocity[i] * dt

        return time, position, velocity

    def plot_results(self, time, position, velocity):
        """Plot simulation results"""
        fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 6))

        ax1.plot(time, position, 'b-', linewidth=2)
        ax1.set_ylabel('Position (m)')
        ax1.set_title('Two Connected Robots System')
        ax1.grid(True)

        ax2.plot(time, velocity, 'r-', linewidth=2)
        ax2.set_ylabel('Velocity (m/s)')
        ax2.set_xlabel('Time (s)')
        ax2.grid(True)

        plt.tight_layout()
        plt.show()

# Example from Example 5
system = TwoRobotSystem(m1=10, m2=15, F_applied=75)
acc, tension = system.calculate_dynamics()

print(f"System acceleration: {acc:.2f} m/s²")
print(f"Cable tension: {tension:.2f} N")

# Run simulation
time, pos, vel = system.simulate()
system.plot_results(time, pos, vel)

7. Real-World Case Studies

7.1 Autonomous Vehicle Braking System

Application: Self-driving cars must calculate stopping distances based on dynamics principles to ensure safe braking.

Dynamics Analysis:

  • Given: Vehicle mass = 1500 kg, initial velocity = 20 m/s (72 km/h), coefficient of friction (tire-road) = 0.7
  • Maximum braking force: fmax = μN = μmg = 0.7 × 1500 × 9.8 = 10,290 N
  • Maximum deceleration: a = fmax/m = 10,290/1500 = 6.86 m/s²
  • Stopping distance: Using v² = v₀² + 2as, where v = 0:
    s = -v₀²/(2a) = -(20)²/(2×(-6.86)) = 29.2 m
  • Stopping time: t = (v - v₀)/a = (0 - 20)/(-6.86) = 2.92 s

Engineering Impact: Autonomous vehicle control systems use these calculations in real-time to maintain safe following distances and execute emergency stops.

7.2 Quadcopter Drone Stability Control

Application: Commercial drones for package delivery must maintain stable flight under varying payload conditions.

Dynamics Challenge: A delivery drone's mass changes when it picks up or releases packages. The flight controller must adjust thrust dynamically.

Analysis:

  • Empty drone mass: 2.0 kg
  • Package mass: 1.5 kg
  • Hover thrust (empty): T₁ = m₁g = 2.0 × 9.8 = 19.6 N
  • Hover thrust (loaded): T₂ = (m₁ + m₂)g = 3.5 × 9.8 = 34.3 N
  • Thrust increase required: ΔT = 14.7 N (75% increase)

Control Strategy: The flight controller uses IMU (Inertial Measurement Unit) sensors to detect altitude changes and adjusts motor speeds via PWM signals to maintain desired altitude despite mass changes.

7.3 Industrial Robotic Arm Pick-and-Place

Application: Manufacturing robots must accurately manipulate objects of varying masses.

Scenario: A 6-DOF robotic arm moves a component from position A to position B in 2 seconds.

Dynamics Considerations:

PhaseForces InvolvedControl Requirement
Acceleration (0-0.5s)Inertial forces, gravity, joint torquesHigh torque to overcome inertia
Constant velocity (0.5-1.5s)Gravity compensationMaintain trajectory, overcome friction
Deceleration (1.5-2s)Braking torques, gravityPrecise position control

Example Calculation: For a 5 kg payload accelerated at 2 m/s²:

  • Force required (horizontal motion): F = ma = 5 kg × 2 m/s² = 10 N
  • Additional force for gravity: Fg = 5 kg × 9.8 m/s² = 49 N (vertical component)
  • Motor torque at joint (assuming 0.5m arm length): τ = F × r = 10 N × 0.5 m = 5 Nm

Engineering Solution: Modern robotic arms use force/torque sensors and model-based control to compensate for dynamic effects in real-time, ensuring smooth and accurate motion.

8. Practice Problems with Solutions

Problem 1: AGV Acceleration

Question: An Automated Guided Vehicle (AGV) with mass 200 kg accelerates from rest to 2 m/s in 4 seconds on a horizontal factory floor. If the coefficient of friction is 0.1, what driving force must the motors provide?

Solution:
Acceleration: a = Δv/Δt = 2 m/s / 4 s = 0.5 m/s²
Friction force: f = μmg = 0.1 × 200 × 9.8 = 196 N
Net force needed: Fnet = ma = 200 × 0.5 = 100 N
Applied force: Fapp = Fnet + f = 100 + 196 = 296 N

Problem 2: Elevator Robot System

Question: A robot in an elevator has mass 30 kg. The elevator accelerates upward at 1.5 m/s². What normal force does the elevator floor exert on the robot?

Solution:
Weight: W = mg = 30 × 9.8 = 294 N
Using Newton's second law (upward positive):
N - W = ma
N = ma + W = 30 × 1.5 + 294 = 45 + 294 = 339 N

Problem 3: Banked Turn for Autonomous Vehicle

Question: An autonomous car (mass 1200 kg) navigates a circular turn of radius 50 m at 15 m/s. What centripetal force is required?

Solution:
Centripetal acceleration: ac = v²/r = (15)²/50 = 4.5 m/s²
Centripetal force: Fc = mac = 1200 × 4.5 = 5400 N

Problem 4: Pulley System in Robot

Question: Two masses are connected by a cable over a frictionless pulley. Mass A (10 kg) hangs vertically, and mass B (15 kg) sits on a horizontal frictionless surface. When released, what is the system's acceleration?

Solution:
For mass A (downward positive): WA - T = mAa → 98 - T = 10a
For mass B (rightward positive): T = mBa → T = 15a
Substituting: 98 - 15a = 10a → 98 = 25a → a = 3.92 m/s²
Tension: T = 15 × 3.92 = 58.8 N

Problem 5: Drone Wind Resistance

Question: A drone (mass 3 kg) hovers in place against a horizontal wind force of 8 N. The drone tilts to angle θ from vertical to balance forces. What thrust magnitude is required, and what is the tilt angle?

Solution:
Weight: W = 3 × 9.8 = 29.4 N
For equilibrium:
Vertical: T cos(θ) = W → T cos(θ) = 29.4
Horizontal: T sin(θ) = 8
Dividing: tan(θ) = 8/29.4 = 0.272 → θ = 15.2°
Thrust: T = W/cos(θ) = 29.4/cos(15.2°) = 30.5 N

9. Comparison Tables

9.1 Static vs Kinetic Friction

PropertyStatic FrictionKinetic Friction
Occurs whenObject is stationaryObject is moving
Force equationfs ≤ μsNfk = μkN
Coefficient magnitudeLarger (μs > μk)Smaller
Force behaviorVariable (0 to max)Constant for given N
Robot applicationPrevents wheel slippageOpposes robot motion
Typical values0.5 - 1.50.3 - 1.0

9.2 Different Motion Scenarios

ScenarioNet ForceAccelerationVelocityExample
RestZeroZeroZeroParked robot
Constant velocityZeroZeroConstantRobot cruising
AcceleratingNon-zeroPositiveIncreasingRobot speeding up
DeceleratingOpposite to motionNegativeDecreasingRobot braking
Free fallWeight onlyg (9.8 m/s²)Increasing downwardDropped object

9.3 Force Characteristics in Robotic Systems

Force TypeControllableDirectionMagnitude RangeSensing Method
Motor thrustYesProgrammable0 to motor limitCurrent sensors
WeightNoDownwardmg (constant)Load cells
FrictionPartiallyOpposes motion0 to μNForce/torque sensors
Normal forceNoPerpendicular to surfaceAdjusts automaticallyPressure sensors
Air resistanceNoOpposes velocityProportional to v²Airspeed sensors

10. References

[1] R. C. Hibbeler, Engineering Mechanics: Dynamics, 14th ed. Upper Saddle River, NJ: Prentice Hall, 2016.

[2] J. L. Meriam and L. G. Kraige, Engineering Mechanics: Dynamics, 8th ed. Hoboken, NJ: Wiley, 2015.

[3] B. Siciliano, L. Sciavicco, L. Villani, and G. Oriolo, Robotics: Modelling, Planning and Control. London, UK: Springer, 2009.

[4] J. J. Craig, Introduction to Robotics: Mechanics and Control, 4th ed. Upper Saddle River, NJ: Pearson, 2018.

[5] M. W. Spong, S. Hutchinson, and M. Vidyasagar, Robot Modeling and Control, 2nd ed. Hoboken, NJ: Wiley, 2020.

[6] S. Thrun, W. Burgard, and D. Fox, Probabilistic Robotics. Cambridge, MA: MIT Press, 2005.

[7] R. Siegwart, I. R. Nourbakhsh, and D. Scaramuzza, Introduction to Autonomous Mobile Robots, 2nd ed. Cambridge, MA: MIT Press, 2011.

[8] IEEE Std 1872-2015, "IEEE Standard Ontologies for Robotics and Automation," IEEE Standards Association, 2015.

[9] P. Corke, Robotics, Vision and Control: Fundamental Algorithms in MATLAB, 2nd ed. Berlin, Germany: Springer, 2017.

[10] K. M. Lynch and F. C. Park, Modern Robotics: Mechanics, Planning, and Control. Cambridge, UK: Cambridge University Press, 2017.


Continue Your Physics Journey

Related Posts