Running Applications

Configuration of Ice environment

For a local setup i.e. everythings runs on one PC, no special setup is needed. For a multi PC setup, some special configuration might be needed. If you are unsure if your setup needs this, just do it. It doesnt hurt.

If your machine has multiple network interfaces, Ice advertises its services on all interfaces by default. However, other PCs can often only reach the services via one specific interface. Therefore, it is necessary to specify the Ice.Default.Host property. This property needs to be set to the IP of the interface that should be used. It is not possible to specify multiple IPs/Interfaces.

Add 'Ice.Default.Host=<YOUR-IP>' to the ~/.armarx/default.cfg on all PCs. Each with the IP of that PC. Additionally, export on the PC where icegrid is running (i.e. where you execute "armarx start") the environment variable ICE_DEFAULT_HOST:

export ICE_DEFAULT_HOST=<IP>

and execute cmake in ArmarXCore again. This will generate this property into the config of IceStorm. Now, start or restart Ice and all applications.

Starting the Ice Infrastructure

After compiling the framework as described in Compiling ArmarXCore it is time to start the necessary infrastructure required to run ArmarX programs by executing

${ArmarXCore_DIR}/bin/armarx start 

The startup of IceGrid can be configured by changing the variables found in the file

${HOME}/.armarx/default.cfg 

This file gets automatically created upon first execution of 'armarx start'.

In order to run multiple IceGrid instances on one computer the registry port must be changed as described in Multi-User Setup.

Multi-User Setup

ArmarX components use the IceGrid registry to locate all necessary components and proxies. Therefore, the hostname and the port of the IceGrid node running the registry must be specified upon application startup.

Running several IceGrid registries on one host requires each registry instance to use a unique port number. The default port value of 4061 is defined by the entries in the file ${HOME}/.armarx/default.cfg

Ice.Default.Locator=IceGrid/Locator:tcp -p 4061 -h localhost
IceGrid.Registry.Client.Endpoints=tcp -p 4061

After editing the port number record it in

${ArmarXCore_DIR}/../config/ICEGRID_PORT_USAGE.txt 

This helps avoiding conflicts and accidential shutdowns of other users registry.

Running ArmarX applications

There are several ways to start ArmarX applications once the infrastructure is running

Stopping the Ice Infrastructure

Stopping the framework infrastructure is as simple as executing the script

${ArmarXCore_DIR}/bin/armarx stop 

This stops all Ice related daemons and terminates deployed programs. Locally started applications need to be stopped manually.

Please note that all deploayed programs which were running prior to termination will automatically execute again at the next startup.

Resetting the Ice Infrastructure

Resetting the framework infrastructure is performed by the following script

cd ${ArmarXCore_DIR}/bin/armarx reset 

This calls 'armarx stop', removes the IceGrid registry, and calls 'armarx start'.

After calling this script the registry will be completely empty and only IceStorm will be running. All previous deployments are deleted and have to be redeployed after the reset.