Skip to content

Components & Subassemblies

Components are individual physical parts tracked with serial numbers.

Each component instance is one physical object:

  • BAT-2024-00142: One specific battery
  • JX-2024-00891: One specific Jetson Xavier
  • VLP16-00234: One specific LiDAR sensor

Components can only exist in one place at a time:

Component: VLP16-00234 (VLP-16 LiDAR)
Timeline:
Jan 1: Created in inventory
Jan 5: Installed in Robot "Alpha"
Feb 10: Removed from Alpha (moved to inventory)
Feb 15: Installed in Robot "Beta"
Mar 20: Removed from Beta (sent for calibration)
Apr 1: Installed in Robot "Gamma"

Each move creates history events on both robots showing component movement.

Components marked as “smart” (computers/controllers) can be designated as a robot’s primary controller:

  • Jetson Xavier
  • Raspberry Pi
  • Industrial PCs
  • PLCs

Purpose: Prepares for future telemetry integration - designates which computer reports robot metrics.

Botbit organizes components by type:

  • Compute (computers, controllers)
  • Sensors (LiDAR, cameras, IMUs)
  • Power (batteries, chargers)
  • Motors & Actuators
  • Communication (WiFi, cellular modules)
  • Custom

Subassemblies are groups of components that swap together as a unit.

Some robots have modular sections that get replaced as complete assemblies:

  • Navigation modules
  • Sensor arrays
  • Battery packs with management systems
  • Compute modules

Template (Subassembly Configuration):

"Navigation Module v2.0"
Components:
├── IMU Sensor
├── GPS Module
├── Wheel Encoders
└── Compute Module

Instance (Physical Assembly):

Serial Number: NAV-001
Type: Navigation Module v2.0
Installed In: Robot "Alpha"
Components:
├── IMU Sensor (SN: IMU-123)
├── GPS Module (SN: GPS-456)
├── Wheel Encoders (SN: ENC-789)
└── Compute Module (SN: CM-012)

When you swap a subassembly:

  1. Select robot
  2. Choose “Swap Subassembly”
  3. Pick replacement subassembly instance
  4. Botbit determines:
    • Same type? Conformant swap (no variant)
    • Different type? Non-conformant (creates variant)
  5. Updates robot configuration
  6. Logs change to history

Example:

  • Swap NAV-001 (Nav Module v2.0) → NAV-003 (Nav Module v2.0): Conformant
  • Swap NAV-001 (Nav Module v2.0) → NAV-005 (Nav Module v3.0): Non-Conformant → Creates variant