<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>OP:Sense - Eine Rapid Development Umgebung für die Entwicklung in der robotergestützten Chirurgie</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>H. Mönnich</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Philip Nicolai</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tim Beyl</string-name>
          <email>tim.beyl@kit.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>J. Raczkowsky</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>H. Wörn</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Karlsruher Institut für Technologie, Institut für Prozessrechentechnik, Automation und Robotik</institution>
          ,
          <addr-line>Karlsruhe</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Schlüsselworte: RAD</institution>
          ,
          <addr-line>Chirurgie, Robotik, Haptik, Bildgebung</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <fpage>41</fpage>
      <lpage>44</lpage>
      <abstract>
        <p>Bei der Entwicklung und Forschung im Bereich der robotergestützten Chirurgie muss viel Zeit aufgewendet werden um die Software, Sensorik und Aktorik zu einem funktionierendem Demonstrator zu kombinieren. Hierbei wird oft Zeit in Basistechniken investiert, die zwar im Prinzip bekannt und vorhanden, aber nicht im konkreten Kontext verfügbar sind. Auch bei verfügbaren Softwarepaketen wie Slicer ist eine Integration in die bestehende Infrastruktur nicht trivial. Wünschenswert wäre eine Entwicklungsumgebung, die möglichst hohe Echtzeitanforderungen erfüllt, eine einfache modellbasierte Entwicklung ermöglicht sowie geringe Anforderungen an die verwendeten Betriebssysteme stellt. Weitere erstrebenswerte Eigenschaften sind die Möglichkeit, einfache Versuche oder Auswertungen zu scripten, das Vorhandensein von einfach zu implementierenden Schnittstellen, einer integrierten Simulationsumgebung für das Robotersystem und einer direkten Formulierungsmöglichkeit für mathematische Probleme. Ein Lösungsentwurf, der diese Anforderungen bereits zu weiten Teilen erfüllt, wird hier vorgestellt. Die beschriebene Umgebung wurde und wird im Rahmen der Arbeit an vier verschiedenen EU-Forschungsprojekten des sechsten und siebten Rahmenprogrammes entwickelt und wurde bereits mit verschiedenen Partnern genutzt. Ziel ist die Etablierung eines OpenSource Projektes speziell für die robotergestützte Chirurgie.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Problem</title>
      <sec id="sec-1-1">
        <title>Anforderung</title>
        <sec id="sec-1-1-1">
          <title>Echtzeitfähigkeit Modelbasierte Entwicklung Verwendung von Standard Betriebssystemen (Windows / Linux)</title>
          <p>Simulationsumgebung
Regelungsmodelle für Roboter</p>
        </sec>
      </sec>
      <sec id="sec-1-2">
        <title>Anforderungen</title>
        <sec id="sec-1-2-1">
          <title>Bildgebung (Slicer 3D)</title>
        </sec>
        <sec id="sec-1-2-2">
          <title>Skriptingfähigkeit &amp; Einbindung in nummerische Programme Einfaches Debugging</title>
        </sec>
        <sec id="sec-1-2-3">
          <title>Klar definierte Schnittstellen, Kommunikationsframework das auch über Netzwerke genutzt werden kann Einfache Erweiterbarkeit (z.B. Einbindung der Haptik) Tabelle 1: Anforderungen an eine RAD-Entwicklungsumgebung in der Forschung und Entwicklung</title>
          <p>2</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Methoden</title>
      <p>Bei dem hier vorgestellten Ansatz wurden Abstriche hinsichtlich der Anforderung an harte Echtzeit gemacht. Harte
Echtzeit ist unter Standardbetriebssystemen wie Windows oder Linux ohne Modifikation des Systemkerns nicht
möglich. Ein anderer Nachteil ist die Abgrenzung von Echtzeit- und Nicht-Echtzeit-Komponenten, womit IPC (Inter Process
Communication) Mechanismen wie Shared Memory nicht mehr genutzt werden können. Ebenso liegen nicht alle
Bibliotheken passend vor und eine Modifikation der Software bedeutet oft hohen Aufwand bei geringem Nutzen. Das hier
vorgestellte Framework nutzt die Realtime CORBA Spezifikation und die passende Implementierung ACE TAO, die eine
sehr effiziente Implementierung des Standards bietet. Schnittstellen werden in der IDL (Interface Definition Language)
definiert und vom TAO Compiler direkt in C++ Code umgesetzt. Der CORBA Naming_Service wird als zentraler Dienst
genutzt, der Auskunft gibt, auf welchem Rechner ein spezifischer Dienst aktiviert ist.</p>
      <p>
        Um eine weiche Echtzeitumgebung zu realisieren laufen sämtliche Prozesse und Threads mit erhöhter Priorität, unter
