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

Rotational error added to pd controller #142

Merged
merged 6 commits into from
Sep 28, 2021
Merged

Rotational error added to pd controller #142

merged 6 commits into from
Sep 28, 2021

Conversation

dinies
Copy link
Contributor

@dinies dinies commented Sep 24, 2021

enhanced pd_controller on error computation of angular quantities when it is dealing with revolute joints.

Copy link
Member

@costashatz costashatz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job. Thanks for the PR. See my inline comments.

src/robot_dart/control/pd_control.cpp Show resolved Hide resolved
src/robot_dart/control/pd_control.cpp Show resolved Hide resolved
src/robot_dart/control/pd_control.cpp Outdated Show resolved Hide resolved
src/robot_dart/control/pd_control.cpp Outdated Show resolved Hide resolved
src/robot_dart/control/pd_control.hpp Outdated Show resolved Hide resolved
src/robot_dart/control/pd_control.hpp Outdated Show resolved Hide resolved
@costashatz costashatz added this to the RobotDART 1.0.0 milestone Sep 24, 2021
… func to cpp, cleaned import in hpp, changed name of func
@costashatz
Copy link
Member

@dinies can you check if the new code is working for you? I did a few tests and it seems OK for me. Once you confirm, I will merge.. Thanks!

@dinies
Copy link
Contributor Author

dinies commented Sep 28, 2021

It works in my use case, but I only use the controller with prismatic and revolute joints so I could not say anything about the other joint controls (ballJoint, eulerJoint, freeJoint).

Speculation : Is it possible that when we are using the FreeJoint or BallJoint type (since val is of dimension six or three as opposed to a scalar value) to populate the error vector then we could incur dimensionality problems when the error is flattened (.array()) and multiplied and added to _Kd and _Kd*dq ?
Or everything has already been thought to be consistent with the dimensions of the 'generalized dof dimension'.

@costashatz
Copy link
Member

Or everything has already been thought to be consistent with the dimensions of the 'generalized dof dimension'.

It does not have to do with the generalized dof dimension, but with the fact that in control we can define which dimensions to control and in arbitrary order. So this means that someone can choose to re-orient the degrees of freedom of the FreeJoint or to control only one of them.

It works in my use case, but I only use the controller with prismatic and revolute joints so I could not say anything about the other joint controls (ballJoint, eulerJoint, freeJoint).

This is enough for now.. Thanks..

@costashatz
Copy link
Member

Merging... Thanks a lot @dinies!

@costashatz costashatz merged commit 1c56cb1 into master Sep 28, 2021
@costashatz costashatz deleted the pd_ctrl_angular branch September 28, 2021 10:02
costashatz added a commit that referenced this pull request Dec 8, 2021
Rotational error added to pd controller
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants