KatanaNativeInterface
$VERSION$
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
include
KNI_InvKin
KatanaKinematics5M180.h
Go to the documentation of this file.
1
/***************************************************************************
2
* Copyright (C) 2006 by Tiziano Mueller *
3
* tiziano.mueller@neuronics.ch *
4
* *
5
* This program is free software; you can redistribute it and/or modify *
6
* it under the terms of the GNU General Public License as published by *
7
* the Free Software Foundation; either version 2 of the License, or *
8
* (at your option) any later version. *
9
* *
10
* This program is distributed in the hope that it will be useful, *
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13
* GNU General Public License for more details. *
14
* *
15
* You should have received a copy of the GNU General Public License *
16
* along with this program; if not, write to the *
17
* Free Software Foundation, Inc., *
18
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19
***************************************************************************/
20
#ifndef KNIKATANAKINEMATICS5M180_H
21
#define KNIKATANAKINEMATICS5M180_H
22
23
#include "
common/dllexport.h
"
24
25
#include "
KNI_InvKin/KatanaKinematics.h
"
26
#include "
KNI_InvKin/KatanaKinematicsDecisionAlgorithms.h
"
27
28
#include <vector>
29
30
31
namespace
KNI {
32
39
class
DLLDIR_IK
KatanaKinematics5M180
:
public
KatanaKinematics
{
40
41
public
:
42
43
void
init(
metrics
const
& length,
parameter_container
const
& parameters);
44
45
// strong guarantee provided here:
46
void
DK(
coordinates
& solution,
encoders
const
& current_encoders)
const
;
47
void
IK(encoders::iterator solution,
coordinates
const
& pose,
encoders
const
& cur_angles)
const
;
48
49
50
private
:
51
52
struct
position
{
53
double
x
;
54
double
y
;
55
double
z
;
56
};
57
58
struct
angles_calc
{
59
double
theta1
;
60
double
theta2
;
61
double
theta3
;
62
double
theta4
;
63
double
theta5
;
64
double
theta234
;
65
double
b1
;
66
double
b2
;
67
double
costh3
;
68
};
69
70
typedef
std::vector<angles_calc>
angles_container
;
71
72
metrics
_length
;
73
parameter_container
_parameters
;
74
75
static
const
double
_tolerance
;
// initialized in .cpp
76
static
const
int
_nrOfPossibleSolutions
;
77
78
void
_setLength
(
metrics
const
& length) { _length = length; }
79
void
_setParameters
(
parameter_container
const
& parameters) { _parameters = parameters; }
80
81
82
};
83
84
85
86
87
88
}
89
90
#endif
Generated by
1.8.4