Configuration files#

The robot has multiple configuration files that can be adjusted to modify its default behaviour. Most of these files are stored inside the user-writtable /home/pal/.pal/ directory: if desired, you can modify these files to adjust the configuration of your robot.

Caution

Note that a wrong configuration might prevent your robot to successfully boot. While you should always be able to access the robot via eg ssh to repair, we strongly recommend to be very careful when modifying default configurations.

If a given configuration file is missing, the robot will fallback to using those under the /opt/pal/gallium/share directory.

Main configuration files#

  • .pal/pal_startup defines the ROS nodes automatically launched at start-up. It overwrites default start-up definitions defined in /opt/pal/gallium/share/pal_startup_base. See below for details;

  • .pal/www/webapps includes pages uploaded by users from the WebGUI Touchscreen manager;

  • .pal/motions is where motions created by WebGUI Motion Builder are stored. Do not edit motions directly from here; always use the WebGUI instead;

  • .pal/ari_maps is where maps created by the navigation pipeline are stored, either using the WebGUI or RViz. See Managing maps;

  • .pal/tts: see below;

  • .pal/chatbots-enabled and .pal/chatbot_cfg: the chatbot configuration files. See;

  • .pal/presentations is where presentations created by WebGUI Presentations tool are stored. Do not edit presentations directly from here, always use the WebGUI instead;

  • .pal/wt stores the ‘tabs’ visible in the WebCommander interface. Users can add new buttons or customize new plugins if desired;

  • .pal/face_db contains the facial database(s) of the robot, used to recognise people when the robot meets them. See Data management, security, data privacy for details about how to deal with privacy-sensitive data;

  • .pal/kb contains the knowledge graphs (ontologies) of the robot as described in Knowledge and reasoning.

Start-up definitions#

When the robot boots up, the software required for its operation starts automatically. This is controlled by start-up definition files, explained in detailed here: ARI’s start-up process and application management.

Configure an application to launch at start-up explains how to create/modify your own start-up definitions.

Touchscreen content configuration#

When a new touch-screen page is created or uploaded through the WebGUI, as described in ARI’s Touchscreen manager, they are stored inside the /home/pal/.pal/www/webapps/pages/ directory. Each page consists of a .json file and a folder with HTML/JS/CSS content.

../_images/touch_config.png

The .json file simply contains the name and ZIP file of the page:

../_images/page_cfg.png

/home/pal/.pal/www/webapps/page_cfg contains configuration files for the robot’s pages.

  • pages.json lists all uploaded pages from the WebGUI. Do not modify it by hand, as it would result in an inconsistent state for the WebGUI interface;

  • config.json sets the default page the robot will show when switched on.

Caution

It is not recommended to change the touchscreen configuration by modifying content in ~/.pal/www/webapps/. Instead, always upload new ZIP files or content through the WebGUI, as explained in ARI’s Touchscreen manager. The only file you may adjust is the page_cfg/config.json to manually change the default screen.

Text-to-Speech configuration#

The /home/pal/.pal/tts/ contains several configurations related to speech.

  • default_language.yaml users can change the robot’s default language by modifying this file. You normally want to change it via the user interface or the ROS parameter.

  • voices.yaml contains acapela voices to be used for each locale;

  • tts.*.ini: those files used to contain string translations. They are not currently used;

  • tts_audio_cfg.yaml indicates the default output speaker that the robot will use. If a different speaker is plugged on the robot that is not its own, you may change this file to stream the audio through there.

tts:
    audio_config:
        device: default