Visual Servoing Platform  version 3.6.1 under development (2024-11-07)
vpViper650.h
1 /*
2  * ViSP, open source Visual Servoing Platform software.
3  * Copyright (C) 2005 - 2023 by Inria. All rights reserved.
4  *
5  * This software 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  * See the file LICENSE.txt at the root directory of this source
10  * distribution for additional information about the GNU GPL.
11  *
12  * For using ViSP with software that can not be combined with the GNU
13  * GPL, please contact Inria about acquiring a ViSP Professional
14  * Edition License.
15  *
16  * See https://visp.inria.fr for more information.
17  *
18  * This software was developed at:
19  * Inria Rennes - Bretagne Atlantique
20  * Campus Universitaire de Beaulieu
21  * 35042 Rennes Cedex
22  * France
23  *
24  * If you have questions regarding the use of this file, please contact
25  * Inria at visp@inria.fr
26  *
27  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29  *
30  * Description:
31  * Interface for the ADEPT Viper 650 robot.
32  */
33 
40 #ifndef vpViper650_h
41 #define vpViper650_h
42 
43 #include <visp3/core/vpConfig.h>
44 #include <visp3/robot/vpViper.h>
45 
46 BEGIN_VISP_NAMESPACE
94 class VISP_EXPORT vpViper650 : public vpViper
95 {
96 public:
97 #ifdef VISP_HAVE_VIPER650_DATA
108  static const std::string CONST_CAMERA_FILENAME;
109 #endif
113  static const char *const CONST_MARLIN_F033C_CAMERA_NAME;
114  static const char *const CONST_PTGREY_FLEA2_CAMERA_NAME;
115  static const char *const CONST_SCHUNK_GRIPPER_CAMERA_NAME;
116  static const char *const CONST_GENERIC_CAMERA_NAME;
117 
119  typedef enum
120  {
125  TOOL_CUSTOM
126  } vpToolType;
127 
129  static const vpToolType defaultTool;
130 
131  vpViper650();
132 
135  void init(void);
136  void init(const std::string &camera_extrinsic_parameters);
137  void
138  init(vpViper650::vpToolType tool,
140  void init(vpViper650::vpToolType tool, const std::string &filename);
141  void init(vpViper650::vpToolType tool, const vpHomogeneousMatrix &eMc_);
142 
145 
146  void getCameraParameters(vpCameraParameters &cam, const unsigned int &image_width,
147  const unsigned int &image_height) const;
148  void getCameraParameters(vpCameraParameters &cam, const vpImage<unsigned char> &I) const;
149  void getCameraParameters(vpCameraParameters &cam, const vpImage<vpRGBa> &I) const;
150 
152  vpToolType getToolType() const { return tool_current; };
153 
154  void parseConfigFile(const std::string &filename);
156 
157 protected:
161  void setToolType(vpViper650::vpToolType tool) { tool_current = tool; };
163 
164 protected:
167  // Used projection model
169 };
170 END_VISP_NAMESPACE
171 #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.
Modelization of the ADEPT Viper 650 robot.
Definition: vpViper650.h:95
static const std::string CONST_EMC_GENERIC_WITHOUT_DISTORTION_FILENAME
Definition: vpViper650.h:106
static const char *const CONST_PTGREY_FLEA2_CAMERA_NAME
Definition: vpViper650.h:114
vpCameraParameters::vpCameraParametersProjType projModel
Definition: vpViper650.h:168
static const std::string CONST_EMC_SCHUNK_GRIPPER_WITHOUT_DISTORTION_FILENAME
Definition: vpViper650.h:104
static const vpToolType defaultTool
Default tool attached to the robot end effector.
Definition: vpViper650.h:129
static const std::string CONST_EMC_SCHUNK_GRIPPER_WITH_DISTORTION_FILENAME
Definition: vpViper650.h:105
vpToolType getToolType() const
Get the current tool type.
Definition: vpViper650.h:152
vpToolType tool_current
Current tool in use.
Definition: vpViper650.h:161
static const std::string CONST_EMC_GENERIC_WITH_DISTORTION_FILENAME
Definition: vpViper650.h:107
static const char *const CONST_GENERIC_CAMERA_NAME
Definition: vpViper650.h:116
static const std::string CONST_EMC_MARLIN_F033C_WITHOUT_DISTORTION_FILENAME
Definition: vpViper650.h:100
static const std::string CONST_EMC_MARLIN_F033C_WITH_DISTORTION_FILENAME
Definition: vpViper650.h:101
vpCameraParameters::vpCameraParametersProjType getCameraParametersProjType() const
Get the current camera model projection type.
Definition: vpViper650.h:144
void setToolType(vpViper650::vpToolType tool)
Set the current tool type.
Definition: vpViper650.h:161
vpToolType
List of possible tools that can be attached to the robot end-effector.
Definition: vpViper650.h:120
@ TOOL_MARLIN_F033C_CAMERA
Definition: vpViper650.h:121
@ TOOL_SCHUNK_GRIPPER_CAMERA
Definition: vpViper650.h:123
@ TOOL_GENERIC_CAMERA
Definition: vpViper650.h:124
@ TOOL_PTGREY_FLEA2_CAMERA
Definition: vpViper650.h:122
static const char *const CONST_MARLIN_F033C_CAMERA_NAME
Definition: vpViper650.h:113
static const std::string CONST_EMC_PTGREY_FLEA2_WITHOUT_DISTORTION_FILENAME
Definition: vpViper650.h:102
static const std::string CONST_EMC_PTGREY_FLEA2_WITH_DISTORTION_FILENAME
Definition: vpViper650.h:103
static const std::string CONST_CAMERA_FILENAME
Definition: vpViper650.h:108
static const char *const CONST_SCHUNK_GRIPPER_CAMERA_NAME
Definition: vpViper650.h:115
Modelization of the ADEPT Viper robot.
Definition: vpViper.h:113