Software

Die Entwicklung von WaveMe: Tools und Techniken für Spitzenleistungen

WaveMe Werkzeugkasten: Optische Messtechnik verbessern und Benutzer befähigen

Die WaveMe Toolbox ist ein Beispiel für mehrere Kernprinzipien, die ich sehr schätze: die optische Messtechnik voranzubringen, das Beste aus Standardgeräten herauszuholen und den Benutzern mehr Kontrolle über ihre Werkzeuge zu bieten. Eine neue Entwicklung unterstreicht unser Engagement für diese Grundsätze. WaveMe ist flexibel, da es den Benutzern erlaubt, ihre Softwarekenntnisse in die Pipeline zu integrieren. Die Low-Level-Programmierung in einer Sprache wie C hat jedoch ihre Tücken, und leider verhindert die Pylon-Bibliothek, die für die Verwendung der Kamera benötigt wird, die Verwendung einer der nützlichsten Abkürzungen zum Schreiben stabiler Programme. Daher bietet WaveMe für Linux-Benutzer die Möglichkeit, die Kamera als isolierte Serveranwendung laufen zu lassen, wodurch die Möglichkeit besteht, die fortschrittlichen Tools zur Analyse von Programmen, die unter Linux existieren, auszuführen.

Tiefer eintauchen: Die Vorteile der Isolierung der Kamera-Schnittstelle

There are myriad advantages to separating the camera interface into its own application. Let’s unpack these:

  • Kompatibilität mit ASAN-Tools: Die ursprüngliche Kamerabibliothek brachte Einschränkungen mit sich, insbesondere behinderte sie die Verwendung von Adress-Sanitizern. Da WaveMe nicht nur ein Werkzeug ist, sondern auch eine Plattform, die es den Nutzern ermöglicht, ihre Fähigkeiten durch die Integration ihrer eigenen Werkzeuge zu erweitern, ist die Notwendigkeit der Zugänglichkeit von ASAN-Werkzeugen von größter Bedeutung.
  • Die Kamera-Schnittstelle, insbesondere die GigE-Schnittstelle, ist sehr zeitkritisch. Der Versuch, WaveMe unter einem Tool wie Valgrind laufen zu lassen, ist schlichtweg unmöglich. Wenn die Kameraschnittstelle in einer isolierten Serveranwendung läuft, wird die Belastung und der Druck auf zeitkritische Abschnitte erheblich reduziert. Dies ermöglicht eine effektivere Leistungsanalyse mit Tools wie Valgrind. Beispielsweise können Benutzer nun zeitkritische Abschnitte analysieren oder die Cache-Nutzung auswerten, ohne dass es zu Störungen kommt, die normalerweise auftreten würden, wenn die Schnittstelle nicht isoliert wäre.
  • Plattform-Verfügbarkeit: Zurzeit ist der Kameraserver nur für Linux verfügbar. Die Tür für eine mögliche Erweiterung ist jedoch offen. Sollte es eine nachgewiesene Nachfrage seitens der Windows-Benutzergemeinschaft geben, ist eine Portierung auf die Windows-Plattform in Planung.
  • Architektonische Überlegungen: Der Kameraserver verfügt über eine anspruchsvolle Architektur. Seine Komplexität überstieg die Möglichkeiten der Synchronisationsprimitive in der GLIB-2.0-Bibliothek, einer grundlegenden Komponente der WaveMe-Toolbox. Diese besondere technische Einschränkung war ein entscheidender Grund dafür, dass der Server derzeit nur unter Linux verfügbar ist.

Ein kurzer Einblick in die Adress-Sanitizer

For those who may not be intimately familiar with address sanitizers, let’s shed some light on their functionality. Essentially, address sanitizers serve as vigilant sentinels, detecting instances where code—be it yours or mine—reads or writes outside of allocated boundaries. Complementing this is a memory leak analyzer, which diligently records a summary upon program termination. Such tools are not just useful; they’re indispensable for crafting high-quality code.

Optimierung von WaveMe: Valgrind, STM32-F407 und optimierte Bildgebung

Our exploration of tools and their impact on WaveMe doesn’t end with address sanitizers. In the realm of Linux, another instrumental tool emerges: Valgrind. For developers eyeing the pinnacle of code efficiency, Valgrind is indispensable. It has played a pivotal role, especially when the Shack-Hartmann code for WaveMe was being tailored for the STM-32F407 platform—a system powered by a 168MHz ARM Cortex 4 CPU and 96 kB of RAM dispersed across various sections.

Our rigorous optimization strategies yielded remarkable results on this platform. To put it in perspective, analyzing 630 spots and executing modal analysis up to Z16 was completed in just 3.3ms. The modal analysis’s backbone was a Singular Value Decomposition algorithm from the 1970s, chosen specifically for its compact nature that snugly fit the platform’s constraints.

Yet, WaveMe’s journey of enhancement and user-centricity doesn’t stop there. Recognizing the limitations of many lab computers, which often aren’t the most high-performance machines within an organization, we took further steps. The camera server’s introduction is a response to the challenges of streaming voluminous images—a task that many systems grapple with. By segregating this operation to an independent process, we’re ensuring smoother performance and reduced strain on primary computational resources. This strategic move is a monumental stride in WaveMe’s evolution. Rest assured, whether one delves deep into WaveMe or merely interacts with the toolbox, the palpable benefits of our recent innovations are ready to enhance the user experience.

Jarek

Neueste Beiträge

EUV und der Stand der Lithografie

Optische High-End-Lithografie, worum geht es EUV-Lithografie wirkt wie real gewordene Science-Fiction: Spiegel mit atomarer Glätte, Licht...

vor 2 Wochen

Physikalische Optik auf dem Nvidia-GPU

Intro Die meiste Zeit meiner beruflichen Laufbahn in der Optik habe ich mich mit der Simulation der Abbildung von räumlichen Lichtmodulatoren, vor allem SLMs, beschäftigt...

vor 3 Wochen

Sofortige Sicht

Warum WaveMe Suchen Sie nach einer Lösung, die eine Vision-Kamera beinhaltet? Sie wollen eine leistungsstarke Anwendung, mit der Sie die...

vor 2 Monaten

Das Dilemma des Systemintegrators

In diesem Tech-Talk geht es um Technologieentwicklung im Allgemeinen, aber vielleicht noch spezieller um die schrittweise Entwicklung von Technologien. Er ist natürlich beeinflusst von...

vor 2 Monaten

Kann KI Ihren Code übernehmen?

Ich schätze, ich bin auf einer Mission, einer Mission, um die Ehrfurcht zu mäßigen, die die Menschen in Bezug auf... zu haben scheinen.

vor 3 Monaten

Physikalische Modellierung und OSS

Einleitung Mit diesem technischen Vortrag möchte ich einen Einblick in die Entwicklung eines physikalischen Modellierungsframeworks mit Open...

vor 5 Monaten