Integration of a Robotic Arm with the Surgical Assistant Workstation Software Framework



Similar documents
INSTRUCTOR WORKBOOK Quanser Robotics Package for Education for MATLAB /Simulink Users

Robot Task-Level Programming Language and Simulation

Design-Simulation-Optimization Package for a Generic 6-DOF Manipulator with a Spherical Wrist

Medical Robotics. Control Modalities

Applications > Robotics research and education > Assistant robot at home > Surveillance > Tele-presence > Entertainment/Education > Cleaning

Simulation of Trajectories and Comparison of Joint Variables for Robotic Manipulator Using Multibody Dynamics (MBD)

Intelligent Submersible Manipulator-Robot, Design, Modeling, Simulation and Motion Optimization for Maritime Robotic Research

Medical Robots in Central Europe R&D in Central Europe, traditions and barriers to commercialization

LEGO NXT-based Robotic Arm

Force/position control of a robotic system for transcranial magnetic stimulation

UNISOL SysAdmin. SysAdmin helps systems administrators manage their UNIX systems and networks more effectively.

Robot coined by Karel Capek in a 1921 science-fiction Czech play

Human Interaction with Robots Working in Complex and Hazardous Environments

Separation of Concerns in Component-based Robotics

Design of a Robotic Arm with Gripper & End Effector for Spot Welding

RoboAnalyzer: 3D Model Based Robotic Learning Software

Advanced Server Virtualization: Vmware and Microsoft Platforms in the Virtual Data Center

Robotic motion planning for 8- DOF motion stage

Manage Software Development in LabVIEW with Professional Tools

Web Developer Toolkit for IBM Digital Experience

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Introduction to Simulink & Stateflow. Coorous Mohtadi

Medical Robots and their Control Paradigms

A Haptic Surgical Simulator for Operative Setup and Exposure in Laparoscopic Cholecystectomy.

How To Develop An Image Guided Software Toolkit

An Instructional Aid System for Driving Schools Based on Visual Simulation

O-MS035. Abstract. Keywords: surgical robots, laparoscopic surgical robot, workspace, robot-assisted surgery, robot design

Final Report - HydrometDB Belize s Climatic Database Management System. Executive Summary

Using NI Vision & Motion for Automated Inspection of Medical Devices and Pharmaceutical Processes. Morten Jensen 2004

Windows Server Virtualization An Overview

CHAPTER 1: CLIENT/SERVER INTEGRATED DEVELOPMENT ENVIRONMENT (C/SIDE)

Medical Robotics. Classification of surgical systems

Scooter, 3 wheeled cobot North Western University. PERCRO Exoskeleton

Off-line programming of industrial robots using co-located environments

INTRODUCTION TO SERIAL ARM

Entwicklung und Testen von Robotischen Anwendungen mit MATLAB und Simulink Maximilian Apfelbeck, MathWorks

FUNDAMENTALS OF ROBOTICS

DESIGN, IMPLEMENTATION, AND COOPERATIVE COEVOLUTION OF AN AUTONOMOUS/TELEOPERATED CONTROL SYSTEM FOR A SERPENTINE ROBOTIC MANIPULATOR

Smart Mutual-MF Back Office System

IC 1101 Basic Electronic Practice for Electronics and Information Engineering

CALIBRATION OF A ROBUST 2 DOF PATH MONITORING TOOL FOR INDUSTRIAL ROBOTS AND MACHINE TOOLS BASED ON PARALLEL KINEMATICS

dspace DSP DS-1104 based State Observer Design for Position Control of DC Servo Motor

PRACTICAL SESSION 5: RAPID PROGRAMMING. Arturo Gil Aparicio.

Echtzeittesten mit MathWorks leicht gemacht Simulink Real-Time Tobias Kuschmider Applikationsingenieur

Build Better Robots Faster. Radim ŠTEFAN

DIABLO VALLEY COLLEGE CATALOG

Animations in Creo 3.0

Universal Exoskeleton Arm Design for Rehabilitation

Sensory-motor control scheme based on Kohonen Maps and AVITE model

Computer Aided Liver Surgery Planning Based on Augmented Reality Techniques

MS MCITP: Windows 7 Enterprise Desktop Support Technician Boot Camp

EasyC. Programming Tips

A Universal Visualization Platform

EBERSPÄCHER ELECTRONICS automotive bus systems. solutions for network analysis

MMVR: 10, January On Defining Metrics for Assessing Laparoscopic Surgical Skills in a Virtual Training Environment

Detailed Design Report

Positioning control in the Healthcare domain. Rob Albers, PhD Healthcare / Image Guided Therapy Systems March 25, 2015

