-
Notifications
You must be signed in to change notification settings - Fork 38
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
Implement GlobalCoPEvaluator in contact Component #745
Conversation
008144a
to
0b1d308
Compare
Nitpick: the definition of the ZMP is slightly different, as it considers the acceleration of the CoM for example: see Eq. 21 of [1]. I think it would be more appropriate to use the CoP notation instead. The code of bipedal-locomotion-framework/src/Contacts/src/Contact.cpp Lines 45 to 47 in f7d9443
[1]: Forces acting on a biped robot. Center of pressure-zero moment point |
After discussing with @S-Dafarra we decided to use the term XoP instead of ZMP. Still, one thing should be decided. Is |
Maybe one thing to consider is to specify somewhere that by "global" we mean a weighted average, which may not follow the definition of "CoP" |
Yes I'm going to explain this in the class documentation |
f7d9443
to
9f19dac
Compare
9f19dac
to
843df15
Compare
7d87719
to
6156fee
Compare
Hi @S-Dafarra, I renamed the method from ZMP to CoP, let me know what you think :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor comments
src/Contacts/include/BipedalLocomotion/Contacts/GlobalCoPEvaluator.h
Outdated
Show resolved
Hide resolved
* Following P. Sardain and G. Bessonnet, "Forces acting on a biped robot. Center of | ||
* pressure-zero moment point," in IEEE Transactions on Systems, Man, and Cybernetics, | ||
* we defined the global CoP as the weighted average of the CoP of each contact, with the weight | ||
* determined by the normal force of the contact. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you point to the formula used? I could not found the proposed formula in the paper.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @traversaro it should be the following equation.
Still I can add the equation in the documentation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But that is not the " weighted average of the CoP of each contact", right? This is the COP of the sum of the contact forces, and it can be proven that the two definitions are the same, with the assumptions that all the contacts occur in the same plane. So (nitpick) I would write "Consistently with", not "Following".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here I wrote the math 881e92d
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor comments.
Co-authored-by: Silvio Traversaro <silvio.traversaro@iit.it>
Co-authored-by: Stefano Dafarra <stefano.dafarra@gmail.com>
52b32e2
to
532bf1d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A small comment on the doc. Feel free to proceed
src/Contacts/include/BipedalLocomotion/Contacts/GlobalCoPEvaluator.h
Outdated
Show resolved
Hide resolved
…ator.h Co-authored-by: Stefano Dafarra <stefano.dafarra@gmail.com>
There was an uninitialized variable in |
This PR implements the
GlobalZMPEvaluator
class that can be used to compute the local and global ZMP given a set of contacts.The class implements the same checks already in place in the walking-controller class. Such as:
I implemented also the associated python bindings