Unexpected -310040 error (could not converge) in LabVIEW for Robotics: Inverse Kinematics VI

Hi,
I downloaded the robot kinematics example Vis off of this page from devzone, and they work fine.
Basics of Robot Kinematics
http://zone.ni.com/devzone/cda/tut/p/id/10687
“This is great!” I thought to myself.  I really wanted to play with the IK Vis.  So I went about defining my own serial arm, using my own lengths and configurations for each joint.
First, I ripped out all the dynamic parameters in Create Puma 560.vi.  Didn’t think I needed those just for the IK calculations.  I went about defining an arm with only one link with a length of 1 and a twist angle of 0.  I set my desired position to (1,0,0) and lo and behold, the VI worked with no error.  I then set position to (0,1,0), but this time the -310040 error occurred (could not converge).  Why Is this happening?  Am I missing something in the arm definition?
I then went on to doing some more trial and error, I added a second link, again with a length of 1 and a twist angle of 0. I tried (2,0,0), and it worked.  Even (1,1,0) worked, to my surprise, the two links would form a 90 deg angle.  But still, (-2,0,0) didn’t work.
Another question I have is, can the Robotic Arm Vis account for singular points that may occur (positions with no solutions or infinite solutions?)  An initial sweep of the arm workspace would be nice.  Also, for positions that have more than one solution, is it possible to input constraints on the joint angles so that only one solution is possible?    
Thanks for your response.
John Wu
Project Manager
Riobotics Technology Consulting
Attachments:
IK Question.zip ‏36 KB

Hi,
Thanks for your reply.  Fortunately I'm not dealing with prismatic joints in my application, so the visualization bug that you mentioned won't be a big issue to me.  I'm only dealing with revolute joints for now.  Your explanation for the prismatic joint was right on the spot, however I found a couple more quirks with revolute joints.
Consider the case of only one revolute joint, length=1, twist angle=0.  I would expect that this single joint allows the arm to revolve around the base in the XY plane.  So I plug in (1,0,0), I get a solution.  I plug in (0,1,0), no solution (see pic).  Same with (-1,0,0) and (0,-1,0), no solution.  So I fiddled around and added one more revolute joint of length=0 to the series.  Now the VI gives solution to all of the 4 positions I tried earlier.
"Ok" I thought to my myself, maybe I just need to tag a joint of length=0 to the end of my series, everything should work out.  Not so.  I tried having 3 revolute joints in total, 2 of them with length=1, the last one length=0, tried some different positions but most positions failed to converge.
My goal is simple ... to define a serial arm with 3 revolute joints, all rotating in the same plane, and try out the LabVIEW IK algorithms.  For simplicity's sake, all 3 links lengths=1.  Do you think you can provide an example?
-John
Attachments:
IK failed to converge.jpg ‏84 KB

