The SIC framework can be installed on your machine by making use of Docker.
Table of Contents |
---|
Requirements
Java 8+ (e.g. download JDK 19 and follow installation instructions)
Please make sure that you have at least 8 GBs of RAM on your machine. We also highly recommend a somewhat decent processor.
It is worth checking if your WiFi adapter's drivers are up-to-date (see e.g. here on how to do that).
Installation
Download and install Git and the Git-LFS extension.
On Windows, make sure Git is configured to 'checkout as-is', e.g. by configuring this in the installation (re-install Git if you are unsure about this)
❗ Make sure that Git-LFS is enabled (by running
git lfs install
)
Make sure ports 6379, and 8000-8003 can be reached on your machine (i.e. by a robot).
On Windows and Mac, this is generally not a problem (though some firewalls like McAfee might interfere, and make sure to allow Docker to work on all networks when requested); on Linux systems your firewall will likely have to be adjusted.
Our infrastructure runs in Docker containers, so please check if you meet the relevant system requirements in order to download and install Docker Desktop (Windows/Mac) or Docker Engine (Linux).
Using Docker Desktop may cause conflicts with virtualisation tools like VirtualBox and VMWare.
If you cannot use Docker Desktop, download and install Docker Toolbox instead.
Please read and follow the installation instructions of either tool carefully!
Clone the SIC Git repository in a folder under your user directory:
git clone https://bitbucket.org/socialroboticshub/docker.git
Running the Infrastructure (locally)
Running with Docker Desktop or Docker Engine
This is the preferred most performant mechanism. SIC will be available on 127.0.0.1 and on the IP-addresses of your machine itself (due to port forwarding).
Make sure Docker Desktop or Docker Engine is running (it is by default after installation) and up-to-date .
In a terminal, navigate to the location of the cloned docker repository.
See the bottom of this page for solutions to common issues.
(Optional) Check for and receive updates
use
git pull
in the docker repository.
Here, you can use the
docker-compose
command to control the infrastructure:docker-compose up <services>
: starts the requested services.If there were updates, add the
--build
flag to the command (afterup
, sodocker-compose up --build <services>
) when starting the framework (so: only once)<services>
can be one or more of: [face_recognition, people_detection, dialogflow, webserver, emotion_detection, robot_memory, stream_audio, stream_video, wizard, text_to_speech, sentiment_analysis]. If none of these services are needed for your application, use ‘redis’.Use the
-d
flag if you do not want live logging output; otherwise kill with CTRL-C or CMD-C.Launching a service for the first time might take some time (especially for face_recognition, people_detection and emotion_detection). You will be asked permission to share quite some folders on the first launch; accept them all.
docker-compose down
: kills all services.You can also add explicit services to kill.
See the devices page for more information on connecting devices to the infrastructure. Always make sure the required services are running first.
Running with Docker Toolbox (legacy)
This is a less performant and deprecated, but more compatible mechanism. SIC will be available on 192.168.99.100 (be aware that almost all applications assume 127.0.0.1 by default) and on the IP-addresses of your machine itself (due to port forwarding).
Use the ‘Docker Quickstart Terminal’ shortcut to start the basic Docker instance.
After the very first run, a modification is needed to the VM that is created by the toolbox. Open the ‘Oracle VM Virtualbox Manager’ on your machine, right-click on the ‘default’ VM and select ‘Properties’. Then navigate to ‘Network’ > ‘Adapter 1’ > ‘Advanced’ > ‘Port Forwarding’, and use the green plus-icon at the top-right to add rules for port 6379 and ports 11880-11884. After clicking ‘OK’ on all dialogs, shutdown the Docker VM (called ‘default’) by right-clicking on it and selecting ‘Shutdown > Shutdown via ACPI’. Start again at step 1.
As soon as you see the '$' prompt, navigate to the location of the docker repository you cloned, e.g.
cd /c/Users/Vincent/Git/docker
.(Optional) Check for and receive updates
use
git pull
in the docker repository.
Here, you can use the
docker-compose
command to control the infrastructure:docker-compose up <services>
: starts the requested services.If there were updates, add the
--build
flag to the command (afterup
, sodocker-compose up --build <services>
) when starting the framework (so: only once)<services>
can be one or more of: [face_recognition, people_detection, dialogflow, webserver, emotion_detection, robot_memory, stream_audio, stream_video, wizard, text_to_speech, sentiment_analysis]. If none of these services are needed for your application, use ‘redis’.Use the
-d
flag if you do not want live logging output; otherwise kill with CTRL-C or CMD-C.Launching a service for the first time might take some time (especially for face_recognition, people_detection and emotion_detection). You will be asked permission to share quite some folders on the first launch; accept them all.
docker-compose down
: kills all services.You can also add explicit services to kill.
See the devices page for more information on connecting devices to the infrastructure. Always make sure the required services are running first and remember to change 127.0.0.1 to 192.168.99.100 where needed.
Creating an Application
You are now ready to develop and run your application(s). For our Python API, please see the Python connector page. You could also make use of a GOAL Agent; see the EIS connector.
Always make sure to use the correct server IP address in your applications depending on the installation method you chose (so either 127.0.0.1 or 192.168.99.100).
Common issues
Upon docker-compose up, I get an error (on Windows) saying ‘An attempt was made to access a socket in a way forbidden by its access permissions’
...
When using Docker Desktop, there might be too little CPU and/or RAM allocated to the Docker containers. Please see here for increasing the resources on Windows (only applicable in certain Docker configurations) and here for increasing them on Mac. At least 4GB RAM for Docker is recommended.
More issues will be documented on the Frequently Asked Questions page.