Design of a Multi-Threaded Distributed Telerobotic Framework Mayez Al-Mouhamed, Onur Toker, and Asif Iqbal Mayez Al-Mouhamed, Onur Toker, and Asif Iqbal.

Slides:



Advertisements
Similar presentations
Agents & Mobile Agents.
Advertisements

.NET Remoting. .Net Remoting Replaces DCOM (Distributed Component Object Model – a proprietary Microsoft technology for communication among software components.
A DISTRIBUTED FRAMEWORK FOR RELAYING STEREO VISION FOR TELEROBOTICS M. Al-Mouhamed, O. Toker, A. Iqbal, and M. Nazeeruddin.
Mobile – robot remote control and communication system design P. Petrova, R. Zahariev Central Laboratory of Mechatronics and Instrumentation Bulgarian.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Lecture 23: Software Architectures
A DISTRIBUTED FRAMEWORK FOR RELAYING STEREO VISION FOR TELEROBOTICS M. Al-Mouhamed, O. Toker, A. Iqbal, and M. Nazeeruddin.
Chapter 7: Client/Server Computing Business Data Communications, 5e.
Managing Agent Platforms with the Simple Network Management Protocol Brian Remick Thesis Defense June 26, 2015.
Performance Evaluation of a Multi-Threaded Distributed Telerobotic Framework Mayez Al-Mouhamed, Onur Toker, and Asif Iqbal College of Computer Science.
WNT Client/Server SDK Tony Vaccaro CS699 Project Presentation.
1 Evaluation of Assembly Tasks in Augmented Telerobotics Mayez A. Al-Mouhamed, Mohammad Nazeeruddin, and Syed M.S. Islam Department of Computer Engineering.
SNMP & MIME Rizwan Rehman, CCS, DU. Basic tasks that fall under this category are: What is Network Management? Fault Management Dealing with problems.
Building an Application Server for Home Network based on Android Platform Yi-hsien Liao Supervised by : Dr. Chao-huang Wei Department of Electrical Engineering.
1 Enabling Secure Internet Access with ISA Server.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Behavioral Patterns  Behavioral patterns are patterns whose purpose is to facilitate the work of algorithmic calculations and communication between classes.
ASP.NET  ASP.NET is a web development platform, which provides a programming model, a comprehensive software infrastructure and various services required.
Business Data Communications, Stallings 1 Chapter 1: Introduction William Stallings Business Data Communications 6 th Edition.
SensIT PI Meeting, January 15-17, Self-Organizing Sensor Networks: Efficient Distributed Mechanisms Alvin S. Lim Computer Science and Software Engineering.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
© 2012 WIPRO LTD | 1 Version 1.0a, 23 rd April 2012 TTCN-3 Users Conference Practical integration of TTCN-3 with Robot test automation framework.
Design of a Collaborative System Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University, U.S.A
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Enabling Workflow in UPnP Networks Andreas BobekUniversity of Rostock Faculty of Computer Science and Electrical Engineering Andreas Bobek, Hendrik Bohn,
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Remote Access Chapter 4. Learning Objectives Understand implications of IEEE 802.1x and how it is used Understand VPN technology and its uses for securing.
Remote Access Chapter 4. Learning Objectives Understand implications of IEEE 802.1x and how it is used Understand VPN technology and its uses for securing.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Presented by Xiaoyu Qin Virtualized Access Control & Firewall Virtualization.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Connectivity Devices Hakim S. ADICHE, MSc
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
DCE (distributed computing environment) DCE (distributed computing environment)
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Oracle's Distributed Database Bora Yasa. Definition A Distributed Database is a set of databases stored on multiple computers at different locations and.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 43 Remote Method Invocation.
Resource Manager for Distance Education Systems Goran Kimovski Vladimir Trajkovik Danco Davcev Faculty of Electrical Engineering and Computer Science,
John D. McGregor Class 4 – Initial decomposition
James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer.
Shuman Guo CSc 8320 Advanced Operating Systems
CSC480 Software Engineering Lecture 10 September 25, 2002.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Contents  Teleoperated robotic systems  The effect of the communication delay on teleoperation  Data transfer rate control for teleoperation systems.
Unit 9: Distributing Computing & Networking Kaplan University 1.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
A Sneak Peak of What’s New in Globus GridFTP John Bresnahan Michael Link Raj Kettimuthu (Presenting) Argonne National Laboratory and The University of.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Cyberinfrastructure Overview of Demos Townsville, AU 28 – 31 March 2006 CREON/GLEON.
Project Paper Presentation Hanlin Wan March 15, 2011.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Wednesday NI Vision Sessions
A service Oriented Architecture & Web Service Technology.
VIRTUAL NETWORK COMPUTING SUBMITTED BY:- Ankur Yadav Ashish Solanki Charu Swaroop Harsha Jain.
Ch > 28.4.
Chapter 40 Remote Method Invocation
Chapter 46 Remote Method Invocation
Scanners – Robots – Measurement Plans Synergy in Motion
Chapter 46 Remote Method Invocation
Presentation transcript:

Design of a Multi-Threaded Distributed Telerobotic Framework Mayez Al-Mouhamed, Onur Toker, and Asif Iqbal Mayez Al-Mouhamed, Onur Toker, and Asif Iqbal College of Computer Science and Engineering King Fahd University of petroleum and Minerals Dhahran Kingdom of Saudi Arabia

OUTLINE Background on Telerobotics Background on Telerobotics A multi-threaded distributed framework A multi-threaded distributed framework Telerobotic server components Telerobotic server components – PUMA component – Force component – Component hierarchy – Integrated scheme Telerobotic client components Telerobotic client components – Integrated scheme Multi-threaded distributed telerobotic system Multi-threaded distributed telerobotic system Conclusion Conclusion

Background on telerobotics Telerobotics is an approach that extends a human operator’s sensing and manipulating capabilities to a remote environment. Telerobotics has numerous applications in hazardous or hostile environments. The purpose of this work is to design a reliable and efficient man- machine interface between a slave arm (robot) and a master arm over a network which preserves a large degree of operator dexterity. Computer vision and force feed techniques are implemented to enhance the maneuverability of the operator by providing him force feeling. To avoid communication delays in frequently interacting telerobotic systems, the operator will have a library of local automation tasks. Only coarse operator supervision is required. For example, picking up a tool, moving tool to a certain location, returning tool to initial position, etc. Telerobotics is a multidisciplinary area integrating knowledge from robotics, real-time operating systems and programming, network programming, 3D stereo vision, mechanical linkage engineering, ergonomics, etc.

A Multi-Threaded Distributed Framework Client-Server distributed component telerobotic system. Client-Server distributed component telerobotic system. A telrobotic server has components (PUMA, Force Sensor, and Decision Server) and interfaces (Proxy Robot, Sensor, and DecisionServer). A telrobotic server has components (PUMA, Force Sensor, and Decision Server) and interfaces (Proxy Robot, Sensor, and DecisionServer). One or more telerobotic client components One or more telerobotic client components An integrated scheme of client-server components An integrated scheme of client-server components A multi-threaded distributed telerobotic system A multi-threaded distributed telerobotic system

Telerobotic server components PUMA Component PUMA Component Acts as a software proxy (thread) of the slave robot arm diagram. Acts as a software proxy (thread) of the slave robot arm diagram. Public methods Public methods ConnectRobot, ConnectRobot, InitializeRobot, InitializeRobot, incremental joint and Cartesian motion commands, incremental joint and Cartesian motion commands, tool and world frame motion coordination, etc. tool and world frame motion coordination, etc. Public properties Public properties Booleans that represent robot state. Booleans that represent robot state. Public Events Public Events motion commands motion commands communication and synchronization mechanisms. communication and synchronization mechanisms.

PUMA component

Force Sensor Component Force Sensor Component A service thread for a wrist force sensor attached to slave robot arm (3 force+3 moments) A service thread for a wrist force sensor attached to slave robot arm (3 force+3 moments) Provides reflected force feedback from slave arm (server) to operator (client) Provides reflected force feedback from slave arm (server) to operator (client) Public properties Public properties start and stop reading start and stop reading TimerValue, etc. TimerValue, etc. SensorThreadPriority, SensorThreadPriority, Real-time streaming of force data from server to client Real-time streaming of force data from server to client Telerobotic server components

Component hierarchy

Integrated scheme - server

Telerobotic Client Components Client GUI (Graphic User Interface) for remote testing and maintenance operations Client GUI (Graphic User Interface) for remote testing and maintenance operations IDecisionServerto interface to server through.NET Remoting IDecisionServerto interface to server through.NET Remoting All the definitions to execute methods on PUMA and ForceSensor components All the definitions to execute methods on PUMA and ForceSensor components After initialization, the client carries an empty un- referenced copy of IDecisionServer After initialization, the client carries an empty un- referenced copy of IDecisionServer Following the network connection, the client can reference any instance of DecisionServer Following the network connection, the client can reference any instance of DecisionServer

Integrated scheme - client

Integrated Scheme of Client-Server Components Inherits DecisionServer from IDecisionServer, IProxyRobot, IForceSensor interfaces Inherits DecisionServer from IDecisionServer, IProxyRobot, IForceSensor interfaces To invoke DecisionServer events, Shim Classes are used as agents to forward DecisionServer events to client. To invoke DecisionServer events, Shim Classes are used as agents to forward DecisionServer events to client.

A Multi-threaded distributed Telerobotic System Simultaneous activation of many threads like Simultaneous activation of many threads like Two digital cameras generate stereo pictures which are sent to the client Two digital cameras generate stereo pictures which are sent to the client Grabbing and transfer of stereo video data Grabbing and transfer of stereo video data Reading and transferring force sensor data Reading and transferring force sensor data Sending and receiving robot control signals over the LAN to one or more clients Sending and receiving robot control signals over the LAN to one or more clients Both the stereo data and the distributed component calls share the same LAN using different ports for data transfer Both the stereo data and the distributed component calls share the same LAN using different ports for data transfer

Integrated system DecisionServer component provides slave supervisory control. DecisionServer component provides slave supervisory control. Server Side Interfaces and.NET Remoting Server Side Interfaces and.NET Remoting A set of definitions of public methods and properties. A set of definitions of public methods and properties. Servers as a contract for any component that implements this interface. Servers as a contract for any component that implements this interface. Allows hiding the actual component to increase security. Allows hiding the actual component to increase security. Uses IProxyRobot and IForceSensor to communicate with PUMA and Force Sensor components Uses IProxyRobot and IForceSensor to communicate with PUMA and Force Sensor components IDecisionServer inherits both of the above interfaces. IDecisionServer inherits both of the above interfaces. Allows defining a unified set of methods, properties, and events within DecisionServer component. Allows defining a unified set of methods, properties, and events within DecisionServer component..NET Remoting publishes an instance of DecisionServer component on the LAN..NET Remoting publishes an instance of DecisionServer component on the LAN..NET Remoting enables access to remote objects using SOAP..NET Remoting enables access to remote objects using SOAP.

Events forwarding using Shim classes

Server system of distributed framework

Client system of distributed framework

Conclusion A reliable and efficient man-machine interface between a slave robot (server) and a master arm (client) over a network while preserving some degree of operator dexterity A reliable distributed components (.NET Remoting) is implemented: Software reusability, ease of extensibility, debugging, and data Encapsulation Advanced software tools like.NET Framework (comp. to DCOM) The components communicate using.NET Remoting and SOAP Automatic handling of network resources and data transfer Isolation of components from network protocol issues Enhances data security as well as facilitates deployment Multi-threaded execution for multi-streaming of force, command and stereo data.