Similar Messages

  • Idoc Error: Could not find code page for receiving system

    hi,
    I am facing the following error while processing Idocs.
    ERROR: Could not find code page for receiving system
    Diagnosis
    For the logical destination BWFIN, you want to determine the code page in which the data is sent with RFC. However, this is not currently possible, and the IDoc cannot yet be dispatched.
    Can somebody suggest a solution for this. I have verified that the RFC destinations have been created both on the sender and receiver, ports (WE21) have been defined, and partner profiles (WE20) also created. How would I troubleshoot this problem?

    Hi,
    I did analyse on this issue.It is all because of the Langauge settings in the SM59.This can be done by the BASIS person.The Language field would be empty, but when ever we send the IDoc from the unicode to a non unicode system we have to mention the Langauage used.
    If this helps you really award me the points.
    ~Katty

  • Sun C++ 5.13 SunOS_sparc Beta2 2014/06/17: Error: Could not find a match for std::_Tuple_impl 0, unsigned&& ::_Tuple_impl(std::tuple unsigned&& , unsigned) needed in std::tuple unsigned&& ::tuple unsigned, void (unsigned&&).

    I think I downloaded the latest Solaris Studio version.  When I compile my code, I got the following error:
    bash-3.00$ gmake -f Makefile.sun
    CC -c -o metadata.o metadata.cpp -I. -I.. -g -O0 -std=c++11 -I/export/home/oracle/zhifan/boost_1_55_0 -I/export/home/oracle/zhifan/instantclient_11_2/sdk/include -V
    CC: Sun C++ 5.13 SunOS_sparc Beta2 2014/06/17
    ccfe: Sun C++ 5.13 SunOS_sparc Beta2 2014/06/17
    "metadata.cpp", line 20: Warning: db hides databus::MetadataManager::db.
    "metadata.cpp", line 26: Warning: db hides databus::MetadataManager::db.
    Error: Could not find a match for std::_Tuple_impl<0, unsigned&&>::_Tuple_impl(std::tuple<unsigned&&>, unsigned) needed in std::tuple<unsigned&&>::tuple<unsigned, void>(unsigned&&).
    "/export/home/oracle/zhifan/SolarisStudio12.4-beta_jul14-solaris-sparc/lib/compilers/CC-gcc/include/c++/4.8.2/tuple", line 868:     Where: While instantiating "std::tuple<unsigned&&>::tuple<unsigned, void>(unsigned&&)".
    "/export/home/oracle/zhifan/SolarisStudio12.4-beta_jul14-solaris-sparc/lib/compilers/CC-gcc/include/c++/4.8.2/tuple", line 868:     Where: Instantiated from std::forward_as_tuple<unsigned>(unsigned&&).
    "/export/home/oracle/zhifan/SolarisStudio12.4-beta_jul14-solaris-sparc/lib/compilers/CC-gcc/include/c++/4.8.2/bits/stl_map.h", line 485:     Where: Instantiated from non-template code.
    1 Error(s) and 2 Warning(s) detected.
    gmake: *** [metadata.o] Error 2
    with the same code, It can be compiled with g++ on Linux platform.
    1 Is the issue same as 12.4 Beta, Error: Could not find a match for std::_Tuple_impl<0, std::string &&>::_Tuple_impl(std::tuple<std::string &&> ?
    2 Do we have any workaround for this issue?
    3 When will the final 12.4 release  be available?

    I can't say for sure whether your problem is fixed in the final release without a test case, but I'd say the chances are very good.
    The final release will be announced soon. Watch this space, or the Oracle Solaris Studio page for an announcement.

  • 12.4 Beta, Error: Could not find a match for std::_Tuple_impl 0, std::string && ::_Tuple_impl(std::tuple std::string &&

    Hi,
    would you guys say code that compiles fine without -std=c++11 should also compile *with* -std=c++11?
    raider@sol112_x86:/tmp $ CC -V
    CC: Sun C++ 5.13 SunOS_i386 Beta2 2014/06/17
    raider@sol112_x86:/tmp $ CC buggy.cc  
    raider@sol112_x86:/tmp $ CC -std=c++11 buggy.cc         
    Error: Could not find a match for std::_Tuple_impl<0, std::string &&>::_Tuple_impl(std::tuple<std::string &&>, std::string ) needed in std::tuple<std::string &&>::tuple<std::string, void>(std::string &&).
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/tuple", line 868:     Where: While instantiating "std::tuple<std::string &&>::tuple<std::string, void>(std::string &&)".
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/tuple", line 868:     Where: Instantiated from std::forward_as_tuple<std::string>(std::string &&).
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/bits/stl_map.h", line 485:     Where: Instantiated from non-template code.
    1 Error(s) detected.
    raider@sol112_x86:/tmp $ cat buggy.cc
    #include <map>
    #include <string>
    typedef std::map<std::string, std::string> StrStrMap;
    int main(void)
        StrStrMap dict;
        dict["bug"] = "feature";
        return 0;

    C++11 is approximately a superset of C++03. If you write in the common subset, the code will compile in any mode. For example, a basic hello-world program
    #include <iostream>
    int main() { std::cout << "Hello, world!\n"; }
    will compile and run as C++98/03, as C++11, as C++14, and I'm sure will also work with the next standard, planned for 2017.
    But if you use syntax or library types and functions that are new in C++11, the code will not compile as C++03.
    In my previous post, I might have sounded too negative about compiling C++03 code in C++11 mode. If you have a C++03 program that is intended to be portable, and that works with different compilers on different platforms, chances are good that it will continue to work in C++11. The chances are very good that only minor modifications will be needed.

  • Error: Could not find a match for... ?

    Hi,
    I am trying to compile some code using Studio 10/11 which appears to compile cleanly using a bunch of different C++ compilers (xlC, aCC, VC, g++) but is failing using the C++ compiler in both Studio 10 and Studio 11 with:
    "test.cpp", line 18: Error: Could not find a match for MKGeomT::getDistanceSquared<MKGeomT::_DIM, MKGeomT::_TYPE>(const MKGeomT::Segment<MKT::Dim2, MKT::Double>&, const MKGeomT::Point<MKT::Dim2, MKT::Double>&, MKGeomT::Point<MKT::Dim2, MKT::Double>*, double*).
    "test.cpp", line 23: Error: Could not find a match for MKGeomT::getDistanceSquared<MKGeomT::_DIM, MKGeomT::_TYPE>(const MKGeomT::Segment<MKT::Dim3, MKT::Double>&, const MKGeomT::Point<MKT::Dim3, MKT::Double>&, MKGeomT::Point<MKT::Dim3, MKT::Double>*, double*).
    Any ideas on how to get this to compile would be appreciated.
    test.cpp:
    /opt/SUNWspro/bin/CC -library=stlport4 -c test.cpp
    #include "all.h"
    namespace MKGeomT
    template < class DIM, class TYPE >
    double getDistanceSquared(Segment < DIM, TYPE > const &segment,
    Point < DIM, TYPE > const &querypt,
    Point < DIM, TYPE > *closestpoint,
    double *param)
    { return 0.0; }
    template double getDistanceSquared < MKT::Dim2 > (Segment2 const &segment,
    Point2 const &querypt,
    Point2 *closestpoint,
    double *param);
    template double getDistanceSquared < MKT::Dim3 > (Segment3 const &segment,
    Point3 const &querypt,
    Point3 *closestpoint,
    double *param);
    all.h:
    // a.h
    namespace MKGeomT
    template < class DIM, class TYPE > class Point;
    template < class DIM, class TYPE > class Segment;
    template < class DIM, class TYPE >
    double getDistanceSquared(Segment < DIM, TYPE > const &segment,
    Point < DIM, TYPE > const &point,
    Point < DIM, TYPE > closestpoint /= 0*/,
    double *param = 0);
    template < class DIM, class TYPE >
    inline double getDistance(Segment < DIM, TYPE > const &segment,
    Point < DIM, TYPE > const &point,
    Point < DIM, TYPE > *closestpoint = 0)
    return 0.0;
    // b.h
    namespace MKT
    class Dim2 { public: enum { NUM_DIM = 2 }; };
    class Dim3 { public: enum { NUM_DIM = 3 }; };
    class Float { public: typedef float  Stor_t; typedef double Calc_t; };
    class Double { public: typedef double Stor_t; typedef double Calc_t; };
    } // end of namespace MKT
    // c.h
    using MKT::Dim2;
    using MKT::Dim3;
    using MKT::Double;
    namespace MKGeomT
    template < class DIM, class TYPE >
    class PointBase
    template < class DIM, class TYPE > class Point;
    #if 1
    template < class _TYPE >
    class Point < Dim2, TYPE > : public PointBase < Dim2, TYPE >
    template < class _TYPE >
    class Point < Dim3, TYPE > : public PointBase < Dim3, TYPE >
    #endif
    typedef Point < Dim2, Double > Point2;
    typedef Point < Dim3, Double > Point3;
    } // end of namespace MKGeomT
    // d.h
    namespace MKGeomT
    /*! The Segment is a geometry class storing a segment in 3-D. Things
    like the segment vector and length are cached behind the
    scenes so subsequent retrieval is a no-op. */
    template < class DIM, class TYPE = MKT::Double >
    class Segment
    template < class DIM, class TYPE >
    double getDistanceSquared (Segment < DIM, TYPE > const &rkSeg0,
    Segment < DIM, TYPE > const &rkSeg1,
    double* pfSegP0 = 0,
    double* pfSegP1 = 0);
    template < class DIM, class TYPE >
    double getDistanceSquared2(Segment < DIM, TYPE > const &rkSeg0,
    Segment < DIM, TYPE > const &rkSeg1,
    double* pfSegP0 = 0,
    double* pfSegP1 = 0);
    typedef Segment < MKT::Dim2, MKT::Double > Segment2;
    typedef Segment < MKT::Dim3, MKT::Double > Segment3;
    thanks,
    k.m

    Never mind, I see that you intended to include b.h, c.h, and d.h in all.h.
    Many compilers do not look at template code until the code is instantiated. This code consists only of declarations, with little that can be instantiated. It's possible that other compilers would also complain about this code if they got to the point of processing all the template declarations.
    Can you add some instantiations along with template definitions and a main function so that the code can be compiled and linked?

  • BW Monitor error  Could not find code page for receiving system

    Hi All,
    Frequent BW Monitor error  - Could not find code page for receiving system
    I checked SM59 and every setting is fine there. Any other possibility ?
    Regards
    Srinivas

    The log updated in the status tab was:
    Error when updating Idocs in Business Information Warehouse
    Diagnosis
    Errors have been reported in Business Information Warehouse during IDoc update:
    Could not find code page for receiving system
    System Response
    Some IDocs have error status.
    Procedure
    Check the IDocs in Business Information Warehouse . You do this using the extraction monitor.
    Error handling:
    How you resolve the errors depends on the error message you get.

  • Debuging mapping - error : Could not find test data for target operators ?

    Hello, Please help me.
    I use Oracle Warehouse Builder 10gR2.
    I created a cube with two dimensions.
    I debugged the mappings of these two dimensions then viewed their data after deployment.
    I tried to debug the mapping of the cube, and got the error: Could not find test data for all source and target operators.
    For source objects exist test data but for the target operator (cube_out) logically we do not need test data !!!! .
    But the error is here: Could not find test data for target operators. Why ??
    How to configure or explain to owb that the target operator do not have test data ????
    I need your help.
    thank you in advance.

    Sorry, I can not understand your approach ?
    I explain you in detail : I work in ROLAP.
    I have two dimensions : DIM_1 and DIM_2 linked with the cube (Fact_table).
    I have three mappings : MAP_DIM1, MAP_DIM2, MAP_CUBE.
    For the MAP_CUBE, I have source operator : VIEW_IN and Target operator : CUBE_OUT.
    I could see the data dimensions : DIM_1 and DIM_2 after debugging and Deployment in the OLAP schema.
    I tried debugged the mapping: MAP_CUBE so I got the error: Could not find test data for all source and target operators.*
    thank you for help.

  • Error could not find file/pathurl for id file::QTMRead

    Hi,
    I'm very puzzled as to this error I have gotten on multiple projects when trying to check back out.
    Error could not find file/pathurl for id file::QTMRead
    I'm halfway through a project with a deadline of next week, and have been using edit proxies, so am just worried about being able to export the final project if the Server cannot find the file.
    It seems to get this error after a glitchy upload where the server locks up and I have to force quit. Has anyone had this message before/have any ideas how to solve it?
    Some speedy help would be very much appreciated.
    Thanks,
    Dania

    You need to make sure that you imported the Reports.xml file into the FDM application. Also, you will want to login to the application using the workbench client and click on the Reports tab and expand the English > Check Reports and right-click on the check report and choose "Set as Validation Report".

  • While installing the itunes setup i am getting an error"Could not register type library for file ipodsevice.exe" What to do now?

    While installing the itunes setup i am getting an error"Could not register type library for file ipodsevice.exe" What to do now?

    Try posting in the iTunes forum.  You have an iTunes problem not an iPod problem

  • EHSM - Create Vendor - error: 'Could not find a document for the given key'

    Dear all,
    In the Chemical Approval Process I have attached a SDS document to the Approval Request. You can assign a Vendor to the SDS. As there are no (EHSM) Vendors currently available in the system I would like to create a new (EHSM) Vendor by clicking on 'Create Vendor'.
    This will lead me to the following Webdynpro Application: Edit Vendor (EHFND_UI_VENDOR_OVP).
    Only one field is shown in the Webdynpro named: 'Name of the Vendor'. After typing a name e.g. 'test', the following error message appears; 'Could not find a document for the given key'. See also attached document. This issue looks like a missing number range, however I could not find a EHSM number range for Vendors.
    How to solve this issue?
    More information:
    Software Component: SAP EHS Management (EHSM) Support Package: 3
    Process: Chemical Approval
    Webdynpro application: EHFND_UI_VENDOR_OVP
    Thank you.
    Kind regards,
    Roy

    Hi
    babooraj
    This might be a problem with Windows Power Shell.
    The solution is to copy the folder: "PSWorkflow" from "C:\Windows\System32\WindowsPowerShell\v1.0\Modules\"
    to "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules"
    Than everything works fine.
    Ps.: @Microsoft, please fix this problem in future versions.
    Thomas van Veen

  • Error "could not find code page for receiving system"

    Hello Everyone,
    We are trying to load data and receive the message:
    Could not find code page for receiving system
    We have searched notes and this forum and can't find anything.  We also checked WE20 and could not find anything wrong.
    Can someone please elaborate specifically what this error is and where to fix it?
    Thanks so much.
    Colleen

    I just upgraded to NW 2004 SR1, and when loading data from a non-unicoded R/3 system to our BW unicoded system I experienced the exact problem.  Here is the resolution that is stated in note #613389 (it's not very clear in the note).
    - Language “EN” must be specified in sm59
    - Under Special Options -> RFC Bit Options
    Make sure that “Use Found Communication Code Page” has a check mark.
    Once this was done, the data loads started completing successfully.

  • RFC Sender error could not create function template for...

    Hi,
    I am trying to send an async RFC to XI. Since I use IN BACKGROUND TASK and COMMIT WORK I got following error in the SM58 of the back end system
    Server repository could not create function
    template for 'XYZ'
    In the XI, I see nothing (no message, no error)
    How can I fix this problem?
    Thanks
    Thomas

    Hi Thomas,
      You may need to have logical destinatio types for sender RFC. (and in the refernce entry you need to provide the actual destination)
    may be some other errors also, Check this link and see if you have followed all the steps.
    http://help.sap.com/saphelp_nw04/helpdata/en/25/76cd3bae738826e10000000a11402f/frameset.htm
    Hope this fixes your issue.
    Regards
    Vishnu

  • Bursting error: Could not deliver the output for Delivery channel:null'

    I am using R12 applications.
    I get this error 'Error!! Could not deliver the output for Delivery channel:null' in the output file of the bursting concurrent program.
    The smtp server name the ids the mail id and all other things are fine in the bursting file since i have hard coded them.
    I have also telnet <smtp server name> 25 frm command prompt and it worked fine.
    I don't know why i am facing this issue.
    Below is the bursting control file.
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi" type="bursting">
    <xapi:request select="/XXOTC_MER_ROLES_LIST/LIST_G_USER_ID_/G_USER_ID_">
    <xapi:delivery>
    <xapi:email server="smtp server name" port="25" from="[email protected]" reply-to="[email protected]">
    <xapi:message id="123" to="[email protected]" attachment="true" subject=" Dear Manager :">
    Please review the attached list of roles </xapi:message>
    </xapi:email>
    </xapi:delivery>
    <xapi:document output-type="Excel" delivery="123">
    <xapi:template type="rtf" location="/mlogs/BPTDEV1/conc/temp/XXOTC_MER_ROLES_LIST_3.rtf">
    </xapi:template>
    </xapi:document>
    </xapi:request>
    </xapi:requestset>
    Any help would be greatly appreciated

    Hi user13319084,
    Is it that you've enabled SMTP authentication and the authentication is failing (not sure if user13319084 is person Kaushek commenting the same on my blog) here:
    http://garethroberts.blogspot.com/2008/03/bi-publisher-ebs-bursting-101.html
    Regards,
    Gareth

  • AutoConfig: ERROR: Could not retrieve mount point for product top

    when running autoconfig i got the below error for (R12)
    there is no errors are reported in autoconfig log file
    I Changed The directory of the PROD TOPs that are custom from 12.0.0 to 1.1.1. Auto Config overlays the changes back to 12.0.0. The Auto Config code can not find the Custom Top because it is looking to match up the entries in topfile.txt with 12.0.0 added to the end with the 1.1.1 which does not exist.
    Please suggest

    Hi,
    Why you want to make this change? Did you confirm this change wiht oracle support(if its prod i stongly suggest confirm your issue wiht oracle suport=
    Please also see:
    adcfg fails for apps tier
    http://kr.forums.oracle.com/forums/thread.jspa?messageID=3359572
    Regard
    Helios

  • Javah error: could not find class file for 'com.ntv.ndkjni'

    Hi,
    My project directory  : C:\ndkJNI
    My java file directory : C:\ndkJNI\src\com\ntv\ndkjni
    My package name    : com.ntv.ndkjni
    1 ) I entry command prompt at C:\ndkJNI\src\com\ntv\ndkjni
    2 ) Javac test.java and create test.class succesfully. test.class is in  C:\ndkJNI\src\com\ntv\ndkjni folder.
    3 ) Later I used Javah, try below javah variously
         a)  javah -classpath C:\ndkJNI\src\com\ntv\ndkjni test
         b)  javah -classpath C:\ndkJNI\src\com\ntv\ndkjni.test
         x) javah -classpath C:\ndkJNI\src\com\ntv\ndkjni com.ntv.ndkjni.test
         y) javah -classpath C:\ndkJNI\src\com\ntv\ndkjni com.ntv.ndkjni test
         c)  javah -classpath C:\ndkJNI\src\com\ntv\ndkjni com.ntv.ndkjni.test
         d)  javah  com.ntv.ndkjni.test
         e) javah  com.ntv.ndkjni test
         f) javah  com.ntv.ndkjni test.class-> (error: exception in a thread illegal argument exception)
    I am searching  for 5 day. I couldnt find solution. I try different computer. I tried ubuntu and win8, the error still with me.
    Thats interesting when I delete the package com.ntv.ndkjni; from java file,  then create class file again with javac then javah can create header file succesfully.
    Please help me.
    *****************************test.java**************************
    package com.ntv.ndkjni;
    public class test {
      static
      System.loadLibrary("hello");
        public static native int toplama(int sayi1,int sayi2);

    javah takes a fully qualified class name so in your case that would be
    com.ntv.ndkjni.test
    As with all things related to java the class path is used to resolve the class based on the fully qualified name.  The name resolves STARTING at the path and then attempts to find the class BELOW the classpath by resolving the name.
    Because of that your class path should be the following
    C:\ndkJNI\src

Maybe you are looking for

  • Upgrading Windows CS4 to Mac CS5 - What is needed?

    I  called Adobe Cust Supt, and I wanted to verify on here what I think I heard from the customer service.  It was overseas and I could barely understand a word she was saying. Our company is moving from Windows network to Mac.  We purchased CS4 a few

  • Avi files in Quicktime and finder

    My machine (finder & Quicktime Pro 7) no longer recognises any of my avi files. I recently made system updates to Safari(3.1.1) and Quicktime (7.4.5), plus the usual automatic security updates, but I can't say for sure when the problem occurred withi

  • IMac Core Duo Dashboard

    Can we use non-universal widgets on a Intel iMac? Example: Universal: http://www.apple.com/downloads/dashboard/games/ilovelamp.html Non-universal: http://www.apple.com/downloads/dashboard/status/twemcoclock.html

  • Display newline using out.println

    Can anyone tell me how can I put a new line using the out.println? Because I wanna to display the record in the following format which is Username : xxx UserID : xxx Age : xxx so on ..... Actually I wanna to do it in a table form(HTML).... Can anyone

  • WebService invocation - variable @namespace errro

    Hi, I am getting the below error. (Variable @namespace is not defined) I do not know webservices, I am just trying to access a WSDL file from flex. Can you please let me know why Flex shows this error? On which element is it expecting a namespace. Th