ros-industrial-attic / reuleaux

GSoC Project for robot reachability
76 stars 56 forks source link

Build fails with UR5 ikfast #39

Closed AndyZe closed 7 years ago

AndyZe commented 7 years ago

Using the ur5_ikfast.cpp file from here: https://github.com/ipa320/cob_manipulation/blob/indigo_dev/cob_kinematics/ikfast/src/ikfast_ur5.cpp

And following step 3.3 from the ROS wiki: http://wiki.ros.org/reuleaux#Setting_up_Kinematics_for_the_robot

Results in this build error: (see attached)

`CMakeFiles/create_inverse_reachability_map.dir/src/create_inverse_reachability_map.cpp.o: In function `IKSolver::solvedialyticpoly12qep(double const*, double*, int&)':
create_inverse_reachability_map.cpp:(.text._ZN8IKSolver22solvedialyticpoly12qepEPKdPdRi[_ZN8IKSolver22solvedialyticpoly12qepEPKdPdRi]+0x4d0): undefined reference to `dgetrf_'`

build_error

AndyZe commented 7 years ago

dgetrf_ is defined here at line 74 of ur5_ikfast.cpp:

extern "C" {
  void dgetrf_ (const int* m, const int* n, double* a, const int* lda, int* ipiv, int* info);
  void zgetrf_ (const int* m, const int* n, std::complex<double>* a, const int* lda, int* ipiv, int* info);
  void dgetri_(const int* n, const double* a, const int* lda, int* ipiv, double* work, const int* lwork, int* info);
  void dgesv_ (const int* n, const int* nrhs, double* a, const int* lda, int* ipiv, double* b, const int* ldb, int* info);
  void dgetrs_(const char *trans, const int *n, const int *nrhs, double *a, const int *lda, int *ipiv, double *b, const int *ldb, int *info);
  void dgeev_(const char *jobvl, const char *jobvr, const int *n, double *a, const int *lda, double *wr, double *wi,double *vl, const int *ldvl, double *vr, const int *ldvr, double *work, const int *lwork, int *info);
}
gavanderhoorn commented 7 years ago

I'm not saying it's the cause, but:

/// ikfast version 61 generated on 2012-10-22 11:25:24.391773

That is quite some time (and versions) ago.

jontromanab commented 7 years ago

@AndyZe I have created a new ikfast file for UR5. It is not breaking. You can use that. Please look at the new commit.