Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.roboticks.io/llms.txt

Use this file to discover all available pages before exploring further.

ISO 3691-4

ISO 3691-4:2023, Industrial trucks — Safety requirements and verification — Part 4: Driverless industrial trucks and their systems, is the international standard for Autonomous Mobile Robots (AMRs) and Automated Guided Vehicles (AGVs) used in industrial environments. It is the EU and worldwide reference; the US analogue is ANSI/RIA R15.08. ISO 3691-4 is harmonised under EU MR 2023/1230 for driverless-truck applications.
Roboticks is audit-readiness tooling, not a certified toolchain. We assemble the evidence your notified body, certification body, or QA process ingests. We do not replace tool qualification (DO-178C, ISO 26262-8 TCL) and we do not issue conformity assessments. Verify the regulatory interpretations on this page against the standard text and your accredited assessor.

Scope

Applies to:
  • Driverless industrial trucks operating in industrial environments (warehouses, factories, mixed pedestrian-truck areas).
  • Their systems, including the truck-side controls, infrastructure, communications, and integration with manned trucks and pedestrians.
Includes pallet trucks, tow tractors, counterbalance trucks, lift trucks, and the broader class of AMRs used for material handling. Service robots and outdoor robots are out of scope.

Key requirement areas

AreaFocus
Detection zonesPersonnel-detection-system (PDS) zone geometry and dynamic adjustment based on truck speed and direction
Stopping distanceMaximum stopping distance from detection event to truck at rest, parameterised by truck velocity
Operator controlsManual override, mode selection, E-stop on the truck and in the operating environment
Pedestrian protectionSpecific provisions for environments where pedestrians are present
Charging and batterySafe charging-station behaviour
CommunicationInter-truck and truck-to-infrastructure communication safety

What Roboticks supports

  • Clause-level derivation from ISO 3691-4:2023.
  • Detection-zone-as-config — declare detection zones in roboticks/zones.yaml; the platform pins the configuration per release.
  • Sim-based detection-zone tests — Gazebo / Webots scenarios with obstacle insertion; verifies the truck stops before contact across the parameterised speed grid.
  • Hardware-in-the-loop ingestion for hardware-validated detection scenarios.
  • MCAP capture of every detection event with TF, scanner / lidar topics, motion-command topics, and stop-confirmation.
  • Edge-case scenario library — pinch-point detection, low-contrast obstacle detection, pedestrian-from-side detection. Each scenario is a parameterised test.

What Roboticks does not do

  • We do not certify safety scanners or lidars. Those carry their own IEC 61496-3 certification from the device supplier.
  • We do not generate detection-zone geometries. The geometry is a risk-assessment output; we ingest and pin it.
  • We do not perform site-acceptance testing. The fleet-integration tests for a deployed AMR fleet are out of scope; Roboticks’s scope is the truck-firmware verification.

Example detection-zone requirement

- id: REQ-AMR-014
  title: Stopping distance with full pallet at 1.5 m/s
  type: safety
  asil_pl: PLd
  derives_from:
    - standard: iso-3691-4-2023
      clause: "§5.6 Stopping distance"
      edition: "2023"
    - standard: iec-61496-3-2018
      clause: "§5.4 Response time"
      edition: "2018"
  text: |
    With a fully loaded pallet (1500 kg payload), operating in
    automatic mode at 1.5 m/s, on detection of an obstacle in the
    forward warning zone, the truck shall come to a complete stop
    with no contact, within the configured warning-zone depth of
    1.2 m. Verified across the obstacle set defined in
    `scenarios/stopping_distance_v15.yaml`.
  acceptance:
    - test: tests/amr/test_stopping_distance.py::test_loaded_15ms_warning_zone
The test:
import pytest
from roboticks import confirms
from roboticks.gazebo import distance_to_obstacle

OBSTACLES = load_scenarios("scenarios/stopping_distance_v15.yaml")

@pytest.mark.parametrize("scenario", OBSTACLES, ids=lambda s: s.id)
@confirms("REQ-AMR-014")
def test_loaded_15ms_warning_zone(amr, scenario):
    amr.load_world(scenario.world)
    amr.set_payload_kg(1500)
    amr.command_velocity(1.5)
    amr.spawn_obstacle(scenario.obstacle)
    amr.wait_until_stopped()
    final_distance = distance_to_obstacle(amr, scenario.obstacle)
    assert final_distance > 0.0, f"{scenario.id}: contact occurred"
Each scenario captures an MCAP of the run; the evidence pack references the MCAPs for assessor inspection.

Suggested test patterns

Clause areaPattern
§5.6 Stopping distanceParameterised sim scenarios across speed × payload × obstacle-position grid; hardware spot-validation
§5.7 Personnel detectionSim + hardware tests with operator-mannequin obstacles, including pinch-point geometries
§5.13 Manual operation modeMode-transition tests; verify safety functions remain active in manual mode
§5.15 CommunicationCommunication-loss tests; verify safe-state on heartbeat timeout
§6.3 Wireless networkNetwork-jam fault injection; verify safe-state

Edge cases worth testing

ISO 3691-4 conformity assessments scrutinise the corner cases. Build scenarios for:
  • Operator step-out — pedestrian emerges from behind a rack into the warning zone.
  • Low-contrast obstacles — black pallet on dark floor, transparent obstacles where the scanner’s detection capability is at its limit.
  • Mixed-traffic interactions — AMR-vs-AMR, AMR-vs-manned-truck, AMR-vs-forklift.
  • Sensor occlusion — partial sensor blinding from sunlight, dust, condensation.
  • Recovery from stop — verifying the AMR does not auto-restart with the obstacle still present.

Pinning

rbtk standard pin iso-3691-4-2023 --project acme-amr/firmware
Part of the amr-eu bulk template.

Next steps

AMR compliance pattern

End-to-end ISO 3691-4 conformity workflow.

IEC 61496

The protective-equipment standard for the underlying scanners.

ANSI/RIA R15.08

The US analogue, often dual-claimed.