Menu
Home
Log in / Register
 
Home arrow Computer Science arrow Augmented and Virtual Reality
< Prev   CONTENTS   Next >

3.2 The Transmission Module

Remote communication is implemented using a client server socket architecture. The client is in charge of coding the sign coming from the input module, creating a proper packet for remotely sending needed data; this packet is also encrypted for secure communication. On the other side, the server is in charge of receiving and decrypting packets, and to decode commands in a suitable way for the hand control module.

The client gets the 19 joints positions, coming from the input module (as shown in Section 3.1). Each position ranges from 0 to 180 degrees, so it is encoded

Table 1. Optimal values we propose to train the RF classifier

with an unsigned Byte, where the value “180 degrees” is mapped with the maximum number representable (255) and linear scaling is used. Then a 16-bit CRC check is applied to detect potential errors in the transmitted packet. The generated CRC signature is joined to the packet (as in Fig. 4), and then encrypted using a robust cipher algorithm, AES [11]. The output of the cypher operation is an unintelligible string over 108 Bytes.

A TCP socket is opened to build a communication bridge between the client itself and the server, to send the encrypted list of positions.

The server is in charge of receiving and decrypting packets in order to retrieve the position of each of the robotic fingers. Finally, the received information are shared with the hand controller. Then, the robotic hand module is triggered when new data are available.

Failures in the network, such as unilateral unattended errors or crashes within the communication, are well managed by the code, in which ad-hoc exceptions handlers are implemented.

3.3 The Robotic Hand Module

Particular attention must be paid on what concerns the robotic hand, as this is one of the most important points in the solution communicative chain. The hand must be solid, very precise and user-friendly, combining well packaged mechanical components with a cosmetic glove able to mimic as much as possible the characteristics of human skin.

To develop a first prototype of the solution, a programmable anthropomorphic human-sized hand, EH1 Milano series, has been used. This is a versatile device for multiple research scenarios, produced by Prensilia s.r.l..

Such hand comes with 6 DoF, and the five compliant fingers are independently driven by electrical motors, by means of tendon transmission. The thumb abduction/adduction actuator is placed within the palm, whereas the fingers bending/extension motors are hosted into what could be thought as the forearm, a mechanical platform that represents a support for the hand itself and contains all the electronics needed to control the six motors and to communicate with a PC [2].

Communication with the hand is performed using the serial standard; in order to connect the hand to a standard laptop, an USB to serial converter has been used. The serial commands that have to be sent to the hand-side serial port, in order to make the hand move and reproduce signs, have been encoded in a demo program by means of a vocabulary that associates the list of six motor positions with the sign to be reproduced.

Each time the controller is triggered by the transmission module, it synthesizes the joints position in the commands needed by the actuators of the robotic device. Finally, it sends the commands to the robotic hand.

3.4 Implementation of the System

For the tests that are described in the next Section, a Raspberry Pi acts as server and hand controller, while a Laptop PC is used as client-side to compute sign acquisition.

Raspberry Pi[1] is a credit card size computer with low-cost hardware running

Linux. The choice is motivated by the fact that, operations such as package decrypting and hand controlling do not require a powerful device.

A Notebook PC equipped with Intel Core i5-2450M @2.50GHz and 8 GB of RAM, running Ubuntu 13.10 OS is used to run all the algorithms regarding the input module, since image processing (coming from a PrimeSense[2] depth camera) requires much more computational power. On this machine, the whole

acquisition system processes 30fps, thus achieving real-time performances. All the code is written in C/C++ and Python 2.7, using Open Source Software.

A video showing the proposed solution can be seen at the PARLOMA YouTube channel page[3].

  • [1] raspberrypi.org
  • [2] primesense.com
  • [3] youtube.com/watch?v=6MGJb GqauU
 
Found a mistake? Please highlight the word and press Shift + Enter  
< Prev   CONTENTS   Next >
 
Subjects
Accounting
Business & Finance
Communication
Computer Science
Economics
Education
Engineering
Environment
Geography
Health
History
Language & Literature
Law
Management
Marketing
Philosophy
Political science
Psychology
Religion
Sociology
Travel