Walkthrough — Design an Autonomous Mobile Robot (AMR)
This walkthrough exercises the vault’s robotics + engineering Tier 1/2/3 notes against a concrete product-development target: an indoor warehouse Autonomous Mobile Robot (AMR) in the class of MiR 250 or OTTO 100. The intent is to show how a working roboticist crosses the notes — every decision wiki-links the source-of-truth Tier note that justifies it. The walkthrough is closer to an internal Phase-Gate-1 design review than to a tutorial.
1. What we’re building
A free-roaming indoor AMR sized for European pallet-aisle warehouses. Customer target: 3PL fulfillment centers, manufacturing milk-runs, hospital logistics. Functional spec in one sentence: carry up to 250 kg of dunnage between fixed workstations in a mapped facility, at human-walk speed, autonomously, for an 8-hour shift, with ISO 3691-4 safety conformance.
Concrete must-haves:
- Payload 250 kg (550 lb) on a flat deck or roller-top conveyor attachment.
- Footprint 700 × 900 mm (27.6 × 35.4 in), height 400 mm (15.7 in) at deck.
- Top speed 2.0 m/s (4.5 mph) — equal to a brisk walk, the implicit ceiling in ISO 3691-4 unsupervised aisles.
- Runtime 8 h at 50% duty cycle (4 h cumulative motion). Opportunity-charge friendly.
- 360° LiDAR-SLAM navigation, pre-map facility, AMCL re-localize.
- ROS 2 Humble native stack, Nav2 + Cartographer.
- OPC-UA fleet integration over VDA 5050, MQTT transport.
- ISO 3691-4 (driverless industrial trucks), CE Machinery Directive 2006/42/EC, ISO 13849 PL d Cat 3 control system.
- Target MSRP class 30,000–50–80k.
This is a productized design, not a research prototype, so unit cost and certifiability are first-class constraints. The walkthrough threads through all of the relevant Tier 3 leaves in Robotics and supporting Engineering disciplines.
2. Spec table
Each line links the relevant Tier 3 note that justifies the choice.
| Spec | Value | Tier 3 reference |
|---|---|---|
| Payload | 250 kg (550 lb) | mobile-bases |
| Top speed | 2.0 m/s (4.5 mph) | mobile-base-wheeled |
| Deceleration (service) | 1.0 m/s² (3.3 ft/s²) | control-algorithms |
| Deceleration (emergency) | 2.5 m/s² (8.2 ft/s²) | safety-standards |
| Gradient capability | 5 % @ rated payload | mobile-base-wheeled |
| Runtime | 8 h @ 50 % duty | power-systems |
| Footprint | 700 × 900 × 400 mm (27.6 × 35.4 × 15.7 in) | mobile-bases |
| Ingress protection | IP54 | engineering-codes |
| EMC | IEC 61000-6-2 (immunity) + 61000-6-4 (emissions) | engineering-codes |
| Machinery dir. | 2006/42/EC | engineering-codes |
| Functional safety | ISO 13849 PL d Cat 3, ISO 3691-4:2020 | safety-standards |
| ESPE (safety scanner) | IEC 61496-3 Type 3 | safety-standards |
| Risk assessment | ISO 12100 + ISO 3691-4 Annex A | reliability-engineering |
| Wireless | Wi-Fi 6 (802.11ax), 5 GHz, WPA3-Enterprise | comm-buses |
| Fleet protocol | VDA 5050:2022 over MQTT, OPC-UA UA-Robotics CS | industrial-automation |
Tradeoffs already embedded in the table: 2.0 m/s is the lowest viable speed for warehouse-throughput economics, but each 0.1 m/s above that drives a step in safety-scanner range, decel torque, and risk-assessment paperwork (per safety-standards). The 700 × 900 mm footprint passes a 1100 mm aisle with 200 mm clearance per side — tighter footprints exist but eat into payload-bay span.
3. Drive architecture
Choice: differential drive with two 250 mm tractive PU wheels on the centerline, plus four 125 mm swivel casters at the corners.
The mobile-base trade space lives in mobile-bases: differential drive vs. Ackermann steered vs. swerve/holonomic vs. mecanum. For an indoor AMR, the relevant cells of that matrix:
- Differential drive — simplest kinematics, two-wheel diff yields a ZTR (zero-turn radius) about the centerline, two motor channels, well-understood control, cheap. Drawback: pure rotation scrubs the casters, and dead-reckoning yaw is encoder-noise-limited. ZTR is essential when re-orienting in a 1200 mm aisle.
- Ackermann — eliminates scrub but adds turning radius, kills aisle-end re-orientation. Wrong for indoor.
- Swerve / mecanum — full holonomic, ideal for narrow aisles and crab-walking under conveyors. Four motors, four steering motors (swerve) or four mecanum hubs. 2–3× the drive BOM and significant control complexity. The MiR 250 and OTTO 100 reference vehicles both ship diff-drive — they decided the holonomic premium doesn’t pay back for general warehouse work. We follow.
Each drive wheel sits on the lateral centerline; the four casters are at the chassis corners (cross-references mobile-base-wheeled for the stability-polygon analysis — two-on-line + four corners gives a 6-point support polygon and prevents the diff-drive teeter common to 2-drive + 2-caster designs on uneven floors). On a 5 mm floor step, the casters carry through the bump while the drives stay loaded.
Drive motor selection. Cross-reference: motors-electric, electric-motor-taxonomy, and motor-families. The candidates by topology:
- Brushed DC + planetary gearbox — cheap, brushes are a maintenance liability over 1000+ hr.
- BLDC (brushless DC) + integrated planetary — sealed, long life, sensored commutation, drop-in. Standard AMR choice.
- PMSM with FOC — overlap with BLDC at this size; the distinction is sinusoidal vs trapezoidal back-EMF. For wheel drives at low speed, both work; FOC drives are slightly smoother at near-stall.
- AC induction — too big and not torque-dense enough at this rating.
Pick: Maxon EC-i 40 90 W frameless is overkill on the precision axis; Kelo Robotics RW-X3 integrated wheel-drive module (250 mm wheel + 32:1 gearbox + 1.2 kW BLDC + drive + brake + encoder + safety I/O on CAN-Open) is the lowest-integration-effort path and is purpose-built for AMRs. Public list ~1,400 per drive corner. Build-up gives flexibility on encoder grade + brake choice; integrated module gives a vendor-supported single-purchase part with CE marking already done. Take the Maxon + Roboteq build-up at qty 100 to hit cost targets; revisit the Kelo integrated module if validation timeline slips.
Drive controller. See motor-drive-electronics. Roboteq SDC2160 (dual-channel 60 A, 60 V, CAN-Open + USB, FOC). Two of these (one per drive wheel) costs $360 each in qty 100. Field-oriented control at 20 kHz inside the controller; the host (NUC) talks position/velocity targets at 50 Hz over CAN. Alternative for higher SIL: Sevcon Gen4 Size 4 with STO input wired to the safety PLC. We adopt the Roboteq for v1 because the Sevcon is overspec for 750 W and 2× the price.
4. Wheels and traction
Tractive wheels. 250 mm diameter × 70 mm wide PU tread on cast aluminium hub. PU compound: Trelleborg Stellana T800 NMP (92 Shore A, non-marking, low rolling resistance, +60 °C max continuous). Tread shore-A 92 is the standard AMR compromise — softer (85A) gives better traction and floor compliance but cuts tread life by 2–3×; harder (95A+) drops Cr but scrubs hard on direction changes.
Casters. 125 mm PU swivel, Albion 16-series or Bayer 6 series, toe-in 1° (reduces caster flutter at speed). Each rated 150 kg static, so four casters share 60–80 kg of the static load + dynamic spillover on cornering.
Rolling resistance and drive power numerics. Coefficient of rolling resistance Cr for 92A PU on epoxy-coated concrete floor ≈ 0.015 (range 0.010–0.020 depending on floor cleanliness — pick 0.015 nominal for sizing). Gross vehicle mass (vehicle + payload) = 310 kg. Per mobile-base-wheeled the steady-cruise drive force is:
F_roll = m · g · Cr = 310 kg × 9.81 m/s² × 0.015 = 45.6 N
At top speed 2.0 m/s, mechanical drive power at the wheels is:
P_roll = F_roll · v = 45.6 N × 2.0 m/s = 91 W mechanical, total
Per drive wheel: ~46 W mechanical. Assume drivetrain efficiency η_mech = 0.80 (gearbox 0.92 × motor 0.87) and inverter efficiency η_inv = 0.95 — electrical input per wheel ≈ 46 / (0.80 × 0.95) = 60 W per wheel at cruise. Pessimistic budget: 80 W per wheel = 160 W combined steady-state.
Acceleration is the dimensioning case: at 1.0 m/s² target with mass 310 kg:
F_accel = m · a + F_roll = 310 × 1.0 + 45.6 = 356 N
P_accel(at top speed) = F_accel · v_target = 356 × 2.0 = 712 W mechanical
Per wheel: ~360 W mechanical, ~470 W electrical with η. Continuous motor rating 260 W is fine (acceleration is bursty, S2 5-min duty); peak rating must reach ~500 W per motor. The Maxon EC flat 90 (260 W continuous, 1100 W peak short-term) covers this with margin.
Gradient case (5%): on a 5% ramp, F_grade = m · g · sin(arctan(0.05)) ≈ 152 N; combined with rolling = 198 N at cruise, P = 396 W mech at cruise — still within S2 30-min motor duty.
5. Battery and power
Chemistry choice. Cross-reference battery-chemistries. The candidates for an AMR:
- NMC (lithium nickel-manganese-cobalt) — highest gravimetric energy density (~250 Wh/kg cell), most aerospace/EV pack designs. Thermal runaway risk in warehouse fire-load environments is real. Higher cost ($200/kWh at pack).
- LFP (lithium iron phosphate) — 130–160 Wh/kg cell, cycle life 3000+ cycles to 80%, thermal runaway temperature 250 °C+ vs. NMC 150 °C, far safer in close-proximity-to-human applications. Cheaper at pack: $140/kWh. Choice.
- LTO (lithium titanate) — 10000+ cycles, ultra-fast charge, but 80 Wh/kg + $400/kWh. Reserved for opportunity-charge applications with crippling duty cycles.
- Lead-acid AGM — legacy AGV chemistry. Heavy (40 Wh/kg), 500-cycle life. Not competitive with LFP except on outright capex per kWh at small scales.
Pack. 48 V nominal × 80 Ah = 3.84 kWh usable. Build: 15 series × 8 parallel of EVE LF105 prismatic LFP cells (3.2 V × 105 Ah, 1,650, integrated BMS, group-31 case) or Renogy 48V 50Ah RBT50 (two in parallel, $1,200 total). Both ship with integrated BMS — saves us a couple months of BMS qualification.
BMS. If we build cell-up: Daly Smart BMS 16S 100A with cell-balance, over-current, over/under-voltage, over/under-temp, UART/CAN comms ($180). Cross-reference power-systems for BMS architecture (passive vs. active balance; SOC estimation by coulomb-count + OCV correction).
Power budget table (operating, average):
| Subsystem | Continuous W | Notes |
|---|---|---|
| Drive (2 × wheel @ 80 W avg) | 160 | At 50% motion duty, 1.0 m/s avg |
| Compute (NUC i7 / Jetson Orin NX) | 60 | Includes SSD, USB peripherals |
| Nav LiDAR (Velodyne Puck Lite) | 12 | 10 W continuous + 2 W heater |
| Safety scanners (2 × SICK microScan3) | 26 | 13 W each |
| Cameras (4 × Blackfly S) | 12 | 3 W each |
| Ultrasonic + IMU + misc I/O | 10 | |
| 24 V auxiliary DC-DC converter losses | 12 | 80% efficient at 60 W load |
| HMI display (7” 24V) | 8 | |
| Fans + lighting | 12 | |
| Total continuous | 312 W |
Runtime at full continuous draw: 3840 Wh / 312 W = 12.3 h. With realistic 50% motion duty cycle (motion uses 470 W during the moving half, 50 W during the idle half), composite average draw ≈ (470 + 50)/2 + 152 (compute + sensors) = 412 W → 9.3 h. Margin against 8 h spec: 16% — adequate but tight; this is why the spec is “8 h @ 50% duty” not “10 h @ 80% duty.” For high-duty deployments, opportunity-charge.
Charging. Two options:
- Wired contact-strip auto-dock — 48 V × 20 A = 960 W charger, 0.4C charge rate, 0 → 80% in ~1.3 h. Vendor: Delta-Q IC1200, $400, IP66.
- Wireless inductive — Wiferion etaLINK 12000 (12 kW, 200 mm air gap, ~$8,000). At 12 kW the same battery charges 0 → 80% in 16 min — opportunity-charge friendly, no docking precision required. Spec’d as upgrade for fleet customers.
V1 ships with wired DC-Q auto-dock; the contacts live on the underside, the dock is a wedge-shaped station with two spring-loaded brass bars + an IR beacon.
6. Chassis and structure
Frame. Welded SAE 1018 cold-rolled steel rectangular tube, 25 × 40 × 2 mm wall. Six longitudinal beams, four transverse ribs, GMAW welded at every joint. Cross-reference steel-grades for the 1018 selection: low-carbon (0.18% C), excellent weldability, no preheat, 365 MPa yield, $1.20/kg raw. Alternative 4130 chromoly is overkill (1.5× cost, requires post-weld stress relief). For an AMR the bending stiffness of the tube section dominates and 1018 is plenty.
Base plate. 4 mm 6061-T6 aluminium tooling plate, water-jet cut, drilled for chassis attachments + payload-bay top features. Aluminium not steel for weight: at 4 mm × 700 × 900 mm = 7.0 kg vs. 19 kg in steel — saves 12 kg on a 60 kg vehicle. Cross-reference alloy-systems (Al 6061 selection notes: good weldability, machinability, anodizable). The base plate isn’t a primary load member; it’s a payload reaction surface bolted to the steel frame on a 100 mm grid.
Skid panels and bumper covers. UHMW-PE (ultra-high-molecular-weight polyethylene) for impact-prone surfaces, HDPE for cosmetic skins. Cross-reference polymers-taxonomy: UHMW is what forklift-truck bumpers are made of for a reason — abrasion resistance, no chipping, self-lubricating against floor scrubs.
Finish. Powder-coat polyester RAL 9010 pure white on the steel frame + black on the skid panels; aluminium base plate clear-anodized. Cross-reference surface-treatments for the polyester powder-coat thickness spec (80 µm nominal), Cure 200 °C × 20 min. Powder over zinc-phosphate pretreatment for corrosion warranty (5-yr indoor).
Manufacturing methods. Cross-reference:
- welding-processes — GMAW (MIG) with ER70S-6 wire, 75/25 Ar/CO₂ shielding gas, 22 V × 180 A, ~0.5 m/min travel speed. Fixture in welding jig for repeatability.
- forming-processes — laser-cut sheet for brackets (Trumpf TruLaser 3030), CNC bend on a 60-ton press brake (Amada HG-1303). Bend radii 1.5× sheet thickness minimum.
- machining-processes — 5-axis mill (DMG MORI DMU 50) for the wheel-hub bracketry and the LiDAR-mast top plate, both of which carry alignment-critical features. Tolerances ±0.05 mm on hub-mount bolt pattern.
Mass budget.
| Subsystem | Mass (kg) |
|---|---|
| Steel frame + base plate | 28 |
| Skid panels + skins | 5 |
| Drive motors + gearboxes (2) | 8 |
| Casters (4) | 6 |
| Wheels with PU tread (2) | 7 |
| Battery + BMS | 30 |
| Compute + sensors + cabling | 12 |
| HMI + lights + small parts | 4 |
| Empty mass | 100 kg (220 lb) |
| Payload (rated) | 250 |
| Gross mass | 350 kg (770 lb) |
(The earlier 60 kg dry mass target was optimistic — the LFP pack alone is 30 kg. 100 kg empty is realistic; gross 350 kg sizing case feeds the drive sizing above.)
7. Sensor suite
The perception architecture is a heterogeneous stack — primary nav LiDAR for SLAM, an independent safety LiDAR pair for ISO 13849 protective stop, cameras for visual augmentation, ultrasonic for low-obstacle gap-filling, IMU for inertial odometry. Each cross-references sensors-perception and perception-sensors.
7.1 Navigation LiDAR (primary mapping/SLAM)
Velodyne Puck Lite (VLP-16, 590 g) mounted on a 1.4 m mast at chassis centerline rear. 16 channels × 360° at 10 Hz, ±15° vertical FOV, range 100 m, 300k pts/s. **List 6,000) — wider vertical but more expensive and overkill for a 2D-dominated indoor task. Velodyne wins on price + 1.4 m height makes the 15° vertical wedge cover floor-to-2.5m anyway.
The Nav LiDAR feeds Cartographer (2D slice) and Nav2 obstacle layer (3D voxel grid for hanging-obstacle detection — overhead conveyors, pallets stacked above mast height). See slam for the 2D vs. 3D SLAM tradeoff.
7.2 Safety LiDAR (ESPE, Cat 3 PL d)
SICK microScan3 Pro CMS (270° 2D, 5.5 m protective field, 40 m measurement field). Two units: one front-bottom mounted at 200 mm AGL, one rear-bottom (with the heading orientation swapped). IEC 61496-3 Type 3 ESPE, ISO 13849 PL d Cat 3 certified, CIP-Safety/EFI bus to the safety PLC. List 9,000 for the pair. This is the single largest BOM line item and the reason MiR 250 lists at $50k+.
Why two not one: the front scanner has a 270° fan that wraps around the front + sides; the back has the same wrap on the rear + sides. They overlap on the lateral 90° angle on each side, giving full 360° Cat-3 coverage with no blind sector. ISO 3691-4 requires the protective field cover the vehicle envelope at the chosen speed.
Protective-field geometry depends on stopping distance — at 2.0 m/s with 1.0 m/s² service decel + 200 ms safety latency, stopping distance = 2.0 × 0.2 + 2.0² / (2 × 1.0) = 0.4 + 2.0 = 2.4 m. Add 100 mm safety margin per safety-standards → 2.5 m protective field. Speed-dependent field switching is mandatory above ~0.3 m/s, otherwise the field becomes operationally useless. The microScan3 supports 128 field sets indexed by encoder-derived speed (PL d independent).
7.3 Cameras (visual augmentation)
4 × FLIR Blackfly S BFS-U3-13Y3C — Sony IMX371 sensor, 1.3 MP, global-shutter, color, USB3-Vision. 2,400. Global-shutter matters at vehicle speed — rolling shutter wobbles vertical features. Lenses: Tamron M111FM06 6 mm C-mount → ~110° HFOV on the 1/2” sensor. Mounting: front-left, front-right, rear-left, rear-right at corners, looking outward + 15° downward — covers floor-marker reading (ArUco), aisle-end visual fiducial corner detection, dropped-pallet recognition. Feeds a YOLOv8-Nano classifier on the Jetson Orin NX at 10 fps per camera.
7.4 Ultrasonic ranging (low-obstacle gap-fill)
LiDAR misses thin, low-reflectivity features at floor level — a single pallet board lying on its 100 mm side, a wad of stretch-wrap, a dolly’s lower frame rail at 80 mm. Backstop with ultrasonic. MaxBotix MB1242 I2C × 4, front cross-array at 150 mm AGL, 7 m range, 1 cm resolution. 140. Update rate 10 Hz, fused as an additional Nav2 costmap layer with high inflation.
7.5 Inertial measurement (IMU)
V1: Bosch BMI270 9-DOF on the main carrier board, ~$15 part cost. ±2000 dps gyro, ±16 g accel, 1.6 kHz output. Sufficient for short-term yaw integration between LiDAR updates at 10 Hz. Cross-reference sensors-pose-motion for the random-walk / bias-stability analysis — BMI270 gyro bias instability is ~10°/h, which over a 100 ms LiDAR cycle is 0.0003°, well below SLAM noise.
V2 upgrade path: Xsens MTi-3 ($800), industrial-grade, factory-calibrated AHRS, RS-232 + CAN, runtime-bias-stability 1°/h.
7.6 Wheel encoders (odometry)
Quadrature optical encoders inside the drive motor, 1024 cpr post-gearbox-output (Maxon HEDL 5540 series). Wheel circumference at 250 mm: π × 0.250 = 0.785 m → 0.766 mm per encoder count. With 32:1 gearbox the motor-side encoder count per wheel-rev is 32,768 — sub-millimeter dead-reckoning in principle, but slip + scrub of the casters during ZTR rotation means real odometry yaw drift is ~3°/m of straight-line + ~1° per 90° ZTR. SLAM corrects continuously.
Cross-reference sensor-families for the optical-encoder noise model.
8. Compute architecture
Main compute. NVIDIA Jetson Orin NX 16 GB on a Connect Tech Boson carrier. **400 for the carrier = 800), CPU-only — fine for Nav2 + Cartographer but no AI throughput for cameras. The Orin NX wins on aggregate $/capability.
- 16 GB LPDDR5
- 512 GB NVMe SSD (PCIe Gen3 ×4) for ROS bag recording + map cache
- 4 × USB3 (cameras), 2 × USB-C, 1 × Gigabit Ethernet, CAN
- Ubuntu 22.04 + JetPack 5.1 + ROS 2 Humble
Cross-reference ros2-architecture for the node-graph layout (control nodes at higher priority, perception nodes in their own DDS partition), and realtime-embedded for the soft-realtime control loop strategy (PREEMPT_RT kernel patch applied, control nodes pinned with SCHED_FIFO priority 80).
Safety PLC (functional safety). This is a separate MCU/PLC from the main compute — ISO 13849 PL d Cat 3 requires the safety logic be on independent hardware with redundant inputs + diversified self-test. Choices:
- Pilz PNOZmulti 2 m B0 (200/I/O card) — modular safety PLC, certified PL e Cat 4, IEC 61131-3 programmable, drag-drop logic editor.
- SICK Flexi Soft FX3-XTIO ($800 base) — purpose-built for safety LiDAR integration via EFI-Pro bus, native to the microScan3 ecosystem.
We pick SICK Flexi Soft because the EFI-Pro bus to the microScan3 saves dual-channel wiring + delivers field-switching commands integrated with the cert envelope.
Bus topology.
- Safety PLC ↔ microScan3 ×2 over EFI-Pro
- Safety PLC ↔ E-stops, bumpers, door-switches over dual-channel safety I/O
- Safety PLC ↔ drive STO inputs (hardware safe-torque-off pins on Roboteq)
- Safety PLC ↔ NUC/Jetson over Modbus-TCP (NON-safety status mirror)
- NUC/Jetson ↔ Roboteq drives over CAN (commands, telemetry)
- NUC/Jetson ↔ peripherals (LiDARs, cameras, ultrasonic) over Ethernet + USB
Cross-reference ros2-robotics-config for the ROS 2 launch-file structure (safety supervisor lifecycle node + Nav2 + Cartographer + drivers).
9. SLAM and localization
Mapping (one-shot, on commissioning). Cartographer (Google 2016) on the 2D safety-scan slice — Cartographer was Google’s contribution and remains the most production-validated 2D-LiDAR SLAM stack in ROS 2. See slam for the algorithmic outline (real-time local SLAM with submap matching + global pose-graph optimization with branch-and-bound loop closure) and slam-algorithms for the comparison vs. GMapping, Hector SLAM, SLAM Toolbox.
Map output: occupancy grid at 5 cm resolution, typical warehouse ~10,000 m² → 4 million cells = 4 MB PGM + 1 MB YAML metadata.
For 3D voxel layer (overhead obstacles, hanging conveyors, mezzanines), maintain a separate OctoMap seeded from the Velodyne sweep — 10 cm voxels, ~50 MB for a warehouse.
Localization (runtime, every shift). AMCL (adaptive Monte Carlo localization) — a particle filter over the pre-built map. Cross-reference bayesian-estimation for the particle-filter mechanics (sequential importance resampling, KLD-sampling for adaptive particle count). Typical particle count adaptive 100–2000; pose covariance reported in /amcl_pose topic.
Initial pose. On startup, vehicle reads its docked-charger position (known map location, IR beacon) and seeds AMCL with ±50 mm × ±2° prior. After ~30 s of driving, the particle cloud converges to ~10 mm × ~0.5° covariance.
Drift mitigation. Two backups for when SLAM degenerates (featureless corridor, dynamic-obstacle storm):
- Reflective markers — adhesive reflective tape strips at racking corners, detected by the safety LiDAR’s reflectivity channel. The microScan3 reports intensity per beam. Three reflectors triangulate to ±5 mm in clean conditions.
- Visual fiducials — ArUco / AprilTag markers (200 mm square) at every aisle-end intersection. Cameras detect and feed pose corrections via robot_localization EKF. See the Apriltag-ROS-2 package.
The fiducial fallback also serves as the canonical “where am I” recovery when the operator presses the recover button on the HMI.
10. Path planning and reactive control
Global planner. Nav2 Smac Hybrid A*— Hybrid A* respects kinematic constraints (turning radius, reverse penalty) and produces drivable paths through cluttered occupancy grids. For a diff-drive AMR the kinematic envelope is generous (it can pivot in place), so plain NavFn (Dijkstra) is also viable. Cross-reference path-planning-algorithms: Aexpands fewer nodes than Dijkstra when the heuristic is informative, which it is (Euclidean to goal). Smac Hybrid A adds the kinematic state to the search and is the production default in Nav2.
Replanning rate: 1 Hz nominal, on-demand when the costmap changes materially.
Local planner. TEB (Timed Elastic Band) local planner at 10 Hz — represents the trajectory as a spline of (pose, time) points and optimizes against obstacle, kinematic, and dynamics constraints. Alternative is DWB (Dynamic Window with behavior) which is faster but less smooth in tight corridors. TEB is the modern default for AMRs; cross-reference path-planning.
Costmap stack.
- Static layer: pre-built occupancy grid from Cartographer
- Voxel layer: 3D obstacles from Nav LiDAR + OctoMap
- Range-sensor layer: ultrasonic returns
- Inflation layer: configurable inflation (typically 0.4 m radius at human-walk speed)
Safety supervisor. Independent of the Nav2 stack, the SICK Flexi Soft safety PLC monitors the microScan3 protective fields. If a Cat-3 violation triggers (human < 500 mm at speed > 0.3 m/s), the PLC drops STO on both drives — hardware emergency stop, ~80 ms latency. ROS 2 stack is informed via Modbus mirror but is not in the safety loop. This is the canonical functional-safety architecture from safety-standards — the safety chain is hardwired, the application chain is advisory.
11. Multi-AMR fleet management
Protocol stack. VDA 5050:2022 is the industry-standard interface between AMR vendors and fleet managers — a JSON-over-MQTT specification covering mission assignment, state reporting, layout exchange, and visualization. See industrial-automation for the OPC-UA UA-Robotics Companion Specification (an OPC-UA information model that wraps VDA 5050 messages for warehouse-control-system clients).
MQTT broker. Mosquitto 2.x or HiveMQ Enterprise depending on customer scale. TLS 1.3 with mutual cert auth. Topics:
vda5050/v2/<manufacturer>/<sn>/order— fleet manager → AMR (mission)vda5050/v2/<manufacturer>/<sn>/state— AMR → fleet manager (1 Hz)vda5050/v2/<manufacturer>/<sn>/visualization— AMR → FM (10 Hz pose)vda5050/v2/<manufacturer>/<sn>/connection— last-will/birth presence
Mission structure. A VDA 5050 order is an ordered list of nodes (waypoints) and edges (motion segments) with action lists per node (pick, drop, dwell, charge, etc.). The AMR executes node-to-node, reports state.lastNodeId continuously, and emits instantActions results.
Fleet manager integration. Validated against:
- Seegrid Supervisor
- OTTO FleetManager (Rockwell)
- Conveyco RA-FM
- 6 River Systems MFP (legacy, native protocol, VDA 5050 bridge)
Cross-reference comm-buses for the multi-protocol topology — the AMR talks VDA 5050 (MQTT) over Wi-Fi 6 to the fleet manager, and internally talks CAN to drives + EFI-Pro to safety scanners + Ethernet to peripherals.
12. Control loops
Hierarchical control stack, frequencies tiered:
| Layer | Loop rate | Algorithm | Compute |
|---|---|---|---|
| Motor current (FOC) | 20 kHz | Park/Clarke transforms + dq-axis PI | Roboteq SDC2160 firmware |
| Wheel speed | 2 kHz | PI with velocity feedforward | Roboteq SDC2160 firmware |
| Diff-drive kinematics | 50 Hz | Forward/inverse Jacobian, (v, ω) → (ω_L, ω_R) | Jetson, ROS 2 node diff_drive_controller |
| Trajectory tracking | 20 Hz | Pure-pursuit with adaptive lookahead | Jetson, ROS 2 node regulated_pure_pursuit_controller |
| Local planner (TEB) | 10 Hz | Timed Elastic Band optimization | Jetson, Nav2 |
| Global planner | 1 Hz (on demand) | Smac Hybrid A* | Jetson, Nav2 |
Cross-references: pid-control for the inner PI/cascaded structure, control-algorithms for the pure-pursuit + adaptive-lookahead derivation, and mobile-base-wheeled for the diff-drive kinematics. The forward kinematics map wheel speeds (ω_L, ω_R) (rad/s) and wheel radius r and track b to vehicle twist (v, ω):
v = (r/2) · (ω_R + ω_L)
ω = (r/b) · (ω_R - ω_L)
Inverse for command:
ω_R = (2v + ωb) / (2r)
ω_L = (2v - ωb) / (2r)
With wheel radius r = 0.125 m and track b = 0.55 m, top speed 2 m/s → ω_wheel max = 16 rad/s = 153 rpm at the wheel. Through a 32:1 gearbox the motor sees 4900 rpm — well below Maxon EC flat 90’s 7500 rpm rated.
Tuning notes. The pure-pursuit lookahead adapts: L = max(0.4 m, k_v · v) with k_v = 0.4 s — at 2 m/s lookahead is 0.8 m. Short lookahead at low speed avoids cutting corners in tight aisles; longer at high speed avoids the chase-tail oscillation. PID gains on diff_drive_controller velocity loop typically Kp=2, Ki=0.5, Kd=0 (no derivative — encoder noise).
FOC inside the Roboteq. The 20 kHz inner loop runs Park + Clarke transforms on the three-phase motor current measurements (two phases sensed, third inferred via Kirchhoff). Resulting i_d and i_q are regulated by independent PI controllers; setpoint i_d* = 0 (no field weakening at AMR speeds), i_q* proportional to torque demand. The inverse transform feeds the SVPWM modulator at the same 20 kHz rate. Cross-reference motor-drive-electronics for the Park/Clarke derivation. Roboteq exposes per-axis tuning via Roborun+ over USB — initial setpoints derived from motor electrical time constant τ_e = L/R (Maxon EC flat 90: L = 0.45 mH, R = 1.2 Ω → τ_e = 0.375 ms, ten-times that gives PI crossover ~270 Hz, safely below 2 kHz inverter Nyquist).
Anti-windup + jerk limiting. All cascaded PIs use clamping anti-windup — when the inner-loop integrator saturates against the inverter’s voltage ceiling, the outer-loop integral is paused. At the trajectory layer the velocity command is jerk-limited to 1.5 m/s³ to keep payload from sliding on the deck (static friction coefficient of cardboard on aluminium ≈ 0.3, so max no-slide decel is 0.3 g = 2.94 m/s² — comfortable margin against the 1.0 m/s² service decel).
13. Safety architecture (ISO 13849 PL d Cat 3 + ISO 3691-4)
This is the longest and least-glamorous section of the design and the section that gates revenue — without CE Machinery Directive + ISO 3691-4 conformance the AMR cannot be sold in Europe.
Risk assessment. ISO 12100 generic methodology + ISO 3691-4:2020 Annex A AMR-specific hazard list. The required PL is derived per ISO 13849-1 from the risk graph (severity × frequency × possibility of avoidance). For an AMR moving at 2.0 m/s with 250 kg payload around human-occupied workspaces, the risk graph yields PL d Cat 3 for the human-presence detection chain. See safety-standards.
Safety-rated subsystems.
- Dual-channel safety scanners (microScan3 ×2) — IEC 61496-3 Type 3 ESPE, dual photodiode arrays inside the unit, dual-output channel to safety PLC. Self-test every 20 ms.
- Safety PLC (SICK Flexi Soft) — PL e Cat 4 capability, programmed to PL d Cat 3 envelope. Cross-monitored CPU pair, certificate ID FS-XXXX issued by SICK after our application-program review.
- Safety-rated emergency stop buttons — Pilz PSEN cs2.1 (IEC 60204-1 + ISO 13850), two units, one each on chassis left/right, mushroom-head twist-release. Dual-channel NC contacts to safety PLC.
- Drive STO (safe torque off) — Roboteq SDC2160’s hardware STO input is wired direct from safety PLC. Triggering STO opens the inverter HV bus to motors within 10 ms regardless of firmware state. STO is independent of the CAN command path.
- Speed monitoring (independent) — second-channel encoder pickup wired direct to safety PLC; PLC computes wheel speed and triggers protective-field switch independent of NUC/Jetson. Implements ISO 3691-4’s speed-dependent protection requirement.
- Bumper sensors — front, rear, and lateral edges fitted with ABB Jokab Safety Pluto bumper strips (pressure-sensitive safety edge, dual-channel). Triggers STO on contact regardless of LiDAR state — last-line defense.
E-stop response chain.
E-stop press
→ contacts open (10 ms)
→ safety PLC detects (5 ms latency)
→ STO command to both Roboteq drives (5 ms)
→ motor torque collapses (10 ms inverter dump)
→ vehicle coasts to stop (limited by inertia + rolling resistance)
End-to-end latency ~30 ms; coast distance at 2.0 m/s with rolling-only decel = 2.0² / (2 × 9.81 × 0.015) = 13.6 m. That’s why the protective field is sized to 2.5 m — coast on rolling alone is too far; we need the service-brake decel (1.0 m/s² gives 2.0 m stopping distance) to fit inside the protective field. Service brake is the motor applying reverse torque, not a friction brake — but it works only if STO is not active. So actually the protective-stop logic is two-stage:
- Soft slowdown (warning field violation, ~ 4 m): commanded decel 1.0 m/s² via motor torque, stops within ~2.0 m. Vehicle remains powered.
- Hard E-stop / protective-field violation (2.5 m): STO opens, vehicle coasts to stop. Used when the warning-field stage didn’t clear the obstacle.
Cross-reference reliability-engineering for the FMEA template applied to this safety chain.
Required marking + documentation.
- CE mark (Machinery Directive 2006/42/EC Annex IV — AMRs are not Annex IV, so self-declaration of conformity is permitted, but Notified Body review is recommended for first product).
- Declaration of Conformity (signed by manufacturer).
- ISO 3691-4 conformance report.
- Risk assessment record (ISO 12100).
- Safety-PLC application program signed off by SICK / certified system integrator.
- Operator + maintenance manuals in all applicable languages (EU 24 languages or per market).
14. EMC and IP
Ingress. IP54 — protected against dust (limited ingress, no harmful deposit) + splashing water from any direction. Sufficient for indoor warehouse; outdoor V2 will require IP67. Cross-reference engineering-codes for the IP code structure.
Achieving IP54 on a vehicle this size:
- Chassis panel joints: closed-cell EPDM gasket, 3 mm × 8 mm cross-section.
- Cable glands: Lapp Skintop ST + IP66 rated.
- Connectors: M12 X-coded for Ethernet, M12 A-coded for CAN + power, all IP67.
- LiDAR housings: vendor-rated IP65 (Velodyne) / IP67 (SICK).
- Battery compartment: separately gasketed, vented with a Gore-Tex pressure-equalizing membrane.
EMC. IEC 61000-6-2 (industrial immunity) + IEC 61000-6-4 (industrial emissions). Critical issues at AMR scale:
- Motor cable common-mode emissions from the PWM inverter — addressed with common-mode chokes on the drive output (e.g., Würth WE-CMB toroidal cores, 4 mH at 100 kHz). See passive-components for the inductor selection criteria.
- Shielded motor cables (Lapp ÖLFLEX SERVO 2YSLCY-J or equivalent), shield 360° clamped at both ends to chassis ground.
- Star-point grounding scheme: single chassis ground bus, all returns to one point. See pcb-design for the ground-plane partitioning practice applied to PCB design (the chassis-level equivalent is the chassis-ground star).
- Logic + signal separation from motor cables: ≥ 200 mm separation in cable trays.
Certifications. CE marking (EMC Directive 2014/30/EU) + FCC Part 15 Class A (US) + UL 583 / UL 1740 (industrial trucks / robots in North America).
15. Materials and manufacturing
Pulling all the material + process cross-references into a single section:
Frame. SAE 1018 cold-rolled steel rectangular tube 25 × 40 × 2 mm. Source: McMaster-Carr, Ryerson, Metal Supermarkets — generic commodity. Cost ~36 raw. Cut on bandsaw or cold-saw, mitre + cope at joints. Cross-reference steel-grades for 1018 selection.
Welding. GMAW (gas metal arc welding, MIG), ER70S-6 mild-steel wire, 75% argon / 25% CO₂ shielding, 22 V × 180 A, ~0.5 m/min travel. Welded in a jig fixture (custom steel plate base with locating pins). Cycle time per chassis ~ 2 h skilled welder. Cross-reference welding-processes.
Wheels. PU tread cast around aluminium hub. Cross-reference casting-processes for the polyurethane casting process — open-cavity mould, two-part urethane (MDI + polyol), cure 80 °C × 2 h, demould, post-cure 24 h. Or purchase: Trelleborg, Hamilton, Tente — buy-don’t-build at qty 100.
Sheet metal brackets. Laser-cut + bent. Cross-reference forming-processes: 2 mm steel sheet on a Trumpf TruLaser 3030 (~1/bend). 6 brackets per chassis × 12 per vehicle.
5-axis machined parts. Wheel-hub mounts, LiDAR-mast top plate, charger-contact bracket — features need ±0.05 mm. DMG MORI DMU 50 5-axis mill, 6061-T6 stock, ~200 per vehicle. Cross-reference machining-processes.
Surface finish. Cross-reference surface-treatments. Steel: zinc-phosphate pretreatment + 80 µm polyester powder-coat RAL 9010, cure 200 °C × 20 min. Aluminium: clear sulfuric anodize Type II, 15 µm. Both processes outsourced — ~15/baseplate.
Polymer parts. Cross-reference polymers-taxonomy. Skid panels UHMW-PE 10 mm thick, CNC routed. Skins HDPE 4 mm vacuum-formed. Both ~$30 per vehicle.
Cost roll-up (qty 100, raw materials + processing):
| Step | Cost per vehicle |
|---|---|
| Steel frame tube + cutting | $40 |
| GMAW welding labor | $80 |
| Aluminium base plate (5-axis) | $200 |
| Laser-cut + bent brackets | $12 |
| Powder-coat + anodize | $65 |
| Polymer panels (UHMW + HDPE) | $30 |
| Chassis subtotal | $427 |
(Rounded to $400 in the BOM table below.)
16. Test and validation
Endurance. 1000 h continuous operation at full duty cycle, in a representative warehouse environment. Failure log + MTBF computed; target MTBF > 5000 h field.
Tread wear. 10,000 km tread-life test on a representative concrete-with-epoxy floor, 250 kg payload. Acceptance: < 5 mm tread loss + no compound chunking.
Cycle-of-life. 1000 cycles E-stop button engagement, 1000 cycles auto-dock + undock, 1000 cycles payload load + unload. Per IEC 60204-1 + ISO 3691-4 cycle requirements.
Environmental.
- 90% relative humidity at 35 °C × 168 h (IEC 60068-2-78 cyclic damp heat) — no condensation, no leakage current rise.
- Thermal cycle -10 °C → +40 °C × 50 cycles (cold-storage warehouse rated).
- Random vibration per MIL-STD-810G Method 514.6 Cat 4 (transportation) for shipping qualification.
- 1.0 m drop test on each of 6 faces (chassis-only, no LiDAR fit) for shipping handling — ISTA 3A.
Functional safety verification. Independent third-party (TÜV Süd or similar) review of safety PLC program + risk assessment + scanner field configurations. Required for CE Notified Body opinion.
Pilot field test. 90-day deployment with anchor customer, instrumented for telemetry: position, velocity, fault codes, battery cycles, fleet-manager command latencies. Acceptance: > 99% mission completion rate, < 1 unplanned downtime event per 100 h.
Software-in-the-loop (SIL). Before vehicle hardware exists, the Nav2 + Cartographer + safety supervisor stack runs against Gazebo + a simulated diff-drive model. The simulated LiDAR fires synthetic scans; the simulated safety scanner mirrors the same field configuration the real microScan3 will run. This catches ~70% of stack bugs before any vehicle hardware exists. Cross-reference ros2-robotics-config for the SIL launch-file pattern.
Hardware-in-the-loop (HIL). Once the safety PLC program is frozen, it is run against a bench harness simulating the scanners + bumpers + encoders. Fault injection is exhaustive — every channel is opened, shorted to supply, shorted to ground, stuck-at-value — and the PLC must drop STO within the documented latency budget on each case. The HIL log is part of the TÜV submission.
Cross-reference reliability-engineering for the test plan + FMEA approach.
17. Cost build (qty 100)
BOM at production qty 100. Costs reflect mid-2025 supply pricing for an established EMS partner.
| Line | Vendor / part | Cost (USD) |
|---|---|---|
| Chassis (frame + base + brackets + finish) | In-house weld + outsource finish | 400 |
| Drive modules (2 × Maxon EC flat 90 + GP 81 gearbox) | Maxon | 1,200 |
| Drive controllers (2 × Roboteq SDC2160) | Roboteq | 720 |
| Tractive wheels (2 × Trelleborg T800 NMP 250 mm) | Trelleborg | 280 |
| Casters (4 × Albion 125 mm PU swivel) | Albion | 200 |
| Battery (48 V × 80 Ah LFP module + BMS) | Battle Born / Renogy | 1,500 |
| Battery charger (Delta-Q IC1200 48 V 20 A) | Delta-Q | 400 |
| Auto-dock contact strip + IR beacon | Custom | 150 |
| Nav LiDAR (Velodyne Puck Lite VLP-16) | Velodyne | 4,000 |
| Safety LiDAR (2 × SICK microScan3 Pro CMS) | SICK | 9,000 |
| Safety PLC (SICK Flexi Soft FX3-XTIO) | SICK | 800 |
| Safety I/O (E-stops, bumpers, edge sensors) | Pilz + ABB | 600 |
| Compute (Jetson Orin NX 16 GB + carrier) | NVIDIA / Connect Tech | 1,400 |
| Cameras (4 × FLIR Blackfly S BFS-U3-13Y3C + lenses) | FLIR + Tamron | 2,800 |
| Ultrasonics (4 × MaxBotix MB1242) | MaxBotix | 140 |
| IMU (Bosch BMI270 on carrier) | Bosch | 30 |
| Mast + cable harness | Custom + Lapp | 300 |
| HMI display (7” 24 V touchscreen) | Beijer / Pro-face | 350 |
| LEDs, signal lights, beacon | Patlite | 120 |
| Misc fasteners, wire, connectors | Various | 350 |
| Assembly + test labor (8 h × $50/h) | In-house | 400 |
| Final QC + burn-in | In-house | 200 |
| Documentation + license fees | — | 100 |
| Total BOM at qty 100 | ~ $25,440 |
Round to 26,000 BOM**. At a 1.6× factory-cost-to-list multiplier (covers SG&A, NRE amortization, warranty reserve, dealer margin), **list price ~ 42,000 — fits the 45k. MiR 250 lists 70–95k — we have headroom.
Largest BOM lines: safety scanners (4,000) > camera package (1,900) > compute (1,920). Cost-reduction priorities for V2: replace one SICK microScan3 with a software-fused setup (not safety-rated, requires redundant Cat-3 logic from another source) — save 1,500 by 2026 pricing — save $2,500.
18. Schedule
Realistic gantt at startup-pace with a 5-person engineering team (1 mech, 1 electrical, 1 controls, 1 perception, 1 systems):
| Phase | Duration | Output |
|---|---|---|
| Hardware design + EVT prototype | 6 mo | 3 × hand-built EVT units; mechanical + electrical validated |
| Software + nav stack | 4 mo (parallel) | ROS 2 stack on EVT hardware, Cartographer map + Nav2 path through test bench |
| DVT (design verification test) | 3 mo | 10 × DVT units; field-trial bug fixes; safety PLC program frozen |
| Safety cert + CE/UL | 3 mo (parallel w/ DVT) | TÜV functional-safety opinion, CE Declaration of Conformity, UL Mark |
| PVT (production verification) | 2 mo | 30 × PVT units off pilot production line; final manufacturing tweaks |
| Pilot deployment | 3 mo | First anchor-customer deployment, 5–10 units, 90-day field SLA |
| Total to first revenue | ~ 18 months |
Mass-production ramp begins after pilot acceptance, ~ month 21.
19. Future V2 features
Cross-references to the Tier 3 notes that gate these features:
- Outdoor operation — IP67 housings, sealed BLDC + thermal management, GNSS + RTK augmentation for sub-meter outdoor pose, weather-sealed safety scanners (SICK outdoorScan3 or equivalent). Cross-reference engineering-codes for IP67 requirements.
- Follow-me mode — AprilTag pendant detection + RGB-D depth from an Intel RealSense D435i mounted forward. Person-follow at 1.0 m offset. Cross-reference perception-sensors for the depth-camera tradeoff (stereo vs. ToF vs. structured light).
- Autonomous battery swap — replace opportunity-charge with a swap station (15-second pack exchange). Requires precision auto-docking + magnetic-mate connectors.
- 5G / Wi-Fi 6E mesh — for large fleets > 100 vehicles, dedicated 5 GHz mesh with edge-deployed fleet manager. Cross-reference comm-buses.
- Onboard NVIDIA Orin AGX / Thor — bumped compute for behavior prediction, multi-agent learned policies (in pilot, not safety-coupled). Cross-reference sensor-families for sensor-suite expansion that comes with this upgrade.
- Higher payload variant — 500 kg payload, same footprint, scaled drive motors (Maxon EC-i 52) + wider tractive wheels.
- Conveyor / lift attachments — modular top-deck options: powered roller conveyor, scissor lift, hook for cart tugging. Each attachment uses the same 100 mm bolt grid + 24 V CAN connector on the base plate.
- Learning-from-demonstration — operator drives the AMR through a new mission once with a wireless pendant; the system records waypoints + actions and synthesizes the VDA 5050 order. Lowers commissioning time from days to hours for fleet expansion.
20. Cross-references summary
Every Tier note this walkthrough builds on. Reading these in sequence is the closest thing to “reading the AMR design book”:
Tier 1 / 2:
- mobile-base-wheeled — diff-drive kinematics, stability polygon, traction
- sensors-perception — LiDAR + camera + ultrasonic perception stack
- sensors-pose-motion — IMU + encoder odometry
- motors-electric — BLDC, PMSM, FOC inverter topology
- power-systems — battery + BMS + DC-DC architecture
- slam — 2D vs 3D SLAM, Cartographer vs alternatives
- path-planning — global + local planning, TEB, costmaps
- pid-control — cascaded PI structure, anti-windup
- bayesian-estimation — AMCL particle filter, EKF
- ros2-architecture — node graph, DDS partitions, lifecycle nodes
- realtime-embedded — PREEMPT_RT, control-loop priority
- safety-standards — ISO 13849, ISO 3691-4, IEC 61496-3
- comm-buses — CAN, Ethernet, Wi-Fi 6, MQTT, OPC-UA
- reliability-engineering — FMEA, MTBF, test-to-failure
- pcb-design — ground-plane partitioning, EMC
Tier 3 leaves:
- mobile-bases — base-type comparison matrix
- motor-families — BLDC vs PMSM vs SRM vs DC
- motor-drive-electronics — Roboteq, Sevcon, Kelo
- perception-sensors — Velodyne, Ouster, FLIR, SICK
- sensor-families — encoder, IMU, force-torque taxonomies
- slam-algorithms — Cartographer, GMapping, SLAM Toolbox
- path-planning-algorithms — A*, Dijkstra, Hybrid A*, TEB, DWB
- control-algorithms — pure-pursuit, MPC, LQR
- electric-motor-taxonomy — taxonomy of rotating electric machines
- battery-chemistries — LFP, NMC, LTO, lead-acid
- steel-grades — SAE 1018, 4130, A36, stainless
- alloy-systems — 6061-T6 aluminium et al
- polymers-taxonomy — UHMW-PE, HDPE, polycarbonate
- passive-components — common-mode chokes, capacitors
- welding-processes — GMAW, GTAW, SMAW
- casting-processes — polyurethane casting, investment, die
- forming-processes — laser cut, press brake, stamping
- machining-processes — 3-axis vs 5-axis CNC milling
- surface-treatments — powder coat, anodize, zinc phosphate
- engineering-codes — IP, IEC, ISO, NEMA reference
- industrial-automation — OPC-UA, MQTT, Modbus
- ros2-robotics-config — ROS 2 launch files, lifecycle, DDS QoS
21. Citations
- ISO 3691-4:2020 Industrial trucks — Safety requirements and verification — Part 4: Driverless industrial trucks and their systems
- ISO 13849-1:2023 Safety of machinery — Safety-related parts of control systems — Part 1: General principles for design
- ISO 13850:2015 Safety of machinery — Emergency stop function — Principles for design
- ISO 12100:2010 Safety of machinery — General principles for design — Risk assessment and risk reduction
- ISO 10218-1:2011 / -2:2011 Robots and robotic devices — Safety requirements for industrial robots
- IEC 61496-3:2018 Safety of machinery — Electro-sensitive protective equipment — Part 3: Particular requirements for active opto-electronic protective devices responsive to diffuse reflection (AOPDDR)
- IEC 61000-6-2:2016 Electromagnetic compatibility — Generic standards — Immunity for industrial environments
- IEC 61000-6-4:2018 Electromagnetic compatibility — Generic standards — Emission standard for industrial environments
- IEC 60204-1:2016 Safety of machinery — Electrical equipment of machines — Part 1: General requirements
- EU Machinery Directive 2006/42/EC (and Machinery Regulation (EU) 2023/1230 transition)
- EU EMC Directive 2014/30/EU
- VDA 5050:2022 Interface for the communication between driverless transport vehicles (AGV) and a master control
- OPC Foundation UA-Robotics Companion Specification (OPC 40010-1)
- ROS 2 Humble Hawksbill release notes, ROS 2 Design (design.ros2.org)
- W. Hess, D. Kohler, H. Rapp, D. Andor, Real-Time Loop Closure in 2D LIDAR SLAM, ICRA 2016 (Cartographer paper)
- S. Macenski et al., The Marathon 2: A Navigation System, IROS 2020 (Nav2 paper)
- C. Rösmann et al., Trajectory modification considering dynamic constraints of autonomous robots, ROBOTIK 2012 (TEB paper)
- F. Dellaert, D. Fox, W. Burgard, S. Thrun, Monte Carlo Localization for Mobile Robots, ICRA 1999 (AMCL paper)
- MiR (Mobile Industrial Robots A/S) public datasheet, MiR250 product specification, 2024 edition
- OTTO Motors (Rockwell Automation) OTTO 100 public datasheet, 2024 edition
- SICK microScan3 Pro CMS datasheet (8024898 / 2024)
- Velodyne Puck Lite (VLP-16) datasheet, 2020 edition
- NVIDIA Jetson Orin NX module datasheet, 2024 edition
- Maxon EC flat 90 datasheet, Edition Spring 2024
- Roboteq SDC2160 user manual, V2.1, 2023