Elements of robot assisted test systems

Virtualization Techniques for Cross Platform Automated Software Builds, Tests and Deployment

Practical Work DELMIA V5 R20 Lecture 1. D. Chablat / S. Caro Damien.Chablat@irccyn.ec-nantes.fr Stephane.Caro@irccyn.ec-nantes.fr

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

CURRICULUM VITAE EDUCATION:

Donky Technical Overview

Advances in Robotic Technology

Component Based Software Engineering: A Broad Based Model is Needed

Symplified I: Windows User Identity. Matthew McNew and Lex Hubbard

TMT SOFTWARE REQUIREMENTS FOR LOW-LEVEL SUBSYSTEMS

Model Driven Development of Inventory Tracking System*

Embedded Software Development with MPS

Component-based Robotics Middleware

Robotics and Automation Blueprint

Software Development to Control the Scorbot ER VII Robot With a PC

LabVIEW Advanced Programming Techniques

A 5 Degree Feedback Control Robotic Arm (Haptic Arm)

:Introducing Star-P. The Open Platform for Parallel Application Development. Yoel Jacobsen E&M Computing LTD

Development of AUTOSAR Software Components within Model-Based Design

SAS 9.4 Intelligence Platform: Migration Guide, Second Edition

Model-Driven Software Development for Robotics: an overview

CROPS: Intelligent sensing and manipulation for sustainable production and harvesting of high valued crops, clever robots for crops.

Automotive Applications of 3D Laser Scanning Introduction

Robotic Home Assistant Care-O-bot: Past Present Future

SOFA an Open Source Framework for Medical Simulation

Software Architecture Engagement Summary

APPLICATION OF AN INDUSTRIAL ROBOT IN MASTER- SLAVE TELEOPERATION WITH HAPTIC INTERFACE

A Management Tool for Component-Based Real-Time Supervision and Control Systems

4D and SQL Server: Powerful Flexibility

Machine Tool Control. Besides these TNCs, HEIDENHAIN also supplies controls for other areas of application, such as lathes.

FUTURE VIEWS OF FIELD DATA COLLECTION IN STATISTICAL SURVEYS

print close Building Blocks

FabulaTech Products Advanced Communications Solutions

A Remote Maintenance System with the use of Virtual Reality.

Embedded PC The modular Industrial PC for mid-range control. Embedded PC 1

Monitoring and Diagnosis of Networked Medical Hardware and Software for the Integrated Operating Room

Case Study. Data Governance Portal Brainvire Infotech Pvt Ltd Page 1 of 1

Cloud3DView: Gamifying Data Center Management

An inertial haptic interface for robotic applications

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

What s New! A report to CASC, 2004

On-line trajectory planning of robot manipulator s end effector in Cartesian Space using quaternions

a new generation software test automation framework - CIVIM

Transcription:

Integration of a Robotic Arm with the Surgical Assistant Workstation Software Framework Release 1.7 Jessie Young 1, Haytham Elhawary 2 and Aleksandra Popovic 2 July 21, 2011 1 Center for Computer-Integrated Surgical Systems and Technology (CISST ERC), Johns Hopkins University, Baltimore, MD/USA 2 Philips Research North America, Briarcliff Manor, NY/USA Abstract We have integrated the Philips Research robot arm with the Johns Hopkins cisst library, an open-source platform for computer assisted surgical intervention. The development of a Matlab to C++ wrapper to abstract away servo-level details facilitates the rapid development of a component-based framework with plug and play features. This allows the user to easily exchange the robot with an alternative manipulator while maintaining the same overall functionality. Contents 1 Introduction 1 2 Architecture 3 3 Discussion and Conclusion 5 4 Acknowledgments 6 1 Introduction For robotic research in the medical domain, it is very common to develop several prototypes with varying levels of complexity in design and functionality. It is therefore paramount that the software framework, which controls and integrates the different data flows within the system, work consistently with each of the differing robot prototypes. At Philips Research North America, we have used several robotic prototypes for research purposes, firstly the Laparoscopic-Assistant Robot System (LARS) [1] [2], a 7-

