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.