Windows kommt z.B. die höchste Stufe “REALTIME_PRIORITY_CLASS“ zum Einsatz [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Für die Roboter läuft ein
spezieller Dienst, der den blockierenden RPC (Remote Procedure Call) mittels einer Semaphore auf den Takt des
Roboters synchronisiert. Im Falle des KUKA LBR Roboters und der FRI Schnittstelle gibt die Schnittstelle über das
Netzwerk den exakten, in einer harten Echtzeitumgebung generierten Takt vor. Somit muss lediglich sichergestellt werden,
dass in jedem Takt eine passende Antwort zu geliefert wird. Sollte eine Deadline verpasst werden, so wird dies durch
einen Zähler festgestellt und das System kann ggfs. darauf reagieren.
      </p>
      <p>
        Für die in den Schnittstellen definierten Funktionen wurden passende Gegenstellen für Matlab/Simulink implementiert.
Im Falle von skriptingfähigen Kommandos geschieht dies als MEX-Funktion, hierzu gehört z.B. ein PTP Kommando,
das somit von der Matlab Kommandozeile genutzt werden kann und für Matlab Skripte verfügbar ist. Im Falle von
Funktionen für die Regelung werden diese mittels S-Functions für Simulink aufgerufen. Da Simulink aus dem Model ein
C Programm erstellt und kompiliert, ist durch „hand geschriebenen“ Code kaum eine Verbesserung der
Leistungsfähigkeit zu erreichen. Als Simulationsumgebung wird Openrave genutzt. Openrave stellt bereits eine komplette Umgebung
bereit um CAD Daten zu laden und über Matlab die Umgebung kommandieren zu können [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Da Openrave modular
aufgebaut ist, ist es einfach möglich das System zu erweitern sofern Funktionen fehlen. Dies wurde insbesondere für 2
Fälle durchgeführt, dem automatischen Übernehmen von Mesh Daten aus der Simulation in den haptischen Renderer
und die Integration einer Voxel-Carving Darstellung. Für das haptische Rendern wird Chai3D [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] genutzt, das um eine
passende CORBA Schnittstelle erweitert wurde. Der haptische Renderer wird gleichzeitig als Schnittstelle zu den realen
haptischen Eingabegeräten genutzt. Die einkommenden Daten werden dabei übersampelt um die Rate von 1 Khz zu
erreichen die für eine haptische Rückkopplung benötigt wird. Das gleiche Verfahren wurde bei Slicer3D angewendet. Ein
Plugin für Slicer 3D implementiert eine IDL Schnittstelle und ermöglicht so den Zugriff auf Slicer3D. Um auch eine
übergeordnete Planung zu ermöglichen wurde die YAWL Workflow Engine eingebunden. Als einzige Komponente nutzt
diese nicht CORBA sondern das SOAP Protokoll, da die Engine eine entsprechende Schnittstelle anbietet. Als
Gegenstück wurde hier die gSOAP Implementierung verwendet und eine passende S-Function implementiert die einen SOAP
Server implementiert und von der Engine aus aufgerufen werden kann. Die Workflow Engine übergibt dabei einen
String mit einer Kommandozeile die in der S-Funktion geparst wird. Der String enthält immer ein Kommando samt
passenden Argumenten und kann so diverse Aktionen in Simulink triggern und darüber den chirurgischen Workflow
abarbeiten.
Abb. 1: Simulationsumgebung für die Roboter (links), Simulink Model für die Regelung der Roboter
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Ergebnisse</title>
      <p>Abb. 2: Robotersystem für die haptische minimalinvasive Chirurgie, bestehend aus 2 LBR Robotern und einem RX90
Roboter (Endoskop). Die beiden LBR Roboter sind mit haptischen Eingabegeräten von Force Dimension gekoppelt.
Das vorgestellte Framework OP:Sense wird im Labor am IPR auf einem verteilten System genutzt, bei dem jeweils ein
PC die folgenden Programme ausführt:
• Implementierung der Schnittstelle für das Trackinggerät, den Namensdienst und der Robotersteuerung
• Roboterregelung und Haptik
• Simulationsumgebung
• PMD Kamerasystem
• Testsetup mit Kinect Kameras
Die Roboter werden momentan mit einem Takt zwischen 5 ms und 20 ms über die FRI Schnittstelle angesteuert. Da die
LBR Roboter im Gelenkraum mit einem höheren Takt selber interpolieren, ist durch eine höhere externe Taktrate nur
eine marginale Steigerung der Dynamik der Roboter zu erwarten, was den Aufwand kaum rechtfertigt.
In weiteren Projekten wird OP:Sense bereits von Studenten und Mitarbeitern genutzt. Dass das System auf jedem
Rechner mit Windows sehr schnell installiert und ohne Modifikationen am System betrieben werden kann, erlaubt es auch
Studenten Erfahrungen im praktischen Umgang im Bereich der Robotik zu sammeln. Weiterhin wird mit OP:Sense ein
Ansatz zur automatischen Repositionierung des Endoskops realisiert. Derzeit wird das Framework in zwei EU Projekten
des siebten Rahmenprogramms genutzt: in „SAFROS – Patient Safety in Robotic Surgery“ und „ACTIVE – Active
Constraints Technologies for Ill-defined or Volatile Environments“. Darüber hinaus wird das System momentan für eine
Veröffentlichung als OpenSource Projekt im Jahr 2011 vorbereitet. Desweiteren werden erste Anwendungen am IPR
vorbereitet, in denen OP:Sense für reale Anwendungen unter anderem im Bereich der Orthopädie evaluiert werden kann.
Abb. 3: Zwei Erweiterungen des Setups, die momentan mit dem Framework entwickelt werden. Links: das Resultat des
Voxel-Carving Algorithmus, der die Daten von sechs PMD S3 Kameras verwendet und zur Kollisionsvermeidung
genutzt werden soll. Rechts: die Einbindung der Microsoft Kinect Kamera in die Simulationsumgebung, um Chirurgen und
Patienten markerlos tracken zu können.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Diskussion</title>
      <p>
        Die vorgestellte Umgebung zielt auf die schnelle Entwicklung von Beispielanwendungen ab. Dabei wurden harte
Echtzeitanforderungen absichtlich nicht berücksichtigt und das Framework stellt nur sicher, dass die Komponenten über eine
nicht erreichte Deadline informiert werden. Ein Ansatz um harte Echtzeit in eine RADE Umgebung einfließen zu lassen
wurde von Jörg et al. Vorgestellt [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Dieser stellt eine interessante Möglichkeit dar, das vorhandene Framework in diese
Richtung zu verbessern. Es muss allerdings sichergestellt werden, dass die Komponenten in harter wie in weicher
Echtzeit funktionieren können, damit der Kern des Frameworks nicht an Bedeutung verliert: der schnelle und unkomplizierte
Aufbau eines kompletten Systems auf herkömmlichen PC Komponenten ohne Modifikation der Betriebssysteme.
5
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] http://www.orocos.org/,
          <source>Abgerufen 27.4</source>
          .2011
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Morgan</given-names>
            <surname>Quigley</surname>
          </string-name>
          , Ken Conley, Brian Gerkey, Josh Faust, Tully B.
          <string-name>
            <surname>Foote</surname>
            , Jeremy Leibs, Rob Wheeler, and
            <given-names>Andrew Y.</given-names>
          </string-name>
          <string-name>
            <surname>Ng</surname>
          </string-name>
          .
          <article-title>ROS: an open-source robot operating system</article-title>
          .
          <source>In ICRA Workshop on Open Source Software</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Galvan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Castellani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Botturi</surname>
          </string-name>
          , P. Fiorini, “
          <article-title>Advanced Teleoperation Architecture”</article-title>
          ,
          <source>Proceedings of the 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems October 9 - 15</source>
          ,
          <year>2006</year>
          , Beijing, China
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4] http://msdn.microsoft.com/en-us/library/ms685100%28v=
          <fpage>vs</fpage>
          .
          <volume>85</volume>
          %29.aspx,
          <source>Abgerufen 27.4</source>
          .2011
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Diankov</surname>
          </string-name>
          und
          <string-name>
            <surname>J. Kuffner.</surname>
          </string-name>
          <article-title>OpenRAVE: A Planning Architecture for Autonomous Robotics</article-title>
          . Techn. Ber. CMU-RITR-
          <volume>08</volume>
          -34,
          <string-name>
            <surname>Robotics</surname>
            <given-names>Institute</given-names>
          </string-name>
          , Carnegie Mellon University (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6] http://www.chai3d.org/,
          <source>Abgerufen 27.4</source>
          .2011
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Jörg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nickl</surname>
          </string-name>
          , G. Hirzinger,
          <article-title>Flexible Signal-Oriented Hardware Abstraction for Rapid Prototyping of Robotic Systems</article-title>
          ,
          <source>Proceedings of the International Conference on Intelligent Robots and Systems</source>
          , Peking, October,
          <year>2006</year>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>