-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DH Chain class update #53
Conversation
I was trying to figure out a good way to make the DHChain object play nicely with the Ceres AutoDiffCostFunction pattern and unfortunately it's quite challenging, so partly as an exercise for myself I'm going to write out what I've been thinking. When I write Ceres optimizations they have a few key parts. I'll use a circle fit optimization as an example since I have the code handy:
Assuming we follow a similar pattern, I think this has several implications for the design of the
|
@schornakj here is the branch with my WIP attempt at a DH-chain-based kinematic calibration cost function for reference |
Notes on the class design updates:
Comments
I'm thinking about using Eigen vectors instead because they provide more convenient casting functions to allow interaction with non-template Eigen types (i.e. doing transform math, etc.)
Correct, each cost function instance will need to own a few things:
These changes also add an overload to the
Correct. I'm planning on making these
Not necessarily. We can use the |
Based on our offline conversations I think we're in agreement about how the optimization should work.
Forgot about the existence of this, sorry! That's a good solution to this particular problem. |
Closing, as this is replaced by #60 |
This PR contains updates to the DH chain class for better integration into Ceres cost functions. The major proposed changes are:
createTransform
function of theDHTransform
classgetFK
function of theDHChain
classcreateTransform
function that allows the user to pass in a pointer of DH parameter offsets for each DH transformgetFK
function that allows the user to pass in an array of DH parameter offsets for the entire chainGaussianNoiseDHTransform
class because inheritance is not possible with template virtual functions. Instead a "noisy" transform can be created by passing in some DH parameter offsets to theDHTransform
class