03 / 06 Robotics · MATLAB · Simulation

Automated Plate
Cleaning Robot
using ABB IRB 120

Overview

Background &
Objective

The automation of repetitive household chores represents a natural evolution in robotics. Dishwashing, one of the most monotonous domestic tasks, demands precision, consistency, and adaptability, qualities that industrial robotic arms are well suited to replicate. This project harnesses the ABB IRB 120, a compact yet highly capable 6-DOF industrial manipulator, to simulate an intelligent plate-cleaning system entirely within a virtual MATLAB environment.

Unlike conventional dishwashers that rely on pressurized water jets, this robotic system applies targeted motion intelligence mimicking the deliberate, circular scrubbing patterns of human dishwashing. Using numerical inverse kinematics and a Proportional-Derivative (PD) controller, the arm computes precise joint configurations for every point along a spiral cleaning trajectory, ensuring complete surface coverage of each plate. Plates are placed at random positions within a safety-bounded workspace, and the robot navigates between them using smooth cubic polynomial transition paths.

The entire simulation was developed and validated using MATLAB Live Script, which combines executable code, real-time 3D visualizations, and analytical derivations in a single interactive document. The system successfully demonstrated collision-free multi-plate cleaning in simulation laying the groundwork for a future physical deployment.

The plate cleaning robot is designed to perform precise dishwashing tasks using an ABB IRB 120 robotic arm. The system relies on numerical inverse kinematics, a Proportional Derivative (PD) controller, spiral trajectory generation, and smooth transition planning between plates. Here's how it all comes together. Techniques used in this implementation: 1. Workspace Definition and Plate Position Generation 2. Inverse Kinematics and Control 3. Spiral Cleaning Trajectory 4. PD Controller for Joint Motion 5. Transition Trajectory Between Plates

  • Year2025
  • RoleSolo Project · Full Implementation
  • RobotABB IRB 120 · 6-DOF Industrial Arm
  • SoftwareMATLAB · MATLAB Live Script
  • ControlPD Controller · Numerical IK
  • OutputSimulated Spiral Cleaning Paths
  • InstituteNMAM Institute of Technology, NITTE
MATLAB Live Script
ABB IRB 120 Simulation
X: 0.0 → 0.32 m Y: −0.38 → 0.32 m
6-DOF
ABB IRB 120
55pts
Spiral Waypoints
3turns
Cleaning Passes
PDctrl
Joint Controller
Process

How it
was built

01
Problem
Dishwashing is repetitive, time-consuming, and physically demanding. The challenge was to simulate an autonomous robotic system capable of detecting plates at random positions and replicating the precise, deliberate circular scrubbing motion of a human without physical fabrication, using only MATLAB simulation.
02
Approach
Plates were placed randomly in a bounded workspace using a minimum-separation constraint. A spiral trajectory with 55 waypoints across 3 turns was generated per plate. Numerical inverse kinematics resolved joint angles at each waypoint. A PD controller (Kp = 20, Kd = 0.1) governed smooth joint motion. Cubic polynomial paths handled transitions between plates.
03
Results
The simulation successfully cleaned all plates sequentially without collisions. Spiral paths provided complete surface coverage. Transition trajectories were smooth and efficient. MATLAB 3D visualizations confirmed accurate trajectory following and validated the inverse kinematics and PD control performance.
Trajectory Design

Spiral &
Transition Paths

Each plate is cleaned using an outward Archimedean spiral starting at the plate center and expanding to a maximum radius of 145 mm over three complete turns. This mirrors the natural human motion of scrubbing outward from the centre of a plate.

The 55 trajectory waypoints are evenly distributed across the angular sweep, ensuring uniform coverage. The z-height is maintained at 50 mm above the plate surface throughout the cleaning pass. Between plates, a cubic polynomial trajectory provides a smooth, jerk-minimized transition arc that lifts the arm safely above the workspace plane before descending to the next plate centre.

θ = linspace(0, 2π × nturns, npoints)
ri = linspace(0, r, npoints)
xi = ri × cos(θi) + xplate
yi = ri × sin(θi) + yplate
p(t) = a₃t³ + a₂t² + a₁t + a₀  [transition]
3D spiral trajectory diagram
System Design

System
Architecture

The pipeline begins with the workspace setup: plate positions are randomly generated within a defined rectangular boundary, with a minimum separation constraint of 280 mm ensuring no overlaps, and a base-exclusion radius of 250 mm preventing the arm from colliding with its own mount.

For each plate, a 55-point spiral trajectory is computed in Cartesian space. These waypoints are fed into a numerical inverse kinematics solver, which resolves the 6 joint angles of the ABB IRB 120 at each step. A PD controller with proportional gain Kp = 20 and derivative gain Kd = 0.1 which then drives each joint smoothly toward its target angle with a timestep of 10 ms.

After completing each spiral pass, the shortest Euclidean distance to the next unvisited plate is computed, and a cubic polynomial trajectory arcs the end-effector safely through the air before beginning the next cleaning sequence.

01
Workspace Initialisation
Random plate positions · min separation 280 mm · base exclusion 250 mm
02
Spiral Trajectory Generation
55 pts · 3 turns · r = 145 mm · zabove = 50 mm
03
Numerical Inverse Kinematics
Find q such that T(q) = Td at each waypoint
04
PD Joint Control
u = Kp·e + Kd·(de/dt) · Kp=20 · Kd=0.1 · dt=10 ms
05
Nearest Plate Selection
Euclidean distance · shortest-path greedy selection
06
Cubic Polynomial Transition
p(t) = a₃t³ + a₂t² + a₁t + a₀ · collision-free arc
Tech Stack

Built with

MATLAB MATLAB Live Script ABB IRB 120 Numerical Inverse Kinematics PD Controller Spiral Trajectory Cubic Polynomial Path Robotics Toolbox 3D Visualisation Motion Planning
Inverse Kinematics
Numerical IK solves joint angles at each of the 55 spiral waypoints per plate. The goal: find q such that T(q) = Td mapping the desired Cartesian pose to the robot's 6-joint angle vector for the ABB IRB 120.
Spiral Cleaning Coverage
Three full turns of an Archimedean spiral ensure complete plate surface coverage from centre outward. The 145 mm max radius matches a standard dinner plate. Z-clearance of 50 mm keeps the end-effector at cleaning height throughout.
PD Motion Control
Each joint is driven by a PD controller with Kp = 20 and Kd = 0.1 at a 10 ms timestep. The derivative term actively damps oscillations, resulting in smooth, stable trajectories with no overshoot at joint limits.
Transition Planning
Between plates, a cubic polynomial computes a smooth arc that lifts the arm safely above the workspace. A greedy nearest-neighbour algorithm determines the optimal visit sequence, minimizing total travel distance across all plates.
Source Code & Report
See it
on GitHub
View on GitHub ← All Projects