This repository runs the deployed YOLO segmentation and anomaly-localization pipeline on a Jetson Orin. It connects to the Raspberry Pi ROS 2 graph through rosbridge; it does not join the robot DDS network.
Raspberry Pi camera, depth, scan, map and pose topics
|
rosbridge :9090
|
Jetson Orin
|
YOLO segmentation, tracking and localization
|
images, JSONL events and visualization topics
The Compose stack starts:
jetson_anomaly, usingfilipsijak2/jetson_anomaly:jetson_anomaly-dev-localjetson_log_viewer, exposing read-only artifact directories on port8081
The application runtime configuration consists of two files:
config/anomaly_rosbridge.yamlcontains topic names, model settings, thresholds, tracking, privacy output, 3D detections and inspection settings.config/containers/jetson_anomaly.envcontains the runtime environment loaded by Compose.
Environment values override equivalent YAML values. Keep both files synchronized when changing a duplicated setting.
The active model is yolov8n-seg.pt, the anomaly class is bottle, tracking uses bytetrack.yaml, and GPU inference uses device 0 with half precision.
The active Raspberry Pi endpoint is:
ROSBRIDGE_URL=ws://raspberry.local:9090The configured inputs are:
/camera/realsense/color/image_raw/compressed/camera/realsense/aligned_depth_to_color/image_raw/compressedDepth/camera/realsense/color/camera_info/map/robot_pose_map/scan
The configured outputs are:
/anomaly/events/anomaly/events/readable/anomaly/markers/anomaly/detections_3d/anomaly/debug_image/compressed/anomaly/privacy_image/compressed/anomaly/map_snapshot/compressed/anomaly/inspection/*
Compose mounts:
./modelsat/workspace/models./anomaly_logsat/home/jetson/anomaly_logs./logsat/workspace/logs
Model binaries, generated images and logs are ignored by Git. See models/README.md for model placement.
docker compose pull
docker compose up -d
docker compose logs -f jetson_anomalyFor a local image build:
docker compose -f docker-compose.yaml -f docker-compose.build.yaml buildpython -m pip install -r requirements-yolo.txt -r requirements-rosbridge.txt
pytest -q
python -m compileall src/jetson_anomaly_detector/jetson_anomaly_detector
bash -n scripts/start_jetson_anomaly.shThe GitHub Actions deployment job requires these repository secrets:
TAILSCALE_AUTHKEYJETSON_SSH_USERJETSON_SSH_PRIVATE_KEY_B64orJETSON_SSH_PRIVATE_KEY
It also requires JETSON_HOST, preferably as a repository secret. A repository variable with the same name is supported as a fallback. JETSON_STACK_DIR accepts either form and defaults to ~/jetson-stack.