Development of a Vision-based Control of a Magnetic Levitating Ball using a Standard PC

Bachelor's Thesis / Studienarbeit

Status: Assigned
By arrangement


Magnetic Levitating Ball and Camera

Control Systems commonly use "simple" sensors that directly quantify the required measure (e.g., angle, temperature, voltage, ...).
Today, however, more and more Control Systems rely on vision-based sensors (i.e., cameras) to allow for more complex and less intrusive control scenarios. In contrast to "simple" sensors, vision-based systems require additional processing power to extract the required measure from the camera images. As the Image Processing Algorithms are part of the control loop, their processing time (delay) and variation therein (jitter) has to be considered and monitored carefully. Furthermore, as the Vision-based sensing won't be 100% accurate, the resulting error has to be incorporated into the design flow.
To investigate these challenges, a test setup based on a Levitating Ball is being developed.


Standard PC with Ethernet Camera

The goal of this thesis is to develop a Vision-based Control system for a Magnetic Levitating Ball (plant) on a regular Standard PC running Linux (controller).
The Levitating Ball will be interfaced to an FPGA-Board which allows access to the plant's sensor and actuator via Ethernet. Currently, the position of the Levitating Ball is sensed using a simple light barrier. This sensor shall now be replaced by a Camera combined with appropriate Image Processing Algorithms to serve as experimental setup.
For the sake of simplicity, both Image Processing and Control will be performed on a regular PC.

Work Packages

  • Investigate suitable Image Processing Algorithms
  • Select a suitable high-speed Camera (suggestions available)
  • Familiarize with the Camera's interface (using the manufacturer's SDK)
  • Implementation of a suitable Image Processing Algorithm to determine the position of the ball using, e.g.,
    • Matlab/Simulink/Embedded Coder, or
    • Halcon or other Image Processing libraries, or
    • An own implementation.
  • Implementation of a simple controller (e.g., PID) incl. transmission of the actuation value to the plant (via Ethernet)

If time permits the work can be extended as follows:

  • Comparison of different Image Processing Algorithms, Sampling Rates and Controllers
  • Porting the application (Image Processing & Control) to a Real-time Operation System (e.g., Linux with PREEMPT_RT)

Required Skills

  • Knowledge of C/C++
  • Basic knowledge of Image Processing (e.g., convolution) and Control (e.g., PID)
  • Basic knowledge of IP networking is helpful, but not necessarily needed
  • Diligent, independent and well-organized work performance


Feel free to get in touch with Martin Geier.