Visual Servoing Platform
version 3.2.0
vpViper.h
1
/****************************************************************************
2
*
3
* ViSP, open source Visual Servoing Platform software.
4
* Copyright (C) 2005 - 2019 by Inria. All rights reserved.
5
*
6
* This software is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
* See the file LICENSE.txt at the root directory of this source
11
* distribution for additional information about the GNU GPL.
12
*
13
* For using ViSP with software that can not be combined with the GNU
14
* GPL, please contact Inria about acquiring a ViSP Professional
15
* Edition License.
16
*
17
* See http://visp.inria.fr for more information.
18
*
19
* This software was developed at:
20
* Inria Rennes - Bretagne Atlantique
21
* Campus Universitaire de Beaulieu
22
* 35042 Rennes Cedex
23
* France
24
*
25
* If you have questions regarding the use of this file, please contact
26
* Inria at visp@inria.fr
27
*
28
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
29
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
30
*
31
* Description:
32
* Interface for a generic ADEPT Viper (either 650 or 850) robot.
33
*
34
* Authors:
35
* Fabien Spindler
36
*
37
*****************************************************************************/
38
39
#ifndef vpViper_h
40
#define vpViper_h
41
50
#include <visp3/core/vpCameraParameters.h>
51
#include <visp3/core/vpHomogeneousMatrix.h>
52
#include <visp3/core/vpImage.h>
53
#include <visp3/core/vpRGBa.h>
54
#include <visp3/core/vpVelocityTwistMatrix.h>
55
#include <visp3/robot/vpRobotException.h>
56
113
class
VISP_EXPORT
vpViper
114
{
115
public
:
116
vpViper
();
117
virtual
~
vpViper
(){};
118
121
vpHomogeneousMatrix
getForwardKinematics(
const
vpColVector
&q)
const
;
122
unsigned
int
getInverseKinematicsWrist(
const
vpHomogeneousMatrix
&fMw,
vpColVector
&q,
123
const
bool
&verbose =
false
)
const
;
124
unsigned
int
getInverseKinematics(
const
vpHomogeneousMatrix
&fMc,
vpColVector
&q,
const
bool
&verbose =
false
)
const
;
125
vpHomogeneousMatrix
get_fMc(
const
vpColVector
&q)
const
;
126
void
get_fMw(
const
vpColVector
&q,
vpHomogeneousMatrix
&fMw)
const
;
127
void
get_wMe(
vpHomogeneousMatrix
&wMe)
const
;
128
void
get_eMc(
vpHomogeneousMatrix
&eMc)
const
;
129
void
get_eMs(
vpHomogeneousMatrix
&eMs)
const
;
130
void
get_fMe(
const
vpColVector
&q,
vpHomogeneousMatrix
&fMe)
const
;
131
void
get_fMc(
const
vpColVector
&q,
vpHomogeneousMatrix
&fMc)
const
;
132
133
void
get_cMe(
vpHomogeneousMatrix
&cMe)
const
;
134
void
get_cVe(
vpVelocityTwistMatrix
&cVe)
const
;
135
void
get_fJw(
const
vpColVector
&q,
vpMatrix
&fJw)
const
;
136
void
get_fJe(
const
vpColVector
&q,
vpMatrix
&fJe)
const
;
137
void
get_eJe(
const
vpColVector
&q,
vpMatrix
&eJe)
const
;
138
139
virtual
void
set_eMc(
const
vpHomogeneousMatrix
&eMc_);
140
virtual
void
set_eMc(
const
vpTranslationVector
&etc_,
const
vpRxyzVector
&erc_);
141
142
vpColVector
getJointMin()
const
;
143
vpColVector
getJointMax()
const
;
144
double
getCoupl56()
const
;
146
147
friend
VISP_EXPORT std::ostream &operator<<(std::ostream &os,
const
vpViper
&viper);
148
149
private
:
150
bool
convertJointPositionInLimits(
unsigned
int
joint,
const
double
&q,
double
&q_mod,
151
const
bool
&verbose =
false
)
const
;
152
153
public
:
154
static
const
unsigned
int
njoint;
155
156
protected
:
157
vpHomogeneousMatrix
eMc;
158
// Minimal representation of eMc
159
vpTranslationVector
etc;
// meters
160
vpRxyzVector
erc;
// radian
161
162
// Denavit-Hartenberg parameters
163
double
a1, d1;
164
double
a2;
165
double
a3;
166
double
d4;
167
double
d6;
168
double
d7;
169
double
c56;
170
171
// Software joint limits in radians
172
vpColVector
joint_max;
// Maximal value of the joints
173
vpColVector
joint_min;
// Minimal value of the joints
174
};
175
176
#endif
vpTranslationVector
Class that consider the case of a translation vector.
Definition:
vpTranslationVector.h:90
vpColVector
Implementation of column vector and the associated operations.
Definition:
vpColVector.h:71
vpMatrix
Implementation of a matrix and operations on matrices.
Definition:
vpMatrix.h:103
vpViper
Modelisation of the ADEPT Viper robot.
Definition:
vpViper.h:112
vpVelocityTwistMatrix
Definition:
vpVelocityTwistMatrix.h:113
vpHomogeneousMatrix
Implementation of an homogeneous matrix and operations on such kind of matrices.
Definition:
vpHomogeneousMatrix.h:91
vpRxyzVector
Implementation of a rotation vector as Euler angle minimal representation.
Definition:
vpRxyzVector.h:155
modules
robot
include
visp3
robot
vpViper.h
Generated by
1.8.16