> ## 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

> Driverless industrial trucks (AMRs) — safety requirements and verification. Detection-zone requirements, edge cases, evidence assembly.

# 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](/standards/ansi-r15-08).

ISO 3691-4 is harmonised under EU MR 2023/1230 for driverless-truck applications.

<Warning>
  **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.
</Warning>

## 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

| Area                      | Focus                                                                                                    |
| ------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Detection zones**       | Personnel-detection-system (PDS) zone geometry and dynamic adjustment based on truck speed and direction |
| **Stopping distance**     | Maximum stopping distance from detection event to truck at rest, parameterised by truck velocity         |
| **Operator controls**     | Manual override, mode selection, E-stop on the truck and in the operating environment                    |
| **Pedestrian protection** | Specific provisions for environments where pedestrians are present                                       |
| **Charging and battery**  | Safe charging-station behaviour                                                                          |
| **Communication**         | Inter-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](/standards/iec-61496) 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

```yaml theme={null}
- 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:

```python theme={null}
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 area                 | Pattern                                                                                               |
| --------------------------- | ----------------------------------------------------------------------------------------------------- |
| §5.6 Stopping distance      | Parameterised sim scenarios across speed × payload × obstacle-position grid; hardware spot-validation |
| §5.7 Personnel detection    | Sim + hardware tests with operator-mannequin obstacles, including pinch-point geometries              |
| §5.13 Manual operation mode | Mode-transition tests; verify safety functions remain active in manual mode                           |
| §5.15 Communication         | Communication-loss tests; verify safe-state on heartbeat timeout                                      |
| §6.3 Wireless network       | Network-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

```bash theme={null}
rbtk standard pin iso-3691-4-2023 --project acme-amr/firmware
```

Part of the `amr-eu` bulk template.

## Next steps

<CardGroup cols={2}>
  <Card title="AMR compliance pattern" icon="truck" href="/compliance/amr-iso-3691-4">
    End-to-end ISO 3691-4 conformity workflow.
  </Card>

  <Card title="IEC 61496" icon="eye" href="/standards/iec-61496">
    The protective-equipment standard for the underlying scanners.
  </Card>

  <Card title="ANSI/RIA R15.08" icon="map-location-dot" href="/standards/ansi-r15-08">
    The US analogue, often dual-claimed.
  </Card>
</CardGroup>
