# petercorke/robotics-toolbox-matlab architecture

> Architecture diagram of the GitHub repository petercorke/robotics-toolbox-matlab, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/petercorke/robotics-toolbox-matlab
- Repository: https://github.com/petercorke/robotics-toolbox-matlab

## Overview

The repository is the Robotics Toolbox for MATLAB: a MATLAB robotics library for serial-link manipulators and mobile robots. The principal manipulator workflow is to load or define a robot model, evaluate its kinematics or dynamics, and use trajectories and visualization to inspect motion. Distinct documented capabilities include mobile-robot planning, localization and mapping, plus Simulink vehicle and quadrotor models. The graph follows README-described capabilities and examples; most implementation files were not sampled, so unsourced internal call relationships are omitted.

Main entry points: [`models`](https://github.com/petercorke/robotics-toolbox-matlab/tree/master/models) (Robot models), [`@SerialLink/SerialLink.m`](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/SerialLink.m) (SerialLink robot), [`Vehicle.m`](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/Vehicle.m) (Mobile robot models), [`@SerialLink/fkine.m`](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/fkine.m) (Kinematics and IK)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_manipulator["Manipulator robotics"]
  node_robot_models["Robot models"]
  node_serial_link["SerialLink robot<br/>[SerialLink.m]"]
  node_kinematics["Kinematics and IK<br/>[fkine.m]"]
  node_dynamics["Manipulator dynamics<br/>[rne.m]"]
  node_trajectory["Trajectory generation<br/>[jtraj.m]"]
  node_robot_visualization["Robot visualization<br/>[plot3d.m]"]
end

subgraph group_mobile["Mobile robotics"]
  node_mobile_models["Mobile robot models<br/>[Vehicle.m]"]
  node_path_planning["Path planning<br/>[ReedsShepp.m]"]
  node_localization["Localization filters<br/>[ParticleFilter.m]"]
  node_mapping_slam["Mapping and SLAM<br/>[PoseGraph.m]"]
  node_sensors["Sensors"]
end

subgraph group_simulation["Simulation and control"]
  node_quadrotor_sim["Quadrotor simulation"]
  node_vehicle_sim["Vehicle simulation<br/>[nrotor_dynamics.m]"]
end

subgraph group_integration["Tools and hardware"]
  node_dh_factor["DH factorization<br/>[DHFactor.m]"]
  node_code_generator["Code generation<br/>[CodeGenerator.m]"]
  node_hardware_interfaces["Robot interfaces"]
end

node_matlab_user(("MATLAB user"))

node_matlab_user -->|"loads model"| node_robot_models
node_robot_models -->|"creates robot"| node_serial_link
node_matlab_user -->|"requests kinematics"| node_kinematics
node_serial_link -->|"evaluates pose"| node_kinematics
node_matlab_user -->|"requests dynamics"| node_dynamics
node_matlab_user -->|"generates motion"| node_trajectory
node_matlab_user -->|"animates motion"| node_robot_visualization
node_matlab_user -->|"creates vehicle"| node_mobile_models
node_matlab_user -->|"plans path"| node_path_planning
node_matlab_user -->|"runs filter"| node_localization
node_mobile_models -->|"provides motion model"| node_localization
node_matlab_user -->|"configures sensing"| node_sensors
node_matlab_user -->|"builds map"| node_mapping_slam
node_matlab_user -->|"runs simulation"| node_quadrotor_sim
node_matlab_user -->|"runs simulation"| node_vehicle_sim
node_matlab_user -->|"factors transforms"| node_dh_factor
node_matlab_user -->|"generates code"| node_code_generator
node_matlab_user -->|"controls hardware"| node_hardware_interfaces

click node_robot_models "https://github.com/petercorke/robotics-toolbox-matlab/tree/master/models"
click node_serial_link "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/SerialLink.m"
click node_kinematics "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/fkine.m"
click node_dynamics "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/rne.m"
click node_trajectory "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/jtraj.m"
click node_robot_visualization "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/plot3d.m"
click node_mobile_models "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/Vehicle.m"
click node_path_planning "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/ReedsShepp.m"
click node_localization "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/ParticleFilter.m"
click node_mapping_slam "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/PoseGraph.m"
click node_sensors "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/RangeBearingSensor.m"
click node_quadrotor_sim "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/simulink/quadrotor_dynamics.m"
click node_vehicle_sim "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/simulink/nrotor_dynamics.m"
click node_dh_factor "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/DHFactor.m"
click node_code_generator "https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40CodeGenerator/CodeGenerator.m"
click node_hardware_interfaces "https://github.com/petercorke/robotics-toolbox-matlab/tree/master/interfaces"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_robot_models,node_serial_link,node_kinematics,node_dynamics,node_trajectory,node_robot_visualization,node_matlab_user toneBlue
class node_mobile_models,node_path_planning,node_localization,node_mapping_slam,node_sensors toneAmber
class node_quadrotor_sim,node_vehicle_sim toneMint
class node_dh_factor,node_code_generator,node_hardware_interfaces toneRose
```

## Components

### Manipulator robotics

- [Robot models](https://github.com/petercorke/robotics-toolbox-matlab/tree/master/models): `models`
- [SerialLink robot](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/SerialLink.m): `@SerialLink/SerialLink.m`
- [Kinematics and IK](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/fkine.m): `@SerialLink/fkine.m`
- [Manipulator dynamics](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/rne.m): `@SerialLink/rne.m`
- [Trajectory generation](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/jtraj.m): `jtraj.m`
- [Robot visualization](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLink/plot3d.m): `@SerialLink/plot3d.m`

### Mobile robotics

- [Mobile robot models](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/Vehicle.m): `Vehicle.m`
- [Path planning](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/ReedsShepp.m): `ReedsShepp.m`
- [Localization filters](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/ParticleFilter.m): `ParticleFilter.m`
- [Mapping and SLAM](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/PoseGraph.m): `PoseGraph.m`
- [Sensors](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/RangeBearingSensor.m): `RangeBearingSensor.m`

### Simulation and control

- [Quadrotor simulation](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/simulink/quadrotor_dynamics.m): `simulink/quadrotor_dynamics.m`
- [Vehicle simulation](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/simulink/nrotor_dynamics.m): `simulink/nrotor_dynamics.m`

### Tools and hardware

- [DH factorization](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/DHFactor.m): `DHFactor.m`
- [Code generation](https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40CodeGenerator/CodeGenerator.m): `@CodeGenerator/CodeGenerator.m`
- [Robot interfaces](https://github.com/petercorke/robotics-toolbox-matlab/tree/master/interfaces): `interfaces`

### Other components

- **MATLAB user**

## Connections

- MATLAB user → Robot models: loads model (evidence: `README.md`)
- Robot models → SerialLink robot: creates robot (evidence: `README.md`)
- MATLAB user → Kinematics and IK: requests kinematics (evidence: `README.md`)
- SerialLink robot → Kinematics and IK: evaluates pose (evidence: `README.md`)
- MATLAB user → Manipulator dynamics: requests dynamics (evidence: `README.md`)
- MATLAB user → Trajectory generation: generates motion (evidence: `README.md`)
- MATLAB user → Robot visualization: animates motion (evidence: `README.md`)
- MATLAB user → Mobile robot models: creates vehicle (evidence: `README.md`)
- MATLAB user → Path planning: plans path (evidence: `README.md`)
- MATLAB user → Localization filters: runs filter (evidence: `README.md`)
- Mobile robot models → Localization filters: provides motion model (evidence: `README.md`)
- MATLAB user → Sensors: configures sensing (evidence: `README.md`)
- MATLAB user → Mapping and SLAM: builds map (evidence: `README.md`)
- MATLAB user → Quadrotor simulation: runs simulation (evidence: `README.md`)
- MATLAB user → Vehicle simulation: runs simulation (evidence: `README.md`)
- MATLAB user → DH factorization: factors transforms (evidence: `README.md`)
- MATLAB user → Code generation: generates code (evidence: `README.md`)
- MATLAB user → Robot interfaces: controls hardware (evidence: `README.md`)
