Visual Servoing Platform  version 3.6.0 under development (2023-09-25)
vpViper650.h
1 /****************************************************************************
2  *
3  * ViSP, open source Visual Servoing Platform software.
4  * Copyright (C) 2005 - 2023 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 https://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 the ADEPT Viper 650 robot.
33  *
34 *****************************************************************************/
35 
36 #ifndef vpViper650_h
37 #define vpViper650_h
38 
97 #include <visp3/robot/vpViper.h>
98 
99 class VISP_EXPORT vpViper650 : public vpViper
100 {
101 public:
102 #ifdef VISP_HAVE_VIPER650_DATA
113  static const std::string CONST_CAMERA_FILENAME;
114 #endif
118  static const char *const CONST_MARLIN_F033C_CAMERA_NAME;
119  static const char *const CONST_PTGREY_FLEA2_CAMERA_NAME;
120  static const char *const CONST_SCHUNK_GRIPPER_CAMERA_NAME;
121  static const char *const CONST_GENERIC_CAMERA_NAME;
122 
124  typedef enum {
129  TOOL_CUSTOM
130  } vpToolType;
131 
133  static const vpToolType defaultTool;
134 
135  vpViper650();
136  virtual ~vpViper650(){};
137 
140  void init(void);
141  void init(const std::string &camera_extrinsic_parameters);
142  void
143  init(vpViper650::vpToolType tool,
145  void init(vpViper650::vpToolType tool, const std::string &filename);
146  void init(vpViper650::vpToolType tool, const vpHomogeneousMatrix &eMc_);
147 
150 
151  void getCameraParameters(vpCameraParameters &cam, const unsigned int &image_width,
152  const unsigned int &image_height) const;
153  void getCameraParameters(vpCameraParameters &cam, const vpImage<unsigned char> &I) const;
154  void getCameraParameters(vpCameraParameters &cam, const vpImage<vpRGBa> &I) const;
155 
157  vpToolType getToolType() const { return tool_current; };
158 
159  void parseConfigFile(const std::string &filename);
161 
162 protected:
166  void setToolType(vpViper650::vpToolType tool) { tool_current = tool; };
168 
169 protected:
172  // Used projection model
174 };
175 
176 #endif
Generic class defining intrinsic camera parameters.
@ perspectiveProjWithoutDistortion
Perspective projection without distortion model.
Implementation of an homogeneous matrix and operations on such kind of matrices.
Modelisation of the ADEPT Viper 650 robot.
Definition: vpViper650.h:100
static const std::string CONST_EMC_GENERIC_WITHOUT_DISTORTION_FILENAME
Definition: vpViper650.h:111
static const char *const CONST_PTGREY_FLEA2_CAMERA_NAME
Definition: vpViper650.h:119
vpCameraParameters::vpCameraParametersProjType projModel
Definition: vpViper650.h:173
static const std::string CONST_EMC_SCHUNK_GRIPPER_WITHOUT_DISTORTION_FILENAME
Definition: vpViper650.h:109
static const vpToolType defaultTool
Default tool attached to the robot end effector.
Definition: vpViper650.h:133
static const std::string CONST_EMC_SCHUNK_GRIPPER_WITH_DISTORTION_FILENAME
Definition: vpViper650.h:110
vpToolType getToolType() const
Get the current tool type.
Definition: vpViper650.h:157
vpToolType tool_current
Current tool in use.
Definition: vpViper650.h:166
static const std::string CONST_EMC_GENERIC_WITH_DISTORTION_FILENAME
Definition: vpViper650.h:112
static const char *const CONST_GENERIC_CAMERA_NAME
Definition: vpViper650.h:121
static const std::string CONST_EMC_MARLIN_F033C_WITH_DISTORTION_FILENAME
Definition: vpViper650.h:106
vpCameraParameters::vpCameraParametersProjType getCameraParametersProjType() const
Get the current camera model projection type.
Definition: vpViper650.h:149
void setToolType(vpViper650::vpToolType tool)
Set the current tool type.
Definition: vpViper650.h:166
virtual ~vpViper650()
Definition: vpViper650.h:136
vpToolType
List of possible tools that can be attached to the robot end-effector.
Definition: vpViper650.h:124
@ TOOL_MARLIN_F033C_CAMERA
Definition: vpViper650.h:125
@ TOOL_SCHUNK_GRIPPER_CAMERA
Definition: vpViper650.h:127
@ TOOL_GENERIC_CAMERA
Definition: vpViper650.h:128
@ TOOL_PTGREY_FLEA2_CAMERA
Definition: vpViper650.h:126
static const char *const CONST_MARLIN_F033C_CAMERA_NAME
Definition: vpViper650.h:118
static const std::string CONST_EMC_PTGREY_FLEA2_WITHOUT_DISTORTION_FILENAME
Definition: vpViper650.h:107
static const std::string CONST_EMC_PTGREY_FLEA2_WITH_DISTORTION_FILENAME
Definition: vpViper650.h:108
static const std::string CONST_EMC_MARLIN_F033C_WITHOUT_DISTORTION_FILENAME
Definition: vpViper650.h:105
static const std::string CONST_CAMERA_FILENAME
Definition: vpViper650.h:113
static const char *const CONST_SCHUNK_GRIPPER_CAMERA_NAME
Definition: vpViper650.h:120
Modelisation of the ADEPT Viper robot.
Definition: vpViper.h:111