Hallo Rosen, Hallo Openrave community,
I’m working with a Schunk Powerball using the IPA-Ros-Package [1]. First of all: Thank you for providing IKfast, that produces a powerful solver for inverse kinematics. My problem with the powerball-lwa4p-solver: The start-position (all joints equals zero) of the arm returns no solution. So I’d like to know, how I could implement a solution for end-effektor-positions inside the singularity on the z-axis (with px==py==0). I’ve read in the ChangeLog for 0.9, that IkFast can now detect aligned axes and give inifinite solutions; is this related to singularities or other types of kinematic chains? I could not reproduce the behaviour with the Mitsubishi PA10-Example: Recent changes from git produce 8 or even 16 solutions for x=y=0, z=1; but don’t give infinite solutions there (free joints = 0). What are your development plans in this direction? Thank you Joachim [1] https://github.com/ipa320/schunk_robots |
Administrator
|
Dear Joachim, have you tried ikfast v67 on the most recent openrave master branch? we recently made several improvements that will allow detection of the all 0s singularity.best, 2013/7/31 Joachim <[hidden email]> Hallo Rosen, Hallo Openrave community, ------------------------------------------------------------------------------ Get your SQL database under version control now! Version control is standard for application code, but databases havent caught up. So what steps can you take to put your SQL databases under version control? Why should you start doing it? Read more to find out. http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk _______________________________________________ Openrave-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/openrave-users |
Hallo Rosen,
yes, I'm using the recent v67 (git d2e51ed4). Please find the model of Powerball LWA4p attached: lwa4p.dae The pose for j_i=0 (-> x=y=0, z=1.265) is not found nor are other poses on the z-Axis: From the command-line I get: ./ik_lwa4p_6d 1 0 0 0. 0 1 0 0. 0 0 1 1. Failed to get ik solution but: ./ik_lwa4p_6d 1 0 0 0.001 0 1 0 0. 0 0 1 1. Found 8 ik solutions: sol0 (free=0): 0.000000000000000, 0.840589285418126, 1.872416800557861, [...], sol1 (free=0): 0.000000000000000, 0.840589285418126, 1.872416800557861, [...], sol2 (free=0): 3.141592653589790, 0.845717479307705, 1.872416800557861, [...], sol3 (free=0): 3.141592653589790, 0.845717479307705, 1.872416800557861, [...], sol4 (free=0): 0.000000000000000, -0.845717479307705, -1.872416800557861, -[...], sol5 (free=0): 0.000000000000000, -0.845717479307705, -1.872416800557861, -[...], sol6 (free=0): 3.141592653589790, -0.840589285418126, -1.872416800557861, -[...], sol7 (free=0): 3.141592653589790, -0.840589285418126, -1.872416800557861, -[...], The model was generated using the ros-collada_urdf-Converter with some floating-point values cleaned up afterwards. Do you need additional information? Best Regards Joachim |
Administrator
|
hi Joachim, yup, i see the problem. i'm surprised ikfast didn't catch that divide by zero exception, i'll see what i can do.2013/7/31 Joachim <[hidden email]> Hallo Rosen, ------------------------------------------------------------------------------ Get your SQL database under version control now! Version control is standard for application code, but databases havent caught up. So what steps can you take to put your SQL databases under version control? Why should you start doing it? Read more to find out. http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk _______________________________________________ Openrave-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/openrave-users |
Administrator
|
dear joachim, the new ikfast version is v68we just fixed the atan2 degenerate case handling, thanks for pointing it out! this affected every single robot in some way. rosen, 2013/7/31 Rosen Diankov <[hidden email]>
------------------------------------------------------------------------------ Get your SQL database under version control now! Version control is standard for application code, but databases havent caught up. So what steps can you take to put your SQL databases under version control? Why should you start doing it? Read more to find out. http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk _______________________________________________ Openrave-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/openrave-users |
Hallo Rosen,
trying to re-generate the ikfast solver from current git master does no longer detect singularities for the powerball lwa4p robot. Back in 2013 you've fixed all 0's singularity but in the meantime it stopped working again. z-axis-singularity does not work either (x=y=0). Do you have any hints, how I could debug ikfast.py? git bisect tells me that 10cc36 is the first commit, where all 0's singularity stopped working: ./ik 1 0 0 0.0 0 1 0 0. 0 0 1 1.265 Failed to get ik solution and for tcp on the z-axis (x=y=0): ./ik_2ed350 1 0 0 0.0 0 1 0 0. 0 0 1 1. Failed to get ik solution 2ed350 is the first bad commit. The attached patch fixes the z-axis-problem, but not the fully stretched arm. What's the intention of that else branch? Thank you for your work and best regards Joachim Robot model: <http://openrave-users-list.185357.n3.nabble.com/file/n4026648/lwa4p.dae> diff --git a/python/ikfast.py b/python/ikfast.py index 4f392e4..fe2c9dd 100644 --- a/python/ikfast.py +++ b/python/ikfast.py @@ -6422,8 +6422,6 @@ class IKFastSolver(AutoReloader): NewEquations.append(neweq) else: NewEquations.append(neweq) - else: - NewEquations.append(eq) return NewEquations def SolveAllEquations(self,AllEquations,curvars,othersolvedvars,solsubs,endbranchtree,currentcases=None,unknownvars=None, currentcasesubs=None, canguessvars=True): Output from generated solver with patch applied (same as before 2ed350): ./ik_lwa4p_6d 1 0 0 0.0 0 1 0 0.0 0 0 1 1. Found 16 ik solutions: sol0 (free=0): 0.00000000000, 0.84315528228, 1.87242170584 [...] sol1 (free=0): 0.00000000000, 0.84315528228, 1.87242170584 [...] sol2 (free=0): 1.57079632679, 0.84315528228, 1.87242170584 [...] sol3 (free=0): 1.57079632679, 0.84315528228, 1.87242170584 [...] sol4 (free=0): 3.14159265358, 0.84315528228, 1.87242170584 [...] sol5 (free=0): 3.14159265358, 0.84315528228, 1.87242170584 [...] sol6 (free=0): -1.57079632679, 0.84315528228, 1.872421705844 [...] sol7 (free=0): -1.57079632679, 0.84315528228, 1.872421705844 [...] sol8 (free=0): 0.00000000000, -0.84315543714, -1.87242170584 [...] sol9 (free=0): 0.00000000000, -0.84315543714, -1.87242170584 [...] sol10 (free=0): 1.57079632679, -0.84315543714, -1.8724217058 [...] sol11 (free=0): 1.57079632679, -0.84315543714, -1.8724217058 [...] sol12 (free=0): 3.14159265358, -0.84315543714, -1.8724217058 [...] sol13 (free=0): 3.14159265358, -0.84315543714, -1.8724217058 [...] sol14 (free=0): -1.57079632679, -0.84315543714, -1.872421705 [...] sol15 (free=0): -1.57079632679, -0.84315543714, -1.872421705 [...] |
Administrator
|
Dear Joachim, Thanks for the notice. Actually the old way was not correct. If you notice it only gives you solutions of j0 at 0, pi/2, and -pi/2. When all joint values are zero, then there are three joint axes aligning, which means j0 is a free variable that can be freely chosen and j3 or j5 can compensate for it. In the past we were just setting a random solution and seeing if it checked out, but this was actually causing us to hallucinate wrong solutions in certain mechanisms, so I turned it off.Recent versions of ikfast, especially the most recent committed yesterday, are much more stable and robust to these situations, however I still need to figure out a good way of identifying that all these axes are aligned and that there's a free joint. 2015-07-28 15:39 GMT+09:00 Joachim <[hidden email]>: Hallo Rosen, ------------------------------------------------------------------------------ _______________________________________________ Openrave-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/openrave-users |
Free forum by Nabble | Edit this page |