How to install Ubuntu in a VM on MacOS with M1 Chip

Install a Virtual Machine that supports Mac M1 Architectures

Well, the options are limited.

  • I went for UTM.

Install ubuntu server 20.04


Coding Environment

  • sudo apt-get install openjdk-17-jre-headless (or something like that)
  • PyCharm from JetBrains.
  • CoppeliaSim.
  • GitHubDesktop.
  • Terminator.
  • HTop.

How to use Sensor Glove with Robot Hand

Repository Clone


Additional Requirements

Connection with PC

First step is to make sure that the Sensor glove is connected to the USB0 and Robot Hand is connected to USB1. If this is not in order, we might have to change it inside the files and aslo in rosserial_python library. 

Connecting with ROS

  • Initiate Roscore with command: roscore
  • Run the Rosserial Python command to initiate the Serial connection between with the hand through Python:

          rosrun rosserial_python serial_node.py tcp

           You will see something like this:

  • After this, run the Arduino file to initiate the calibration. If the Serial connection is finished, you will see something like this:

Connecting with the Robot Hand

In order to connect with the hand, just run this file:

roslaunch rh8d start_rh8d.launch

DFG Projektkostenabrechnung


  • Spätestens alle 3 Monate sollen Mittel von der DFG abgerufen werden.
  • Das erfolgt durch den Lehrstuhl.
  • Mittelabruf mit dem Formular DFG-Vordruck 41.039 (41_039_deMUL_Template.doc).
  • Offene Kostenpositionen können in SAP abgerufen werden, siehe Bilder unterhalb.


Kreditkartenabrechnungen oder Banküberweisungen in Vorleistung werden per Email an Frau Anja Schweinzger geschickt.Das ausgefüllte Refundierungsformular und die Belege müssen beigefügt werden.

Beschaffungen von Sachmittel

  • Anlagen werden wie gewohnt per Formular angelegt. SAP Bestellungen per Kostentyp Anlage. Als Abrechnugnskonte das AP26019001 angeben.
  • GWG ???

How to install Lotus Notes on Linux & MacOS

Get Lotus Notes for Linux or IOS


Details to the MAC OS Installation (M1)

  • Run the installer called, Notes1101FP4_DE_IT_Notarized_Mac.dmg.
  • Start the package: HCL Notes Installer-nl1d.pkg
  • Note that the installer ‘Notes_1101_Mac_German_Italian.dmg‘ is not working on an M1.
  • Enter your Name.
  • Enter the Server: nmail1.unileoben.ac.at

  • Enter Lotus Notes Password that you got from the ZID.
  • Otherwise, you need to get a notes account.

Setup the Notes Client

  • Option 1: Call ZID and let them do it for you.
  • Option 2: Copy your old ‘desktop8.ndk‘ file from /Library/Application Support/HCL Notes Data/ into the same folder on your new MAC OS system.

CPS Management


Contact Helga Winklmayr, see our post on responsibilities.


  • Univ.-Prof. Dr. Elmar Rückert is responsiple for complying with the regulations.
  • All new employees get a safety briefing.

How to get XMas Vouchers for CPS Members

XMAS Vouchers for CPS Members

  • Every year, the chair can buy vouchers for the CPS members.
  • Note that the univeristy also makes gifts to all non-accademic in form of vouchers.

General Process

  • Wait till the university distributes the vouchers to all non-accademic staff members.
  • The financial department usually informs about the max. possible amount and how much the university distributes (2021: 186,-max. 30,- uni).
  • Fill out the Table in our cloud folder ‘Beschaffung/Weihnachtsfeier’ Q5.1_100_2_CPS_2021.xlsx (last column, vouchers).
  • Call the Leoben City Center.
  • Send an Email to the Leoben City Center (office@citymanagement-leoben.at) with the order details.
  • Get the vouchers at the LCS 2nd floor.
  • Send the invoice and the spreadsheet to the financial department.

Email Template

Sehr geehrte Damen und Herren,

 bitte bereiten sie uns Gutscheine in folgender Stückelung vor: 3×180€1×150€
 Die Rechnungsanschrift lautet: Montanuniversität LeobenLehrstuhls für Cyber-Physical-Systems
Franz-Josef-Straße 18, 
8700 Leoben, Austria 
UID-Nummer: ATU57480504 Vielen Dank und Schöne Grüße, Elmar Rückert

