Prerequisites
Work through this list in order on the host that will run the Safety Core. Each item gives one command to check it and the output you should see. Do not start the Quick Deployment until every check passes.
The Quick Deployment runs the Safety Core on the same host as AI Perception. It reads Kafka at
localhost:9092, VST at 127.0.0.1:30888, and the perception containers through the local Docker
socket. For perception on another host, see Custom Deployment.
Placeholders
Checklist
-
Supported target and operating system. The host is an x86-64 server with an NVIDIA GPU, or an NVIDIA IGX Thor. The versions are in Software.
Expected:
x86_64oraarch64, then the release from that table, for exampleVERSION_ID="24.04". -
Expected: one line per GPU, with the driver version from Software.
-
Docker Engine and the NVIDIA Container Toolkit. Docker 28.3.3 or later and below 29.5.0, with the
nvidiaruntime registered.Expected: a version such as
28.3.3, then"nvidia". -
Your user is in the
dockergroup.Expected:
docker. If it is missing, runsudo usermod -aG docker "$USER", then log out and back in. -
sudoaccess. Some steps install packages and create the log files under/var/log/psf.Expected:
ok. -
Tools used by the Quick Deployment commands.
Expected: five lines ending in
ok.ffprobecomes from theffmpegpackage (sudo apt-get install -y ffmpeg).ngcis the NGC CLI, set up in the next item. -
NGC account, licence and API key.
- Sign in at https://ngc.nvidia.com with an NVIDIA account.
- Open the Halos Outside-In Safety container page and accept the licence when prompted.
- Create a Personal API key with
NGC Catalogselected, as described in NGC access. - Run
ngc config setand enter the key.
Expected: a table whose
apikeyrow shows a masked key. -
Docker is logged in to
nvcr.ioand the image pulls. The username is the literal string$oauthtokenand the password is your NGC API key. Signing in to the NGC CLI does not log Docker in. A pull withoutdocker login, or before the licence is accepted, fails with401 Unauthorized.Expected:
Login Succeeded, then a last line that starts withStatus: Downloaded newer imageorStatus: Image is up to date. -
AI Perception is running on this host. Deploy the VSS Warehouse Blueprint 2D profile as described in Deploy AI Perception, with
BP_PROFILE=bp_wh_kafka,SAMPLE_VIDEO_DATASET="warehouse-loading-dock-3cams-synthetic"andNUM_STREAMS=3. The Perception Monitor (PCM) checks the containers below. Once PCM has seen one of them, that container stopping for any reason is a fault in the perception pipeline.Expected: 5 lines, each ending in
running 0. If a container isMISSINGbecause your VSS deployment names it differently, change the list as described in Required monitors. -
The calibration restricts people from the ROI. The forklift safety function reacts to a person in the region of interest only if the ROI lists
PersoninrestrictedObjectTypes. The shipped demo calibration does.Expected: every ROI is listed with a list that contains
'Person', for example[('roi-id-1', ['Person'])]. -
Perception is publishing on Kafka. The Safety Core reads the
mdx-eventsandmdx-framestopics from the broker atlocalhost:9092.Expected:
Processed a total of 1 messagestwice.mdx-eventscarries tripwire and ROI events, so it can stay empty for a while; repeat the check if it reports 0 messages. -
The three demo cameras are online in VST.
Expected:
['Camera', 'Camera_01', 'Camera_02']. Each name must appear exactly once. -
Kernel socket buffers. The NvPSD Gateway and the decision makers refuse to use their socket unless
net.core.rmem_maxandnet.core.wmem_maxare at least836436. The VSS kernel settings already set both higher.Expected: two numbers, each
836436or more. If either is lower, run:Expected: both settings printed back. The file name sorts before the VSS settings file, so a larger VSS value still wins after a reboot. The decision maker on the Functional Safety Island needs more; see SDM on FSI. Why the limit exists is explained in Kernel socket buffers.
-
The VST safety overlay is on. VST draws the forklift safety state on the video when it receives the decision packets on
halo_safety_udp_port. The setting ships as-1(off). The Quick Deployment’s command receiver forwards every decision to port12345. Skip this item if you do not need the decision on the video.Expected:
"halo_safety_udp_port": 12345. Several copies ofvst_config.jsonexist in the VSS tree; edit the one underwarehouse-2d-app, which VST mounts.
What the container prepares for you
You do not create these. The container creates or adjusts them every time it starts:
- inside the container, the socket directory
/run/nvpsf, with mode1777, before it starts the SEI daemon; - in a learning run, the ownership of the mounted SAIM and PCM baseline directories,
/opt/nvidia/psf/bin/saim_baselineand/opt/nvidia/psf/bin/pcm_baseline, which it gives to the container usernvidiaso that the monitors can write their baselines.
The Debian package installs both baseline directories, with the reference baselines. You create the log files yourself, in Prepare the log files.
Next: Applications, then Quick Deployment.