2 degree of freedom (DOF) surgical robot, and recently the Philips 8-DOF robotic arm. Integration between the LARS and our software algorithms was performed using the Computer Integrated Surgical Systems and Technology (cisst) library [4] developed at Johns Hopkins University [3]. The work in this paper presents the integration of the Philips robot arm with the Hopkins cisst libraries in a seamless manner so that both the LARS and Philips arm robots can be connected to the system in an almost plug and play fashion and used with our developed software algorithms. This may be accomplished by integrating the Philips robot arm with the cisstmultitask class, which provides the component-based framework for the cisst package [4]. The "provided," "required," "input," and "output" interfaces that each component may include are used to connect different hardware devices, each with a specific functionality, to each other. Since the Philips robot arm has been developed with a software library with a low-level joint servo controller, the integration of the robotic arm demonstrates the "plug and play" capabilities of this framework. Besides allowing users to swap the Philips arm with an alternate end effector, the modular API provides the option to interface the arm with additional hardware input devices, software frameworks, and programming and scripting languages for increased flexibility and ease of control. 1.1 Philips Robot Arm The Philips robotic arm is pictured in Figure 1 with an endoscope as its end effector. The device is currently used only for research purposes and is not a Philips product. It has been designed to emulate a human arm with approximately the same dimensions as an arm. Existing control for the robot arm consists of a Linux-based real-time servo controller that can control each of the eight motors independently of each other. To communicate with the servos, a Windows based user interface on a separate PC workstation is provided, which allows each of the joints of the arm to be controlled using a Matlab-based interface. For high-level control, the interface uses the open-source Matlab Robotics Toolbox [5] to calculate kinematics, and then sends the subsequent move commands over a TCP/IP network connection to the servo controller on the Linux machine. 1.2 Hopkins Software Figure 1 The Philips robot arm with a custom-made endoscope holder acting as an end effector. The cisst package is a collection of libraries designed to ease the development of computer assisted interventional systems [4]. One motivation is the development of a Surgical Assistant Workstation (SAW), which is a platform that combines robotics, stereo vision, and intraoperative imaging (e.g., ultrasound) to enhance a surgeon's capabilities for minimally-invasive surgery (MIS) [4]. The SAW is an open source, cross-platform C++ component-based software framework that makes it easy to integrate devices, such as robots, haptic interfaces, tracking systems, imaging systems, and other devices used for computer assisted intervention applications [6]. The software can be downloaded from the cisst SVN repository. [www.cisst.org/saw/main_page], and is available under an open source license [trac.lcsr.jhu.edu/cisst]. We would like to develop a component-based framework in which related functions or data are encapsulated by different modules [4]. We choose to separate the system into different components based

3 on functionality, as this would then allow exchanging hardware devices, which provide similar functionality, in an easy fashion. Hence incorporating a research robot into the cisst framework would allow it to perform functions such as forward and inverse kinematics calculations for path planning, trajectory interpolation, visual servoing, and control using input devices such as the rate-based SpaceNavigator 3D Mouse or haptic PHANTOM Omni. 2 Architecture Two main methods of communication between components exist in the software framework for the Philips robot arm. CORBA (Common Object Request Broker Architecture) calls allow the joint controller on the PC, which calls a Matlab session to calculate kinematics, to communicate with the servo motor controller (RobotarmGUI) on the Linux machine. RobotarmGUI takes as input parameters the move position (degrees), maximum velocity, and maximum acceleration. Microsoft COM (Component Object Model) calls allow Matlab to be used as an UI for controlling the servos in the arm. This is used by the executable MatlabToRobotarmWithIK, a Microsoft COM server that performs the data translation between Matlab and RobotarmGUI. In addition to performing inverse kinematics calculations, it exposes a COM interface on the user side and connects to a CORBA interface on the target [7]. The system architecture overview is summarized in Figure 2 below. Figure 2 Philips robotic arm system architecture overview. While the cisst library provides kinematics calculation capabilities, we used the Matlab Robotics Toolkit to calculate the forward and inverse kinematics because these functionalities were included with the arm s

