Vintage Machine Works

Industrial Robot Arm

Multi-machine coordination — arm joints, conveyor belt, and vision system.

This case study is a placeholder. Full content coming soon.

Overview

A pick-and-place robot cell composed of three cooperating machines: a 6-axis robot arm, a conveyor belt, and a vision system. Each machine is an independent BaseMachine instance managed by a single defineConfig setup file. Config-driven per-axis joint limits allow the same RobotArm class to be reused across multiple axes.

What this covers:

  • defineConfig with per-machine config
  • Reusing one machine class across multiple instances
  • Lifecycle hooks for homing sequences
  • Coordinating machines from external application logic
  • Config-driven safety limits validated at startup

Machine design

Full walkthrough coming soon.


Setup file

import { defineConfig } from "@vintage/core"

export default defineConfig({
	conveyor: { class: ConveyorBelt, config: { speed: 0.3 } },
	"arm-joint-1": { class: RobotAxis, config: { axis: 1, maxAngle: 170 } },
	"arm-joint-2": { class: RobotAxis, config: { axis: 2, maxAngle: 120 } },
	vision: { class: VisionSystem },
})

Key patterns

PatternWhere it applies
defineConfigDeclaring four machines in one file
static configSchemaPer-axis joint limits validated at startup
init() homing sequenceMoving axis to home position before accepting commands
External coordinationApplication code calls machine action APIs to sequence operations

On this page