From: Dmitry B. <dbe...@cs...> - 2012-08-27 19:12:25
|
Hi Rob, That's a good question. CBiRRT actually uses GeneralIK for at least two purposes: 1. For TSR Chain IK computation (you don't need to worry about this) 2. For computation of projections to the constraint manifold. GeneralIK does the projection using whatever joints you have set as active on the robot. The above require GeneralIK, so it is more or less unchangeable there. Thus GeneralIK is always initialized whenever you run CBiRRT. There is a third purpose where you could use either GeneralIK or an attached IK solver (like those generated by IK fast): 3. For TSR Chains which represent goal regions. In this case, we need an IK solver to sample possible goals (or starts, if you have that enabled). GeneralIK is actually not a good solution for this b/c goals are usually distant from the start and I recommend using the ikfast solvers (this is what I do on HERB). GeneralIK is a last resort here, and will only be used if there is no attached IK solver. If you have specified a goal TSR Chain and you're seeing "Attached Solver Found %d Solutions!", then it is using the attached IK solver for that manipulator to generate goals. If you're not seeing that, it is defaulting to GeneralIK. As for the lines you mentioned, that is actually a solver I keep around in the problem instance (used in DoGeneralIK) in case I need it, it's not used in the planner. I hope this clears things up! Dmitry On Sat, Aug 25, 2012 at 10:33 PM, Robert Ellenberg <rwe...@gm...> wrote: > Hi All, > I've recently been able to create ikfast closed-form solvers for my robot > model (openHubo), but I'm not sure how to specify that they should be used > in a CBiRRT problem. I didn't see specific options in the "RunCBiRRT" > command other than bikfastsinglesolution, which only seems to control when > collision checking occurs. I have successfully loaded the ikfast solver for > each of the limbs in OpenRAVE, but when I run a CBiRRT probloem, the debug > output still shows that a GeneralIK solver is loaded. This is consistent > with line 106 of cbirrtproblem.cpp: > > _pIkSolver = RaveCreateIkSolver(GetEnv(),"GeneralIK"); > _pIkSolver->Init(robot->GetActiveManipulator()); > RAVELOG_INFO("IKsolver initialized\n"); > > It looks like GeneralIK is always loaded, just in case it's needed during > the problem. > > Is there a way to ensure the problem is using ikfast solvers instead of > GeneralIK? > > Thanks! > > -- > Robert Ellenberg, PhD Candidate > Drexel University > 3141 Chestnut St. > 2-115 MEM Office > Philadelphia, PA 19104 > 215-895-6125 (office) > 215-285-3551 (cell) > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > comps-users mailing list > com...@li... > https://lists.sourceforge.net/lists/listinfo/comps-users > |