Fire Extinguisher Detector Server

This is an example of a network compute bridge server. It is similar to, but uses Keras Retinanet instead of TensorFlow. The provided model specifically detects fire extinguishers

Build and Export

This example can be run on a local machine directly, but is easier to use with Docker.

The Docker image can be built and exported with the following commands:

# builds the image
sudo docker build -t fire_ext_detector .

# exports the image, uses pigz
sudo docker save fire_ext_detector | pigz > fire_ext_detector.tar.gz

To build the image for CORE I/O:

# Prerequisites
# Install the pigz and qemu packages
sudo apt-get install qemu binfmt-support qemu-user-static pigz
# This step will execute the registering scripts
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

# Builds the image
sudo docker build -t fire_ext_detector:l4t -f Dockerfile.l4t .

# Exports the image, uses pigz
sudo docker save fire_ext_detector:l4t | pigz > fire_ext_detector.tar.gz


To run this example on a Spot CORE, run:


Otherwise, run:

sudo docker run -d --name retinanet_server --network host --env BOSDYN_CLIENT_USERNAME --env BOSDYN_CLIENT_PASSWORD --restart unless-stopped fire_ext_detector -d . --port $PORT $ROBOT_IP
  • $PORT is the port to use for the server on the machine the server is running on

  • $ROBOT_IP is the IP address or hostname of your Spot.

  • BOSDYN_CLIENT_USERNAME is the environment variable for the username for the robot

  • BOSDYN_CLIENT_PASSWORD is the environment variable for the password for the robot

To run this example on a CORE I/O, run:

# Load the image
sudo docker load -i fire_ext_detector.tar.gz

# Run the container
sudo docker run -d \
    --gpus all \
    --name retinanet_server \
    --network host \
    --restart unless-stopped \
    -v /opt/payload_credentials/payload_guid_and_secret:/opt/payload_credentials/payload_guid_and_secret \
    fire_ext_detector:l4t \
    -d . --payload-credentials-file /opt/payload_credentials/payload_guid_and_secret

Spot Extension for CORE I/O

This example also provides a script for building the fire extinguisher detector into a Spot Extension. This script requires the same prerequisites as listed above for building a docker image for CORE I/O. Additionally, this script requires that the current user be added to the docker user group. If this is not the case, the script needs to be run with root privileges.


The output file will be called fire_ext_detector.spx and can be uploaded to a CORE I/O.