iCub-main
Loading...
Searching...
No Matches
Fingertip4Left.h
Go to the documentation of this file.
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3/*
4 * Copyright (C) 2009 RobotCub Consortium
5 * Author: Marco Maggiali marco.maggiali@iit.it
6 * CopyPolicy: Released under the terms of the GNU GPL v2.0.
7 *
8 */
9
10#include "include/TouchSensor.h"
11
12#ifndef __ALE_FINGERTIP4_L_H__
13#define __ALE_FINGERTIP4_L_H__
14
16{
17public:
18 Fingertip4L(double cx,double cy,double th,double gain=1.0,int layoutNum=0,int lrMirror=0)
19 {
20 dGain=gain;
21 ilrMirror=lrMirror;
22 ilayoutNum=layoutNum;
23 nVerts=7;
24 nTaxels=12;
25
26/* dX[0]= 41.0; dY[0]=10.0;
27 dX[1]= 15.0; dY[1]=10.0;
28 dX[2]= 15.0; dY[2]=35.0;
29 dX[3]= 41.0; dY[3]=35.0;
30 dX[4]= 30.0; dY[4]=64.0;
31 dX[5]= 11.0; dY[5]=58.0;
32 dX[6]= 0.0; dY[6]=82.0;
33 dX[7]=-11.0; dY[7]=58.0;
34 dX[8]=-30.0; dY[8]=64.0;
35 dX[9]=-41.0; dY[9]=35.0;
36 dX[10]=-15.0; dY[10]=35.0;
37 dX[11]=-15.0; dY[11]=10.0;
38*/
39 dY[0]=-25.0; dX[0]= 20.0;
40 dY[1]=-25.0; dX[1]= 0.0;
41 dY[2]=-25.0; dX[2]= -20.0;
42 dY[3]=-39.0; dX[3]= -35.0;
43 dY[4]=-39.0; dX[4]= 35.0;
44 dY[5]=-53.0; dX[5]= -20.0;
45 dY[6]=-53.0; dX[6]= 0.0;
46 dY[7]=-53.0; dX[7]= 20.0;
47 dY[8]= -2.0; dX[8]= 22.0;
48 dY[9]= 10.0; dX[9]= 5.0;
49 dY[10]= 28.0; dX[10]= -4.;
50 dY[11]= 30.0; dX[11]= 32.0;
51
52 dXv[0]=53.0; dYv[0]= 0.0;
53 dXv[1]=53.0; dYv[1]=45.0;
54 dXv[2]=dX[4]+10.0; dYv[2]=dY[4]+10.0;
55 dXv[3]=0.0; dYv[3]=dY[6]+12.0;
56 dXv[4]=-dXv[2]; dYv[4]=dYv[2];
57 dXv[5]=-dXv[1]; dYv[5]=dYv[1];
58 dXv[6]=-dXv[0]; dYv[6]=dYv[0];
59
60 const double scale=2.7/15.3;
61 for (int i=0; i<nTaxels; ++i)
62 {
63 dX[i]*=scale;
64 dY[i]*=scale;
65 }
66 for (int i=0; i<nVerts; ++i)
67 {
68 dXv[i]*=scale;
69 dYv[i]*=scale;
70 }
71
72 m_RadiusOrig=1.5;
73
74 const double DEG2RAD=M_PI/180.0;
75 const double CST=cos(DEG2RAD*th);
76 const double SNT=sin(DEG2RAD*th);
77
78 for (int i=0; i<nTaxels; ++i)
79 {
80 double x=dX[i];
81 double y=dY[i];
82 if (lrMirror==1) x=-x;
83
84 dX[i]=cx+CST*x-SNT*y;
85 dY[i]=cy+SNT*x+CST*y;
86 }
87
88 for (int i=0; i<nVerts; ++i)
89 {
90 double x=dXv[i];
91 double y=dYv[i];
92 if (lrMirror==1) x=-x;
93
94// dXv[i]=cx+CST*x-SNT*y;
95// dYv[i]=cy+SNT*x+CST*y;
96 dXv[i]=0;
97 dYv[i]=0;
98 }
99
100 // in static definition
101 //dXmin=dYmin= HUGE;
102 //dXmax=dYmax=-HUGE;
103
104 /*for (int i=0; i<nVerts; ++i)
105 {
106 if (dXv[i]<dXmin) dXmin=dXv[i];
107 if (dXv[i]>dXmax) dXmax=dXv[i];
108 if (dYv[i]<dYmin) dYmin=dYv[i];
109 if (dYv[i]>dYmax) dYmax=dYv[i];
110 }*/
111
112 dXc=cx;
113 dYc=cy;
114 }
115};
116
117#endif
#define M_PI
Definition XSensMTx.cpp:24
Fingertip4L(double cx, double cy, double th, double gain=1.0, int layoutNum=0, int lrMirror=0)
double dX[MAX_TAXELS]
int x[MAX_TAXELS]
double m_RadiusOrig
double dXv[8]
double dY[MAX_TAXELS]
double dYv[8]
int y[MAX_TAXELS]
#define DEG2RAD