47 #include <visp3/core/vpDebug.h> 48 #include <visp3/core/vpMath.h> 49 #include <visp3/core/vpXmlParserCamera.h> 50 #include <visp3/robot/vpViper650.h> 52 static const char *opt_viper650[] = {
"CAMERA",
"eMc_ROT_XYZ",
"eMc_TRANS_XYZ", NULL};
54 #ifdef VISP_HAVE_VIPER650_DATA 56 std::string(VISP_VIPER650_DATA_PATH) +
57 std::string(
"/include/const_eMc_MarlinF033C_without_distortion_Viper650.cnf");
60 std::string(VISP_VIPER650_DATA_PATH) + std::string(
"/include/const_eMc_MarlinF033C_with_distortion_Viper650.cnf");
63 std::string(VISP_VIPER650_DATA_PATH) +
64 std::string(
"/include/const_eMc_PTGreyFlea2_without_distortion_Viper650.cnf");
67 std::string(VISP_VIPER650_DATA_PATH) + std::string(
"/include/const_eMc_PTGreyFlea2_with_distortion_Viper650.cnf");
70 std::string(VISP_VIPER650_DATA_PATH) + std::string(
"/include/" 71 "const_eMc_schunk_gripper_without_distortion_Viper650." 75 std::string(VISP_VIPER650_DATA_PATH) +
76 std::string(
"/include/const_eMc_schunk_gripper_with_distortion_Viper650.cnf");
79 std::string(VISP_VIPER650_DATA_PATH) + std::string(
"/include/const_eMc_generic_without_distortion_Viper650.cnf");
82 std::string(VISP_VIPER650_DATA_PATH) + std::string(
"/include/const_eMc_generic_with_distortion_Viper650.cnf");
85 std::string(VISP_VIPER650_DATA_PATH) + std::string(
"/include/const_camera_Viper650.xml");
87 #endif // VISP_HAVE_VIPER650_DATA 112 c56 = -341.33 / 9102.22;
184 #ifdef VISP_HAVE_VIPER650_DATA 186 std::string filename_eMc;
234 "No predefined file available for a custom tool" 235 "You should use init(vpViper650::vpToolType, const std::string&) or" 236 "init(vpViper650::vpToolType, const vpHomogeneousMatrix&) instead");
252 this->
init(filename_eMc);
254 #else // VISP_HAVE_VIPER650_DATA 318 "No predefined parameters available for a custom tool" 319 "You should use init(vpViper650::vpToolType, const std::string&) or" 320 "init(vpViper650::vpToolType, const vpHomogeneousMatrix&) instead");
325 #endif // VISP_HAVE_VIPER650_DATA 401 std::ifstream fdconfig(filename.c_str(), std::ios::in);
403 if (!fdconfig.is_open()) {
410 bool get_erc =
false;
411 bool get_etc =
false;
414 while (std::getline(fdconfig, line)) {
416 if ((line.compare(0, 1,
"#") == 0) || line.empty()) {
419 std::istringstream ss(line);
423 for (code = 0; NULL != opt_viper650[code]; ++code) {
424 if (key.compare(opt_viper650[code]) == 0) {
434 ss >> erc[0] >> erc[1] >> erc[2];
437 erc = erc * M_PI / 180.0;
443 ss >> etc[0] >> etc[1] >> etc[2];
450 filename.c_str(), lineNum));
457 if (get_etc && get_erc) {
461 "Could not read translation and rotation " 462 "parameters from config file %s",
540 const unsigned int &image_height)
const 542 #if defined(VISP_HAVE_XML2) && defined(VISP_HAVE_VIPER650_DATA) 605 if (image_width == 640 && image_height == 480) {
617 vpTRACE(
"Cannot get default intrinsic camera parameters for this image " 626 if (image_width == 640 && image_height == 480) {
638 vpTRACE(
"Cannot get default intrinsic camera parameters for this image " 646 if (image_width == 640 && image_height == 480) {
658 vpTRACE(
"Cannot get default intrinsic camera parameters for this image " Used to indicate that a value is not in the allowed range.
static const std::string CONST_EMC_GENERIC_WITH_DISTORTION_FILENAME
vpHomogeneousMatrix eMc
End effector to camera transformation.
Error that can be emited by the vpRobot class and its derivates.
unsigned int getWidth() const
Implementation of an homogeneous matrix and operations on such kind of matrices.
vpCameraParameters::vpCameraParametersProjType projModel
static const std::string CONST_EMC_GENERIC_WITHOUT_DISTORTION_FILENAME
static const std::string CONST_EMC_PTGREY_FLEA2_WITHOUT_DISTORTION_FILENAME
vpToolType getToolType() const
Get the current tool type.
static const std::string CONST_EMC_PTGREY_FLEA2_WITH_DISTORTION_FILENAME
static const std::string CONST_EMC_SCHUNK_GRIPPER_WITH_DISTORTION_FILENAME
static const std::string CONST_EMC_MARLIN_F033C_WITHOUT_DISTORTION_FILENAME
XML parser to load and save intrinsic camera parameters.
void getCameraParameters(vpCameraParameters &cam, const unsigned int &image_width, const unsigned int &image_height) const
Implementation of a rotation matrix and operations on such kind of matrices.
void initPersProjWithoutDistortion(const double px, const double py, const double u0, const double v0)
double c56
Mechanical coupling between joint 5 and joint 6.
static const vpToolType defaultTool
Default tool attached to the robot end effector.
virtual void set_eMc(const vpHomogeneousMatrix &eMc_)
vpCameraParametersProjType
void parseConfigFile(const std::string &filename)
Generic class defining intrinsic camera parameters.
Modelisation of the ADEPT Viper 650 robot.
static const char *const CONST_MARLIN_F033C_CAMERA_NAME
vpToolType
List of possible tools that can be attached to the robot end-effector.
static const char *const CONST_PTGREY_FLEA2_CAMERA_NAME
void buildFrom(const vpTranslationVector &t, const vpRotationMatrix &R)
static double rad(double deg)
static const char *const CONST_SCHUNK_GRIPPER_CAMERA_NAME
static const std::string CONST_EMC_MARLIN_F033C_WITH_DISTORTION_FILENAME
unsigned int getHeight() const
Implementation of a rotation vector as Euler angle minimal representation.
int parse(vpCameraParameters &cam, const std::string &filename, const std::string &camera_name, const vpCameraParameters::vpCameraParametersProjType &projModel, const unsigned int image_width=0, const unsigned int image_height=0)
void setToolType(vpViper650::vpToolType tool)
Set the current tool type.
static const char *const CONST_GENERIC_CAMERA_NAME
Class that consider the case of a translation vector.
void initPersProjWithDistortion(const double px, const double py, const double u0, const double v0, const double kud, const double kdu)
static const std::string CONST_EMC_SCHUNK_GRIPPER_WITHOUT_DISTORTION_FILENAME
static const std::string CONST_CAMERA_FILENAME