How to install SAP on MacOS

1a SAP GUI for new M1 Macs

Just run the Installer M1_MAC_GUI770Installation_4-70004682.DMG. It will install all dependencies including the Java JDK.

Continue with Step 2.

1b For Old Macs with the Intel CPUs

 sudo mv openjdk-17.0.1_macos-x64_bin.tar.gz /Library/Java/JavaVirtualMachines/cd /Library/Java/JavaVirtualMachines/sudo tar -xzf openjdk-17.0.1_macos-x64_bin.tar.gzsudo rm openjdk-17.0.1_macos-x64_bin.tar.gz

Next, check where your JDK is located via:

$ /usr/libexec/java_home -v17This should result in:/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home

Add the Java path to the globals:

echo -n “export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home” >> ~/.bash_profile

Reload the globals with

source ~/.bash_profile

Test your java installation with
java -version

which schould give something like

openjdk version “17.0.1” 2021-10-19OpenJDK Runtime Environment (build 17.0.1+12-39)OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)

Install the SAPGui

  • Download the SAPGui including the MUL connection profile.
  • Modify the file extension of ‘PlatinGUI750_12-80002494.JAR’ to be lower-case, i.e., ‘PlatinGUI750_12-80002494.jar
  • Right Click on the PlatinGUI750_12-80002494.jar file and select Open-With Jar Launcher, see the screenshot below.

Follow the instructions to install the gui.

2 Setup the SAP Server Connection

  • Press the Create a New Connection Buttion in SAP GUI
  • Open the ‘advanced’ tab and select the ‘expert mode’.
  • Enter the connection string: conn=/M/unipu1.ccc.brz.gv.at/S/3620/G/UNI01
  • Add a description on top and save the connection!
  • Connect once using this connection!
  • Afterwards you can use the following connection string to avoid entering the user and client manually: conn=/R/MS/G/UNI01&clnt=110&user=G_CPS&lang=DE&systemName=MS.

3 Install CISCOs ANYCONNECT Client

The SAP software works only within the university network.

Install the VPN Client provided by the university.

1 PhD Position/4-Year Contract, Dec 15th 2021, RefID: 2111WPH

1 position for a fully employed University Assistant at the Chair of Cyber-Physical-Systems at the earliest possible date or beginning on 1st of January 2022 in a full-time (100%) 4-year term of employment. Salary Group B1 to Uni-KV, monthly minimum charge excl. SZ.: € 2.971,50 for 40 hours per week (14 times a year), actual classification takes place according to accountable activity-specific previous experience.

We are looking for a motivated student interested in a PhD thesis on “Robot Learning”. The goal of the doctoral thesis is to develop deep neural networks for interactive learning of autonomous systems and industrial processes. This will involve processing complex sensor data such as from thermal/RGB-D cameras and tactile data for decision making in “greybox” approaches. These hybrid approaches combine the effectiveness of deep neural networks for processing complex data with predictions from analytic dynamic models. The developed models will be tested using realistic industrial applications for process modeling and with robotic systems.

What we offer

The opportunity to work on research ideas of exciting modern topics in artificial intelligence and robotics, to develop your own ideas, to be part of a young and newly formed team, to go on international research trips, and to receive targeted career guidance for a successful scientific career.

Job requirements

Completed master’s degree in computer science, physics, telematics, statistics, mathematics, electrical engineering, mechanics, robotics or an equivalent education in the sense of the desired qualification; Programming experience in one of the languages C, C++, C#, JAVA, Matlab, Python or similar; Willingness and ability for scientific work in research including publications with the possibility to write a dissertation.

Desired additional qualifications

Experience with neural networks, machine learning methods or reinforcement learning. Basic knowledge of Linux or ROS is advantageous. Good English skills and willingness to travel for research and to give technical presentations.


Application deadline: December 15th, 2021

Online Application via: Montanuniversität Leoben Webpage (2111WPH)

The Montanuniversitaet Leoben intends to increase the number of women on its faculty and therefore specifically invites applications by women. Among equally qualified applicants women will receive preferential consideration.

CoppeliaSim Tutorial

This tutorial describes the usage of the program CoppeliaSim. In particular, the use of the software in the context of the course “Cyber-Physical-Systems” is discussed.

Download and setup of the program

CoppeliaSim can be downloaded from this website. Furthermore, the Python package “msgpack” must be downloaded via pip. Depending on your operating system, different steps are required after the installation.

