{"action":"created","issue":{"url":"https://api.github.com/repos/jhu-saw/sawConstraintController/issues/12","labels_url":"https://api.github.com/repos/jhu-saw/sawConstraintController/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/jhu-saw/sawConstraintController/issues/12/comments","events_url":"https://api.github.com/repos/jhu-saw/sawConstraintController/issues/12/events","html_url":"https://github.com/jhu-saw/sawConstraintController/issues/12","id":99691559,"number":12,"title":"Crash on UpdateOptimizer","user":{"login":"ahundt","id":55744,"avatar_url":"https://avatars.githubusercontent.com/u/55744?v=3","gravatar_id":"","url":"https://api.github.com/users/ahundt","html_url":"https://github.com/ahundt","followers_url":"https://api.github.com/users/ahundt/followers","following_url":"https://api.github.com/users/ahundt/following{/other_user}","gists_url":"https://api.github.com/users/ahundt/gists{/gist_id}","starred_url":"https://api.github.com/users/ahundt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahundt/subscriptions","organizations_url":"https://api.github.com/users/ahundt/orgs","repos_url":"https://api.github.com/users/ahundt/repos","events_url":"https://api.github.com/users/ahundt/events{/privacy}","received_events_url":"https://api.github.com/users/ahundt/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2015-08-07T17:15:10Z","updated_at":"2015-08-07T22:12:51Z","closed_at":null,"body":"I'm getting a crash from mtsVFFollow.cpp with the following stack trace:\r\n\r\n```\r\n#0\t0x00007fff872ac286 in __pthread_kill ()\r\n#1\t0x00007fff8a6d842f in pthread_kill ()\r\n#2\t0x00007fff911b7b53 in abort ()\r\n#3\t0x00007fff8d310a21 in abort_message ()\r\n#4\t0x00007fff8d3389b9 in default_terminate_handler() ()\r\n#5\t0x00007fff87bfe7eb in _objc_terminate() ()\r\n#6\t0x00007fff8d3360a1 in std::__terminate(void (*)()) ()\r\n#7\t0x00007fff8d335b30 in __cxa_throw ()\r\n#8\t0x000000011933a4ce in void cmnThrow<std::runtime_error>(std::runtime_error const&, short) at /Users/athundt/source/robonetracker/thirdparty/cisst-saw/cisst/cisstCommon/cmnThrow.h:93\r\n#9\t0x0000000119339f9b in vctDynamicVectorLoopEngines::ThrowException() at /Users/athundt/source/robonetracker/thirdparty/cisst-saw/cisst/cisstVector/vctDynamicVectorLoopEngines.h:73\r\n#10\t0x000000011941d26d in void vctDynamicVectorLoopEngines::VoVi<vctUnaryOperations<double, double>::Identity>::Run<vctDynamicVectorBase<vctDynamicVectorRefOwner<double>, double>, vctDynamicConstVectorRef<double> >(vctDynamicVectorBase<vctDynamicVectorRefOwner<double>, double>&, vctDynamicConstVectorRef<double> const&) at /Users/athundt/source/robonetracker/thirdparty/cisst-saw/cisst/cisstVector/vctDynamicVectorLoopEngines.h:562\r\n#11\t0x000000011937e420 in vctDynamicVectorBase<vctDynamicVectorRefOwner<double>, double>& vctDynamicVectorBase<vctDynamicVectorRefOwner<double>, double>::Assign<3ul, 1l, double, double [3]>(vctFixedSizeConstVectorBase<3ul, 1l, double, double [3]> const&) at /Users/athundt/source/robonetracker/thirdparty/cisst-saw/cisst/cisstVector/vctDynamicVectorBase.h:295\r\n#12\t0x000000011937e193 in mtsVFFollow::FillInTableauRefs(mtsVFBase::CONTROLLERMODE, double) at /Users/athundt/source/robonetracker/thirdparty/cisst-saw/sawConstraintController/code/mtsVFFollow.cpp:77\r\n#13\t0x000000011936fe06 in mtsVFController::UpdateOptimizer(double) at /Users/athundt/source/robonetracker/thirdparty/cisst-saw/sawConstraintController/code/mtsVFController.cpp:317\r\n#14\t0x00000001193269d0 in grl::VrepInverseKinematicsController::run_one() at /Users/athundt/source/robonetracker/modules/grl/include/grl/cisst/VrepVFController.hpp:265\r\n#15\t0x0000000119324a1b in v_repMessage at /Users/athundt/source/robonetracker/modules/grl/src/v_repExtGrlInverseKinematics/v_repExtGrlInverseKinematics.cpp:272\r\n#16\t0x0000000102ed0da9 in CPluginContainer::sendEventCallbackMessageToAllPlugins(int, int*, void*, int*) ()\r\n#17\t0x0000000102ec6f87 in _workThread(void*) ()\r\n#18\t0x0000000102b04646 in Thread::run() ()\r\n#19\t0x0000000100052e60 in ___lldb_unnamed_function350$$QtCore ()\r\n#20\t0x00007fff8a6d6268 in _pthread_body ()\r\n#21\t0x00007fff8a6d61e5 in _pthread_start ()\r\n#22\t0x00007fff8a6d441d in thread_start ()\r\n\r\n```\r\n\r\n\r\nIn particular I've been able to verify that [mtsVFFollow.cpp line 77](https://github.com/jhu-saw/sawConstraintController/blob/92af15d6c0feb88642bae5a3a3b9a8606b799928/code/mtsVFFollow.cpp#L77) is being passed with the values in the following state. In particular you'll want to see dx_translation vector near the bottom:\r\n\r\n\r\n```\r\nthis\tmtsVFFollow *\t0x10077f270\t0x000000010077f270\r\nmtsVFJointPosition\tmtsVFJointPosition\t\t\r\nCurrentKinematics\tprmKinematicsState *\t0x104493b70\t0x0000000104493b70\r\nFrame\tvctFrm3\t\t\r\nRotationMember\tvctFrameBase<vctMatrixRotation3<double, true> >::RotationType\t\t\r\nvctMatrixRotation3Base<vctFixedSizeMatrix<double, 3, 3, true> >\tvctMatrixRotation3Base<vctFixedSizeMatrix<double, 3, 3, true> >\t\t\r\nvctMatrixRotation3ConstBase<vctFixedSizeMatrix<double, 3, 3, true> >\tvctMatrixRotation3ConstBase<vctFixedSizeMatrix<double, 3, 3, true> >\t\t\r\nvctFixedSizeMatrix<double, 3, 3, true>\tvctFixedSizeMatrix<double, 3, 3, true>\t\t\r\nvctFixedSizeMatrixBase<3, 3, 3, 1, double, double [9]>\tvctFixedSizeMatrixBase<3, 3, 3, 1, double, double [9]>\t\t\r\nvctFixedSizeConstMatrixBase<3, 3, 3, 1, double, double [9]>\tvctFixedSizeConstMatrixBase<3, 3, 3, 1, double, double [9]>\t\t\r\nData\tvctFixedSizeConstMatrixBase<3, 3, 3, 1, double, double [9]>::DataType\t\t\r\n[0]\tdouble\t1\t1\r\n[1]\tdouble\t0\t0\r\n[2]\tdouble\t0\t0\r\n[3]\tdouble\t0\t0\r\n[4]\tdouble\t1\t1\r\n[5]\tdouble\t0\t0\r\n[6]\tdouble\t0\t0\r\n[7]\tdouble\t0\t0\r\n[8]\tdouble\t1\t1\r\nTranslationMember\tvctFrameBase<vctMatrixRotation3<double, true> >::TranslationType\t\t\r\nvctFixedSizeVectorBase<3, 1, double, double [3]>\tvctFixedSizeVectorBase<3, 1, double, double [3]>\t\t\r\nvctFixedSizeConstVectorBase<3, 1, double, double [3]>\tvctFixedSizeConstVectorBase<3, 1, double, double [3]>\t\t\r\nData\tdouble [3]\t\t\r\n[0]\tdouble\t0\t0\r\n[1]\tdouble\t0\t0\r\n[2]\tdouble\t0\t0\r\nCartesianVelocity\tvct3\t\t\r\nvctFixedSizeVectorBase<3, 1, double, double [3]>\tvctFixedSizeVectorBase<3, 1, double, double [3]>\t\t\r\nAngularVelocity\tvct3\t\t\r\nJacobian\tvctDoubleMat\t\t\r\nInverseJacobian\tvctDoubleMat\t\t\r\nUserCount\tint\t0\t0\r\nName\tstd::__1::string\t\"IK_Group1_iiwa\"\t\r\nNeedsBase\tbool\tfalse\tfalse\r\nJointState\tprmJointState *\tNULL\t0x0000000000000000\r\nDesiredKinematics\tprmKinematicsState *\t0x104493df0\t0x0000000104493df0\r\nFrame\tvctFrm3\t\t\r\nRotationMember\tvctFrameBase<vctMatrixRotation3<double, true> >::RotationType\t\t\r\nvctMatrixRotation3Base<vctFixedSizeMatrix<double, 3, 3, true> >\tvctMatrixRotation3Base<vctFixedSizeMatrix<double, 3, 3, true> >\t\t\r\nvctMatrixRotation3ConstBase<vctFixedSizeMatrix<double, 3, 3, true> >\tvctMatrixRotation3ConstBase<vctFixedSizeMatrix<double, 3, 3, true> >\t\t\r\nvctFixedSizeMatrix<double, 3, 3, true>\tvctFixedSizeMatrix<double, 3, 3, true>\t\t\r\nvctFixedSizeMatrixBase<3, 3, 3, 1, double, double [9]>\tvctFixedSizeMatrixBase<3, 3, 3, 1, double, double [9]>\t\t\r\nvctFixedSizeConstMatrixBase<3, 3, 3, 1, double, double [9]>\tvctFixedSizeConstMatrixBase<3, 3, 3, 1, double, double [9]>\t\t\r\nData\tvctFixedSizeConstMatrixBase<3, 3, 3, 1, double, double [9]>::DataType\t\t\r\n[0]\tdouble\t1\t1\r\n[1]\tdouble\t0\t0\r\n[2]\tdouble\t0\t0\r\n[3]\tdouble\t0\t0\r\n[4]\tdouble\t1\t1\r\n[5]\tdouble\t0\t0\r\n[6]\tdouble\t0\t0\r\n[7]\tdouble\t0\t0\r\n[8]\tdouble\t1\t1\r\nTranslationMember\tvctFrameBase<vctMatrixRotation3<double, true> >::TranslationType\t\t\r\nvctFixedSizeVectorBase<3, 1, double, double [3]>\tvctFixedSizeVectorBase<3, 1, double, double [3]>\t\t\r\nvctFixedSizeConstVectorBase<3, 1, double, double [3]>\tvctFixedSizeConstVectorBase<3, 1, double, double [3]>\t\t\r\nData\tdouble [3]\t\t\r\n[0]\tdouble\t0.19874370098114014\t0.19874370098114014\r\n[1]\tdouble\t-0.74582469463348389\t-0.74582469463348389\r\n[2]\tdouble\t0.5781978964805603\t0.5781978964805603\r\nCartesianVelocity\tvct3\t\t\r\nAngularVelocity\tvct3\t\t\r\nJacobian\tvctDoubleMat\t\t\r\nInverseJacobian\tvctDoubleMat\t\t\r\nUserCount\tint\t0\t0\r\nName\tstd::__1::string\t\"RobotMillTipTarget\"\t\r\nNeedsBase\tbool\tfalse\tfalse\r\nJointState\tprmJointState *\tNULL\t0x0000000000000000\r\nJacResized\tvctDoubleMat\t\t\r\ndx_translation\tvct3\t\t\r\nvctFixedSizeVectorBase<3, 1, double, double [3]>\tvctFixedSizeVectorBase<3, 1, double, double [3]>\t\t\r\nvctFixedSizeConstVectorBase<3, 1, double, double [3]>\tvctFixedSizeConstVectorBase<3, 1, double, double [3]>\t\t\r\nData\tdouble [3]\t\t\r\n[0]\tdouble\t0.19874370098114014\t0.19874370098114014\r\n[1]\tdouble\t-0.74582469463348389\t-0.74582469463348389\r\n[2]\tdouble\t0.5781978964805603\t0.5781978964805603\r\n```"},"comment":{"url":"https://api.github.com/repos/jhu-saw/sawConstraintController/issues/comments/128844844","html_url":"https://github.com/jhu-saw/sawConstraintController/issues/12#issuecomment-128844844","issue_url":"https://api.github.com/repos/jhu-saw/sawConstraintController/issues/12","id":128844844,"user":{"login":"ahundt","id":55744,"avatar_url":"https://avatars.githubusercontent.com/u/55744?v=3","gravatar_id":"","url":"https://api.github.com/users/ahundt","html_url":"https://github.com/ahundt","followers_url":"https://api.github.com/users/ahundt/followers","following_url":"https://api.github.com/users/ahundt/following{/other_user}","gists_url":"https://api.github.com/users/ahundt/gists{/gist_id}","starred_url":"https://api.github.com/users/ahundt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahundt/subscriptions","organizations_url":"https://api.github.com/users/ahundt/orgs","repos_url":"https://api.github.com/users/ahundt/repos","events_url":"https://api.github.com/users/ahundt/events{/privacy}","received_events_url":"https://api.github.com/users/ahundt/received_events","type":"User","site_admin":false},"created_at":"2015-08-07T22:12:51Z","updated_at":"2015-08-07T22:12:51Z","body":"I tried an alternate approach of adding the latest cisstNetlib as a subdirectory of my build tree. However it seems the libraries that build by default don't include a few required functions as detailed below:\r\n\r\n```\r\nUndefined symbols for architecture x86_64:\r\n  \"_dgelss_\", referenced from:\r\n      robManipulator::OSinertia(double (*) [6], vctDynamicVector<double> const&) const in libcisstRobot.a(robManipulator.o)\r\n  \"_dgemm_\", referenced from:\r\n      robManipulator::InverseKinematics(vctDynamicVector<double>&, vctFrame4x4<double, true> const&, double, unsigned long, double) in libcisstRobot.a(robManipulator.o)\r\n      robManipulator::JacobianSpatial(vctDynamicVector<double> const&) const in libcisstRobot.a(robManipulator.o)\r\n      robManipulator::OSinertia(double (*) [6], vctDynamicVector<double> const&) const in libcisstRobot.a(robManipulator.o)\r\n  \"_dgemv_\", referenced from:\r\n      robManipulator::InverseKinematics(vctDynamicVector<double>&, vctFrame4x4<double, true> const&, double, unsigned long, double) in libcisstRobot.a(robManipulator.o)\r\n      robManipulator::InverseDynamics(vctDynamicVector<double> const&, vctDynamicVector<double> const&, vctFixedSizeVector<double, 6ul> const&) const in libcisstRobot.a(robManipulator.o)\r\n  \"_dgesv_\", referenced from:\r\n      robManipulator::InverseKinematics(vctDynamicVector<double>&, vctFrame4x4<double, true> const&, double, unsigned long, double) in libcisstRobot.a(robManipulator.o)\r\n  \"_dnrm2_\", referenced from:\r\n      robManipulator::InverseKinematics(vctDynamicVector<double>&, vctFrame4x4<double, true> const&, double, unsigned long, double) in libcisstRobot.a(robManipulator.o)\r\n  \"_dpotrf_\", referenced from:\r\n      robManipulator::OSinertia(double (*) [6], vctDynamicVector<double> const&) const in libcisstRobot.a(robManipulator.o)\r\n  \"_dpotri_\", referenced from:\r\n      robManipulator::OSinertia(double (*) [6], vctDynamicVector<double> const&) const in libcisstRobot.a(robManipulator.o)\r\n  \"_dsymm_\", referenced from:\r\n      robManipulator::OSinertia(double (*) [6], vctDynamicVector<double> const&) const in libcisstRobot.a(robManipulator.o)\r\n  \"_dsymv_\", referenced from:\r\n      robManipulator::InverseDynamics(vctDynamicVector<double> const&, vctDynamicVector<double> const&, vctFixedSizeVector<double, 6ul> const&) const in libcisstRobot.a(robManipulator.o)\r\n      robManipulator::InverseDynamics(vctDynamicVector<double> const&, vctDynamicVector<double> const&, vctDynamicVector<double> const&) const in libcisstRobot.a(robManipulator.o)\r\nld: symbol(s) not found for architecture x86_64\r\nclang: error: linker command failed with exit code 1 (use -v to see invocation)\r\n```\r\n\r\nAny suggestions on how to get this configuration to be correct? "}}