Base Profile#

The base profile runs the Safety Core on an existing VSS Warehouse feed. There is no Isaac Sim and no closed loop: the MUTE / UNMUTE decision renders as the VST halo_safety overlay. It runs on an x86 host or on an IGX Thor.

VSS Warehouse 3.2 (perception)
  -> Kafka (mdx-events)
    -> Safety Core (MUTE / UNMUTE)
      -> UDP 64-byte packet (port 12345)
        -> VST halo_safety overlay

Before you start#

Complete the common setup in the Deployment Overview first (NGC login, clone the repo, and deploy VSS Warehouse 3.2 with Kafka enabled). base follows the VSS Warehouse hardware requirements: VSS perception plus the Safety Core, no Isaac Sim, so no RT-core GPU is needed. The VSS calibration must include the monitored ROIs (see Safety Core prerequisites in the Safety Core Guide).

Enable the overlay#

The overlay is what base renders to. In the VSS 2D VST config (.../warehouse-2d-app/vst/configs/vst_config.json) set the halo_safety UDP port, which ships disabled (-1):

"halo_safety_udp_port": 12345

This port must match COMM_UDP_PORT (x86) or PSF_CMD_RX_PORT (Thor) in the profile env, both 12345. Restart VST after editing.

Deploy on x86#

Fill deployments/profiles/base.env (HOST_IP, MDX_DATA_DIR, DOCKER_GID; PSF_IMAGE and COMM_UDP_PORT are pre-set), then create the log directory and start the one service:

cd deployments
../closed-loop-testing/scripts/setup.sh base
docker compose --env-file profiles/base.env up -d

One service (safety-core) starts and consumes events from the VSS feed.

Deploy on IGX Thor#

On Thor the Safety Core is hybrid: an nv-psf container plus aarch64 host binaries, launched by a helper script rather than docker compose. The decision-maker runs on the CCPLEX (start here), or on the Functional Safety Island (FSI) for an advanced setup.

Fill deployments/profiles/base-thor.env (HOST_IP, SDM_TARGET=ccplex), then install the host binaries:

set -a; source deployments/profiles/base-thor.env; set +a
ngc registry resource download-version "$PSF_TEGRA_RESOURCE"
sudo dpkg -i */psf-tegra.deb

Point the Safety Core at this host’s VST streams by filling sensor_config_thor.conf. Its format is described in Create the sensor configuration file in the Safety Core Guide. Then launch:

bash closed-loop-testing/scripts/launch_thor_safety.sh base-thor

launch_thor_safety.sh reads base-thor.env and invokes launch_hoisa.sh with the matching flags. For the launch_hoisa.sh modes and flags, see Quick Start with launch_hoisa.sh in the Safety Core Guide.

To run the decision-maker on the FSI instead, set SDM_TARGET=fsi in base-thor.env. The one-time FSI firmware reflash and the nvFsiCom bridge are described in Option C: SDM on FSI in the Safety Core Guide.

Verify#

Open the VST UI at http://<HOST_IP>:30888/vst/ and confirm the halo_safety overlay reacts to the feed: “Standard Mode” when safety is active and “Efficient Mode” when loading is allowed, with a proximity bubble around the forklift. The Safety Core logs each decision: on x86 (compose) at $MDX_DATA_DIR/psf-log/pss.log; on IGX Thor (host binaries) under /var/log/psf/, see Logs in the Safety Core Guide.

Troubleshooting#

See Troubleshooting in the Safety Core Guide.