Skip to content

Diagnosis & Logging

drag&bot as KEBA Software-Unit

For diagnosis purposes it is possible to create a statereport from inside the Device Administration page of a KEBA PLC Device e.g. the CP 520/C. This site can be reached by opening the browser and entering the IP address of the KEBA PLC into the url field of the browser.

DevAdmin to download state report for diagnosis

Now a statereport can be requested of the full Kemro X system together with the drag&bot module. There are two options available (see red box 1 in the picture above):

  • Local: Choose local, when you want to create a statereport of the device where the device administrator UI is running e.g. C5 or DU3 controller
  • System wide: A system wide state report with all additional devices e.g. KeTop, DM570.

Whenever the statereport is ready it can be downloaded from the device by clicking the Download button (see red box 2 in the picture above). The name of the download file will be statrep_latest.tgz. The file will be compressed as a .tar.gz Archive and will be structured as described in the following:

Filestructure Overview

Main folder structure of the StateRep zip

  • config/: Contains configuration data of drag&bot e.g. the Component-Manager startup list, naming of IOs, robot base transformation, a list of robot TCPs and more.
  • data/: Contains a folder structure of drag&bot application data e.g. Datastore, grids, images, imports, meshes, programs, quick_access_poses, quick_programs, scenarios.
  • roslogs/: Logfiles of the drag&bot Runtime in a ROS format.
  • docker_logs/dnb_mongo/: MongoDB database log data docker logs.
  • docker_logs/dnb_studio_fe/: The drag&bot frontend log data docker logs.
  • docker_logs/dnb_studio_be/: The drag&bot backend log data docker logs.

config/ folder

Config folder structure of the StateRep zip

  • components.yaml: Contains a list of currently installed components. This component list do also contain the according configuration values like IP, port etc.
  • frames.yaml: Contains the robot base transformation in respect to the world frame. Can also contain other transformation values.
  • ios_<robot>_driver.yaml: A list of labeled I/O of the robot driver.
  • model_database.yaml: A list of models used for the scene in the Scenario Designer.
  • scene_config.yaml: Will have the path to the scene, when a predefined scene for the Scenario Designer was selected.
  • tcp.yaml: A list of created tool center points (TCPs) for the current robot system.

data/ folder

All application data of the current robot system.

Data folder structure of the StateRep zip

roslogs/ folder

All application data of the current robot system.

Roslogs folder structure of the StateRep zip

Logging in UI

Whenever an error is thrown by drag&bot OS, this error will be written as a log inside the logging system of drag&bot. As an example we will start by throwing a simple TIMEOUT exception from within a running drag&bot application as seen in the following picture.

Example of a timeout error in the drag&bot OS

The above error was thrown by the Digital I/O Device - Wait for function block. In this case the timeout was reached and the error is unhandled which is shown to the user by a Toast message with the red error background in the drag&bot UI. This toast will disappear after a short time from the main view of the UI. To see all the past Toasts which were shown, open the Notification Area of drag&bot. To open it you need to click on the lower left bell icon. Then you will see the Toast history in the first view as shown in the following picture.

Example of a timeout error in the drag&bot OS console view

By clicking on the Console icon on the top you can change the view to the console output. This is a live output produced by the underlying ROS system which is running in the dnb_runtime container.

Example of a timeout error in the drag&bot OS console view

Logging in roslogs/

The above console output can also be found inside the statereport within the roslogs/ folder. To find the log inside the logging files follow these steps:

  1. Open the roslogs/ folder in the statereport tar.
  2. Open the log/ folder Roslogs folder structure level 1
  3. Find the latest timestamp and open the folder Roslogs folder structure level 2
  4. You will see a list of all node logfiles of the running robot system. Open the file dnb_executor-<number>.log as a textfile. Roslogs folder structure level 3
  5. Look for the TIMEOUT error or for other reasons why the executor state-machine was stopped Executor roslog output

Alternative rosout.log

There is also the option to see all node outputs in one file which is the rosout.log. This file contains all the logs of all nodes which provides less overview. The timestamps provided here are UNIX timestamps. To convert them into readable timestamps you can use a coding interface like python or you can convert them online by using the website: https://www.unixtimestamp.com/ Roslogs folder structure level 3 rosout

The output will look like this: Rosout log output

Logging in docker_logs/

While roslogs/ will show application errors of drag&bot, there can be more reasons why a system is not healthy or did stop working. The reason maybe some system setting. A possible issue can be found by having a look inside the docker logs files provided inside the docker_logs/ folder.