Closed sniyaz closed 2 years ago
Merging #616 (d545d95) into master (72cc227) will not change coverage. The diff coverage is
n/a
.:exclamation: Current head d545d95 differs from pull request most recent head ea44573. Consider uploading reports for the commit ea44573 to get more accurate results
@@ Coverage Diff @@
## master #616 +/- ##
=======================================
Coverage 76.13% 76.13%
=======================================
Files 206 206
Lines 7231 7231
=======================================
Hits 5505 5505
Misses 1726 1726
In terms of the questions, here are my two cents:
robot
folder, but I see that you have a commit where you specifically undid that. What made you do that? Understanding the factors you considered there could help us decide where to put this code.GradientDescentIK
, IKFast
, and whatever the other default names are for IK solvers.RobotInverseKinematics
? But afaik IK is only for robots... Perhaps InverseKinematicsSolver
? (DART has an InverseKinematics
class, and then has Solver
classes and subclasses (e.g., GradientDescentSolver
), but does not have an InverseKinematicsSolver
. But then again, the fact that both InverseKinematics
and Solver
are classes within DART could also be confusing.)@amalnanavati Responded to your nits, also some thoughts:
Whoops, this shouldn't be WIP anymore huh?
Also I remember that @brianhou said he'd like an example of what an IkFast solver would look like with this API, so I included a first cut of that as well!
Or well looks like CI failed, so we should fix that first. I'm happy to re-review then.
Background: We want to start bringing new IK solvers (like
ikFast
) into our stack. Ideally eachRobot
object would have some associated IK object that we can swap out easily. The key issue right now is that the DART IK solver API is a little confusing and doesn't handle analytic solvers that well (it assumes that everything is a gradient-based solver).Proposed Solution: Make an AIKIDO-specific IK solver class that we use in place of the DART one. This PR takes a first stab at this, and demonstrates how to make an optimization-based solver. This really just hides a lot of the complexity of the DART solver, and is a lot easier to work with.
Remaining Issues: This is a draft PR, and there's a lot to sort out. In no particular order:
What should the RV of IK be? Right now I'm just using
Eigen::VectorXd
because I don't think we should use allocated states, but this kind of clashes with the rest of AIKIDO.Where should this be? Right now it's just alongside the other Robot stuff.
Naming conventions for sub-classes. Also, calling the base class
InverseKinematics
is a bit confusing since that's what DART does as well.Before creating a pull request
make format
Before merging a pull request
CHANGELOG.md