Skip to content
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

Use mpGetFBPulsePosEx instead of mpGetFBPulsePos #199

Open
ted-miller opened this issue Dec 19, 2023 · 4 comments
Open

Use mpGetFBPulsePosEx instead of mpGetFBPulsePos #199

ted-miller opened this issue Dec 19, 2023 · 4 comments
Labels
enhancement New feature or request rv:0.1.2 Reported in MotoROS2 0.1.2
Milestone

Comments

@ted-miller
Copy link
Collaborator

mpGetFBPulsePos returns raw feedback position of the encoders. This can be different than logical position of the joint. This is due to things such as cross-axis couplings or gravity-compensation.

We already implement compensation for the cross-axis thing. And I'm told that gravity-compensation is a very specialized feature that's only available on one or two arms.

Now I'm hearing that there is a new feature on the next-gen controller that could also be affected by this.

The simple fix is to use mpGetFBPulsePosEx, which should apply any required corrections to the output.

@ted-miller ted-miller added enhancement New feature or request rv:0.1.2 Reported in MotoROS2 0.1.2 labels Dec 19, 2023
@ted-miller ted-miller added this to the 0.2.0 milestone Dec 19, 2023
@gavanderhoorn
Copy link
Collaborator

gavanderhoorn commented Dec 20, 2023

So would that allow us to remove the code we currently have for things like that cross-axis coupling you link to?

Is there also an mpGetServoSpeedEx(..)?

@ted-miller
Copy link
Collaborator Author

ted-miller commented Jan 30, 2024

So would that allow us to remove the code we currently have for things like that cross-axis coupling you link to?

Yes, we could remove that chunk of code.

Is there also an mpGetServoSpeedEx(..)?

Not that I'm aware of.


I'm seeing some contradictory information on mpGetFBPulsePosEx regarding the absolute accuracy feature of the next-gen controller. I don't yet have the ability to test myself.

One report:

It looks that the axes correction is applied just after calling mpGetFBPulsePos(), but if other correcting features are enabled, the differences will be appered. For example, gravitiy compensation (this is for special customer) or absolute accuracy (this is only YNX1000 currently).
I suggest to use mpGetFBPulsePosEx() instead of mpGetFBPulsePos(), [..]

Another:

(apologies for the screenshot)

image

@gavanderhoorn
Copy link
Collaborator

Hm. So in any case this reads as-if we'd have to introduce another batch of controller-specific #ifdefs. Correct?

@ted-miller
Copy link
Collaborator Author

Yeah, sounds that way

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request rv:0.1.2 Reported in MotoROS2 0.1.2
Projects
None yet
Development

No branches or pull requests

2 participants