Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpAfma6.h
1/*
2 * ViSP, open source Visual Servoing Platform software.
3 * Copyright (C) 2005 - 2025 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 Irisa's Afma6 robot.
32 */
33
41
42#ifndef _vpAfma6_h
43#define _vpAfma6_h
44
45#include <visp3/core/vpConfig.h>
46
47#include <visp3/core/vpCameraParameters.h>
48#include <visp3/core/vpHomogeneousMatrix.h>
49#include <visp3/core/vpImage.h>
50#include <visp3/core/vpRGBa.h>
51#include <visp3/core/vpVelocityTwistMatrix.h>
52
75class VISP_EXPORT vpAfma6
76{
77public:
78#ifdef VISP_HAVE_AFMA6_DATA
82 static const std::string CONST_AFMA6_FILENAME;
93 static const std::string CONST_CAMERA_AFMA6_FILENAME;
94#endif
99 static const char *const CONST_CCMOP_CAMERA_NAME;
104 static const char *const CONST_GRIPPER_CAMERA_NAME;
109 static const char *const CONST_VACUUM_CAMERA_NAME;
114 static const char *const CONST_GENERIC_CAMERA_NAME;
115
120 static const char *const CONST_INTEL_D435_CAMERA_NAME;
121
132
135
136public:
137 vpAfma6();
139 virtual ~vpAfma6() { }
140
143 void init(void);
144 void init(const std::string &camera_extrinsic_parameters);
145 void init(const std::string &camera_extrinsic_parameters, const std::string &camera_intrinsic_parameters);
146 void init(vpAfma6::vpAfma6ToolType tool, const std::string &filename);
147 void init(vpAfma6::vpAfma6ToolType tool, const vpHomogeneousMatrix &eMc_);
148 void
149 init(vpAfma6::vpAfma6ToolType tool,
151
152 vpHomogeneousMatrix getForwardKinematics(const vpColVector &q) const;
153 int getInverseKinematics(const vpHomogeneousMatrix &fMc, vpColVector &q, const bool &nearest = true,
154 const bool &verbose = false) const;
155
156 vpHomogeneousMatrix get_eMc() const;
157 vpHomogeneousMatrix get_fMc(const vpColVector &q) const;
158 void get_fMe(const vpColVector &q, vpHomogeneousMatrix &fMe) const;
159 void get_fMc(const vpColVector &q, vpHomogeneousMatrix &fMc) const;
160
161 void get_cMe(vpHomogeneousMatrix &cMe) const;
162 void get_cVe(vpVelocityTwistMatrix &cVe) const;
163 void get_eJe(const vpColVector &q, vpMatrix &eJe) const;
164 void get_fJe(const vpColVector &q, vpMatrix &fJe) const;
165
170
171 void getCameraParameters(vpCameraParameters &cam, const unsigned int &image_width,
172 const unsigned int &image_height) const;
173 void getCameraParameters(vpCameraParameters &cam, const vpImage<unsigned char> &I) const;
174 void getCameraParameters(vpCameraParameters &cam, const vpImage<vpRGBa> &I) const;
175
176 vpColVector getJointMin() const;
177 vpColVector getJointMax() const;
178 double getCoupl56() const;
179 double getLong56() const;
180
181 void parseConfigFile(const std::string &filename);
182
183 virtual void set_eMc(const vpHomogeneousMatrix &eMc);
185
186 friend VISP_EXPORT std::ostream &operator<<(std::ostream &os, const vpAfma6 &afma6);
187
188protected:
191
194
195public:
196 static const unsigned int njoint;
197
198protected:
199 double _coupl_56; // coupling between join 5 and 6
200 double _long_56; // distance between join 5 and 6
201 double _joint_max[6]; // Maximal value of the joints
202 double _joint_min[6]; // Minimal value of the joints
203 // Minimal representation of _eMc
206
207 vpHomogeneousMatrix _eMc; // Camera extrinsic parameters: effector to camera
208
209protected:
212 // Used projection model
214};
215END_VISP_NAMESPACE
216#endif
Modelization of Irisa's gantry robot named Afma6.
Definition vpAfma6.h:76
static const std::string CONST_EMC_GENERIC_WITHOUT_DISTORTION_FILENAME
Definition vpAfma6.h:91
static const char *const CONST_CCMOP_CAMERA_NAME
Definition vpAfma6.h:99
static const std::string CONST_EMC_CCMOP_WITH_DISTORTION_FILENAME
Definition vpAfma6.h:84
static const std::string CONST_EMC_CCMOP_WITHOUT_DISTORTION_FILENAME
Definition vpAfma6.h:83
static const std::string CONST_EMC_INTEL_D435_WITHOUT_DISTORTION_FILENAME
Definition vpAfma6.h:89
static const std::string CONST_CAMERA_AFMA6_FILENAME
Definition vpAfma6.h:93
double _joint_min[6]
Definition vpAfma6.h:202
static const unsigned int njoint
Number of joint.
Definition vpAfma6.h:196
vpRxyzVector _erc
Definition vpAfma6.h:205
static const char *const CONST_VACUUM_CAMERA_NAME
Definition vpAfma6.h:109
static const std::string CONST_EMC_GRIPPER_WITHOUT_DISTORTION_FILENAME
Definition vpAfma6.h:85
void setToolType(vpAfma6::vpAfma6ToolType tool)
Set the current tool type.
Definition vpAfma6.h:192
vpAfma6ToolType getToolType() const
Get the current tool type.
Definition vpAfma6.h:167
vpCameraParameters::vpCameraParametersProjType getCameraParametersProjType() const
Get the current camera model projection type.
Definition vpAfma6.h:169
double _coupl_56
Definition vpAfma6.h:199
static const std::string CONST_EMC_INTEL_D435_WITH_DISTORTION_FILENAME
Definition vpAfma6.h:90
static const char *const CONST_INTEL_D435_CAMERA_NAME
Definition vpAfma6.h:120
virtual ~vpAfma6()
Definition vpAfma6.h:139
static const vpAfma6ToolType defaultTool
Default tool attached to the robot end effector.
Definition vpAfma6.h:134
static const char *const CONST_GRIPPER_CAMERA_NAME
Definition vpAfma6.h:104
static const std::string CONST_EMC_GRIPPER_WITH_DISTORTION_FILENAME
Definition vpAfma6.h:86
vpHomogeneousMatrix _eMc
Definition vpAfma6.h:207
double _long_56
Definition vpAfma6.h:200
vpTranslationVector _etc
Definition vpAfma6.h:204
vpAfma6ToolType tool_current
Current tool in use.
Definition vpAfma6.h:211
static const char *const CONST_GENERIC_CAMERA_NAME
Definition vpAfma6.h:114
vpCameraParameters::vpCameraParametersProjType projModel
Definition vpAfma6.h:213
static const std::string CONST_EMC_VACUUM_WITHOUT_DISTORTION_FILENAME
Definition vpAfma6.h:87
static const std::string CONST_EMC_GENERIC_WITH_DISTORTION_FILENAME
Definition vpAfma6.h:92
double _joint_max[6]
Definition vpAfma6.h:201
static const std::string CONST_EMC_VACUUM_WITH_DISTORTION_FILENAME
Definition vpAfma6.h:88
static const std::string CONST_AFMA6_FILENAME
Definition vpAfma6.h:82
vpAfma6ToolType
List of possible tools that can be attached to the robot end-effector.
Definition vpAfma6.h:124
@ TOOL_CCMOP
Definition vpAfma6.h:125
@ TOOL_GENERIC_CAMERA
Definition vpAfma6.h:128
@ TOOL_CUSTOM
Definition vpAfma6.h:130
@ TOOL_VACUUM
Definition vpAfma6.h:127
@ TOOL_INTEL_D435_CAMERA
Definition vpAfma6.h:129
@ TOOL_GRIPPER
Definition vpAfma6.h:126
Generic class defining intrinsic camera parameters.
@ perspectiveProjWithoutDistortion
Perspective projection without distortion model.
Implementation of column vector and the associated operations.
Implementation of an homogeneous matrix and operations on such kind of matrices.
Definition of the vpImage class member functions.
Definition vpImage.h:131
Implementation of a matrix and operations on matrices.
Definition vpMatrix.h:175
Implementation of a rotation vector as Euler angle minimal representation.
Class that consider the case of a translation vector.