Windows 10

For Windows 10, no further installation steps are necessary. However, to use the B0-based remote API, some .dll files must be available in the working directory. These can be found in the installation folder of CoppeliaSim. To shorten the search for the files, you can find all the required files in the GitHub project linked below.

Ubuntu 20.04

Before CoppeliaSim can be started, dependencies for the BlueZero API have to be installed. To accomplish that follow the instructions bellow.

Bildschirmfoto von 2021-11-16 16-53-35

In contrast to Windows, CoppeliaSim must be started from the terminal on Ubuntu. To do this, right-click on the unpacked folder and select the option “Open in Terminal”. Then enter the following command “./coppeliaSim.sh”. After confirming with the Enter key, CoppeliaSim starts. To use the B0-based remote API, the file “libb0.so” must be available in the working directory. For some simulations, additional files must be added in the same directory, these can also be found in the GitHub project linked below.

CoppeliaSim and B0-based remote API – Python Client

As described above, depending on the operating system, .dll and .so files need to be added to the workspace. Besides the operating system specific files, the Python scripts “b0.py” and “b0RemoteApi.py” must be present in the working directory. These files can be found in the installation folder or in the GitHub project. For the task of the course, the following two applications are most important: actuation, sensing. Sample code for actuation and sensing can also be found in the GitHub project. In the following section, their application is briefly discussed. 


Using the API, Two movement modes are implemented in the provided scene “scene_with_pandas.ttt”. These are used with the method “simxCallScriptFunction” in Python because they are programmed as a function in the simulation file. The following modes are available:

  • – pts: In this mode, the angular positions of the joints and the corresponding time are passed to the simulation as a list (all intermediate points are interpolated). This mode is important for control tasks and if the inverse and forward kinematics have been developed by the user.
  • mov: In the “mov”-mode, the positions and speeds of intermediate points are transferred to the simulation. The inverse kinematics of Reflexxes Motion Library type II or IV is used in this mode.


At the beginning, the object handles of the observed objects must be determined, this is done with the help of the method “simxGetObjectHandle”. To execute this method you need a so-called topic, more about this down below. Since “simxGetObjectHandle” only needs to be executed once, and only at the beginning or before the simulation, the topic “simxServiceCall” is used.

Afterwards, the joint angles or joint positions can be streamed with the help of the method “simxGetJointPosition” and the position of the end effector with “simxGetObjectPosition”. To achieve this, a callback function is needed for each angle or for the coordinates (one for each xyz triplet). These callback functions are called cyclically and can be used, for example, to store the angles in an array. Finally, it must be noted that the sensor data should always be saved with their time, otherwise no meaningful calculations or diagrams can be made.

As with the actuation, sample codes are available in the GitHub project.


B.Sc. or M.Sc. Thesis/Project: Deep Learning for Predicting Meniscus Level Fluctuations in the Mold at voestalpine Stahl GmbH, Linz

Supervisors: Univ.-Prof. Dr Elmar Rückert,
Assoc. Prof. Dr. Susanne Michelic & Assoc. Prof. Dr. Christian Bernhard (Chair of Ferrous Metallurgy),
Markus Brummayer (voestalpine Stahl GmbH)
Start date: ASAP from December 2021


Theoretical difficulty: mid
Practical difficulty: mid


In this thesis, the student has the unique opportunity to investigate meniscus level fluctuations in the mold using deep learning approaches at the voestalpine Stahl GmbH in Linz. 

The mold, illustrated in the image above, is equipped with electromagnetic mold level sensors and with temperature image cameras that measure the surface temperature of the casting powder. 

The goal of this thesis is to understand and model the underlying dynamic processes of the meniscus level fluctuations in the mold.

In the thesis black box models as well as gray box models that combine analytic dynamic models with learned  models will be investigated. 

Tentative Work Plan

To achieve our aim, the following concrete tasks will be focused on:

  • Literature research on meniscus level fluctuations in the mold.
  • Data analysis, filtering, preprocessing, visualization of meniscus level fluctuations data. 
  • Implementation of  deep convolutional neural networks (CNN) as low-dimensional feature extractors. Visualization and analysis of the dynamic processes.
  • (Optional) Implementation of neural time-series models like LSTMs trained with the computed CNN features.
  • Analysis and evaluation of the provided data.