Title: Design of a Multi-Threaded Distributed Telerobotic Framework
1Design of a Multi-Threaded Distributed
Telerobotic Framework
- Mayez Al-Mouhamed, Onur Toker, and Asif Iqbal
- College of Computer Science and Engineering
- King Fahd University of petroleum and Minerals
- Dhahran 31261
- Kingdom of Saudi Arabia
2OUTLINE
- Background on Telerobotics
- A multi-threaded distributed framework
- Telerobotic server components
- PUMA component
- Force component
- Component hierarchy
- Integrated scheme
- Telerobotic client components
- Integrated scheme
- Multi-threaded distributed telerobotic system
- Conclusion
3Background on telerobotics
- Telerobotics is an approach that extends a human
operators 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.
4A Multi-Threaded Distributed Framework
- Client-Server distributed component telerobotic
system. - A telrobotic server has components (PUMA, Force
Sensor, and Decision Server) and interfaces
(Proxy Robot, Sensor, and DecisionServer). - One or more telerobotic client components
- An integrated scheme of client-server components
- A multi-threaded distributed telerobotic system
5Telerobotic server components
- PUMA Component
- Acts as a software proxy (thread) of the slave
robot arm diagram. - Public methods
- ConnectRobot,
- InitializeRobot,
- incremental joint and Cartesian motion commands,
- tool and world frame motion coordination, etc.
- Public properties
- Booleans that represent robot state.
- Public Events
- motion commands
- communication and synchronization mechanisms.
-
6PUMA component
7Telerobotic server components
- Force Sensor Component
- A service thread for a wrist force sensor
attached to slave robot arm (3 force3 moments) - Provides reflected force feedback from slave arm
(server) to operator (client) - Public properties
- start and stop reading
- TimerValue, etc.
- SensorThreadPriority,
- Real-time streaming of force data from server to
client
8Component hierarchy
9Integrated scheme - server
10Telerobotic Client Components
- Client GUI (Graphic User Interface) for remote
testing and maintenance operations - IDecisionServerto interface to server through
.NET Remoting - All the definitions to execute methods on PUMA
and ForceSensor components - After initialization, the client carries an
empty un-referenced copy of IDecisionServer - Following the network connection, the client can
reference any instance of DecisionServer
11Integrated scheme - client
12Integrated Scheme of Client-Server Components
- Inherits DecisionServer from IDecisionServer,
IProxyRobot, IForceSensor interfaces - To invoke DecisionServer events, Shim Classes are
used as agents to forward DecisionServer events
to client.
13A Multi-threaded distributed Telerobotic System
- Simultaneous activation of many threads like
- Two digital cameras generate stereo pictures
which are sent to the client - Grabbing and transfer of stereo video data
- Reading and transferring force sensor data
- 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
14Integrated system
- DecisionServer component provides slave
supervisory control. - Server Side Interfaces and .NET Remoting
- A set of definitions of public methods and
properties. - Servers as a contract for any component that
implements this interface. - Allows hiding the actual component to increase
security. - Uses IProxyRobot and IForceSensor to communicate
with PUMA and Force Sensor components - IDecisionServer inherits both of the above
interfaces. - 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 enables access to remote objects
using SOAP.
15Events forwarding using Shim classes
16Server system of distributed framework
17Client system of distributed framework
18Conclusion
- 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.