Introduction

This quick installation guide explains how to get, install and run ARCloud services locally, on your computer, and how to test them with test client applications.

Configure the Docker engine

Add our repository to the "insecure-registries" of your Docker Engine configuration, like this:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "debug": true,
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "insecure-registries": [
    ...
    "repository.solarframework.org"
  ],
  "registry-mirrors": []
}

Pull the service images

check the available versions of the ARCloud Services on our public repository to be able to pull their images to your local Docker engine:
https://repository.solarframework.org/generic/solar-services-delivery/Docker_images_index.txt

Then, use the docker pull command.

Services without GPU use:

docker pull repository.solarframework.org/docker/mapupdate/1.0.0/mapupdate-service:w.x.y.z
docker pull repository.solarframework.org/docker/relocalization/1.0.0/relocalization-service:w.x.y.z
docker pull repository.solarframework.org/docker/relocalization/1.0.0/relocalization-markers-service:w.x.y.z
docker pull repository.solarframework.org/docker/mapping/1.0.0/mapping-multi-service:w.x.y.z
docker pull repository.solarframework.org/docker/relocalization/1.0.0/mappingandrelocalizationfrontend-service:w.x.y.z

Services with GPU use:

docker pull repository.solarframework.org/docker/mapupdate/1.0.0/mapupdate-cuda-service:w.x.y.z
docker pull repository.solarframework.org/docker/relocalization/1.0.0/relocalization-cuda-service:w.x.y.z
docker pull repository.solarframework.org/docker/mapping/1.0.0/mapping-multi-cuda-service:w.x.y.z

Pull the test client images

check the available versions of the ARCloud test clients on our public repository to be able to pull their images to your local Docker engine:
https://repository.solarframework.org/generic/solar-services-delivery/Docker_images_index.txt

Then, use the docker pull command.

docker pull repository.solarframework.org/docker/tests/1.0.0/map-update-client:w.x.y.z
docker pull repository.solarframework.org/docker/tests/1.0.0/map-update-displaymap-client:w.x.y.z
docker pull repository.solarframework.org/docker/tests/1.0.0/mapping-multi-producer:w.x.y.z
docker pull repository.solarframework.org/docker/tests/1.0.0/mapping-multi-viewer:w.x.y.z
docker pull repository.solarframework.org/docker/tests/1.0.0/mappingandrelocalizationfrontend-client:w.x.y.z
docker pull repository.solarframework.org/docker/tests/1.0.0/mappingandrelocalizationfrontend-relocviewer:w.x.y.z

Get the launch scripts for services

Those scripts are available on our public repository, for Windows (".bat" files) and for Linux (".sh" files):

At the end of the docker run command (last line of the scripts), you should replace the version of the service image by the current one if needed.

Get the launch scripts for test clients

Those scripts are available on our public repository, for Windows (".bat" files) and for Linux (".sh" files):

At the end of the docker run command (last line of the scripts), you should replace the version of the client image by the current one if needed.

Launch the services

ARCloud Services depend on each other and you must launch them in a specific order to test them all:
Map Update → Relocalization → Relocalization Markers → Mapping → Front End

As some ARCloud Services depend on others, sometimes you need to give some services URL (IP:port) as script parameters. To check if a script needs such parameters, just run it and you will see a help message if needed.

For example:

launch_relocalization.sh
You need to give Map Update Service URL as parameter!

A specific message will be prompted for each necessary parameter.

To give the local URL of a service, use the Docker bridge IP address (172.17.0.1) and the port defined in the launch script.

For example:

launch_relocalization.sh 172.17.0.1:50053

The default ports currently defined for the ARCloud Services are:

  • Services without GPU (no Cuda):

    • Map Update: 50053

    • Relocalization: 50052

    • Relocalization Markers: 50050

    • Mapping/Mapping No Drop: 50051

    • Front End: 50055 / 5000→5009 (for Unity clients)

  • Services with GPU (Cuda):

    • Map Update: 60053

    • Relocalization: 60052

    • Mapping/Mapping No Drop: 60051

    • Front End: 60055 / 5100→5109 (for Unity clients)

Check that the services are running

You can use the "docker container ls" command to check if the services are correctly running, and to see the ports used by each one.

docker container ls
CONTAINER ID   IMAGE                                                                   COMMAND               CREATED              STATUS              PORTS                                                       NAMES
d313d8945c02   artwin/solar/services/mappingandrelocalizationfrontend-service:latest   "./start_server.sh"   14 seconds ago       Up 12 seconds       0.0.0.0:5000-5009->5000-5009/tcp, 0.0.0.0:50055->8080/tcp   solarservicemappingandrelocalizationfrontend
3ffcd5baf375   artwin/solar/services/mapping-multi-service:latest                      "./start_server.sh"   36 seconds ago       Up 35 seconds       0.0.0.0:50051->8080/tcp                                     solarservicemappingmulti
b634466b4c50   artwin/solar/services/relocalization-markers-service:latest             "./start_server.sh"   51 seconds ago       Up 50 seconds       0.0.0.0:50050->8080/tcp                                     solarservicerelocalizationmarkers
43a631d40498   artwin/solar/services/relocalization-service:latest                     "./start_server.sh"   About a minute ago   Up About a minute   0.0.0.0:50052->8080/tcp                                     solarservicerelocalization
7e8b740da874   artwin/solar/services/map-update-service:latest                         "./start_server.sh"   About a minute ago   Up About a minute   0.0.0.0:50053->8080/tcp                                     solarservicemapupdate

Display the logs of the services

You can display the logs of each service using its Docker name:

docker logs [-f] [service_name]

For example:

docker logs -f solarservicemapupdate

Install and launch a X-server

You must have a X-server running on your system to manage the graphical outputs of the test applications.

For example, you can download and install a X server for Windows from this web site: https://sourceforge.net/projects/vcxsrv/

Then, use the XLaunch shortcut installed on the Windows desktop.

Select the following options on the screens that appear successively:

Display settings : 'Multiple windows'
Client startup : 'Start no client'
Extra settings : check 'Disable access control'
Configuration complete : 'Finish'

Warning : if the Windows Firewall is displayed, you must allow VcXSrv connections from Public and Private networks

Launch the test clients

You can now launch the client Docker containers using the script files, giving the URL of the service you want to test and your computer local IP address (to export graphical display) as parameter:

launch_service.sh [service_url] [host_IP_address]
launch_service.bat [service_url] [host_IP_address]

For example:

launch_mapping_multi_viewer.bat 172.17.0.1:50053 172.17.0.1:50052 192.168.56.1

Then, you can verify that the application is running correctly by looking at its traces, with this Docker command:

docker logs [-f] clientcontainername
On Windows host, do not forget to start the X Server manager before running the test application

to know more…​

All the precise and detailed information you want to know about ARCloud services is available in the ARCloud Services documentation.