4 controller provided by the developers of the arm. However, in order to abstract away the servo-level details, exposing to the cisst framework only the joint-level controls, we developed a wrapper called MatlabWrap that allows the C++-based cisst libraries to communicate with the Matlab-based joint-level control of the Philips robot arm software. Using existing components allows for rapid prototyping of this image-guided interventional system. 2.1 Matlab Wrapper This C++ to Matlab wrapper optimizes the functionality of both languages: C++ allows us to build a more robust and complex program capable of integrating with existing control and imaging software and Matlab allows us to perform the numerical calculations for the kinematics using existing robotics functions. Some examples of MatlabWrap functions that abstract away the servo-level details include: JointPTP(vector<double> normaltgtpos): Accepts a 7x1 input vector, one for each arm joint, and may be used to position the arm to an acceptable position where it has maximum range of movement before executing other commands such as CartPTPRelative. CartPTPRelative(vector<double> dx): Accepts a 6x1 input velocity vector (meters) of the end effector, with x, y, z, and rotational x, y, and z velocities. Home(): Homes the entire arm to a user-defined initial position. It also resets the incremental encoders. Hence, any calls from the cisst libraries to the Philips robot arm can easily be transformed into joint level positions at the robot using this wrapper. 2.2 Task Structure Ehsan Basafa and Seth Billings from Johns Hopkins University developed the LarsRobot application as a cisst-integrated control software for the LARS surgical robot with teleoperative capability using a PHANTOM Omni and SpaceNavigator 3D Mouse [3]. The work presented here required developing a similarly structured, multi-threaded application that interfaced with the Philips robot arm, which we named PhilipsRobot. The task structure for this application is displayed in Figure 3. For Philips robot arm to share the existing LARS's RobotGUI control window, the Matlab wrapper needs to be compatible with the cisstmultitask library used by LARS. Therefore MatlabWrap needs to inherit the base class mtsgenericobject, defined in cisstmultitask. cisstmultitask allows the user to define multiple tasks, each of which corresponds to a thread with a periodic user defined function. Multiple tasks communicate using task interfaces [4]. Two tasks were created, PhilipsAppTask (for the UI) and PhilipsRobotTask (robot control) based on existing aaptask and robottask files for the LARS. Figure 3 Task interface structure for Philips Robot application.

5 To allow the cisst library to communicate with the Matlab-controlled COM object, a MatlabWrap object needs to be created within PhilipsRobotTask. The engine must be opened inside the Run() method of PhilipsRobotTask on the first run, not inside the constructor of PhilipsRobotTask or inside Startup() or Configure(), as this would open a new Engine session each time the Run() function is executed. The Space Navigator 3D can be used to control the joint position of the end effector. The input x, y, and z velocities from the Navigator are scaled (which may be adjusted by modifying the gain matrix). The rotational x, y, and z components may be set to 0. A cutoff for the maximum amount of movement is set at 0.05 m; any input exceeding this number will be set to 0.05 m. 2.3 Sample Command

6 Figure 4 Example PhilipsRobotTask Run Method Processing 3 Discussion and Conclusion This work has allowed a seamless integration of a new robotic arm into the cisst framework. The robotic arm presents a Matlab interface with which the user can send high level commands, which are then transferred into servo commands at a Linux machine through a TCP/IP connection. By abstracting away the low level control and providing a C++ to Matlab wrapper, the robot arm has been incorporated into the framework, allowing it to use all the other components which are available such as the use of a 3D mouse or the implementation of virtual fixtures [8]. 4 Acknowledgments The authors would like to thank Peter Kazanzides, Anton Deguet, and Seth Billings from Johns Hopkins University for their help on the cisst library, SAW framework, and the LARS robot, and Doug Stanton for his technical help in the set-up for the Philips robot arm in the laboratory environment. References [1] J. Funda, R. Taylor, B. Eldridge, S. Gomory, and K. Gruben. Constrained Cartesian Motion Control for Teleoperated Surgical Robots. In IEEE Transactions on Robotics and Automation, volume 12-3, pages 453-466, 1996. [2] R. H. Taylor, J. Funda, B. Eldgridge, S. Gomory, K. Gruben, D. LaRose, M. Talamini, L. Kavoussi, and J. Anderson. A telerobotic assistant for laparoscopic surgery. In IEEE Engineering in Medicine and Biology, volume 14-3, pages 279-288, 1995. [3] E. Basafa and S. Billings. Teleoperation of the LARS Robot, Johns Hopkins University, 2009. [4] Johns Hopkins University LCSR, cisst library, trac.lcsr.jhu.edu/cisst, 2010 [5] P. Corke. Documentation for Robotics Toolbox for Matlab Version 8, 2008 [6] P. Kazanzides, S. DiMaio, A. Deguet, B. Vagvolgyi, M. Balicki, C. Schneider, R. Kumar, A. Jog, B. Itkowitz, C. Hasser, R. Taylor. The Surgical Assistant Workstation (SAW) in Minimally-Invasive Surgery and Microsurgery. In MICCAI Workshop on Systems and Arch. for Computer Assisted Interventions, Midas Journal: http://hdl.handle.net/10380/3179, 2010. [7] R. Beekmans. Matlab To Robotarm Interface User Manual, v 1.0, Philips Applied Technologies, 2010 [8] M. Li, M. Ishii, and R.H. Taylor. Spatial Motion Constraints Using Virtual Fixtures Generated by Anatomy. In IEEE Transactions on Robotics, volume 23-1, pages 4-19, 2007.