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

Physics Hand PD Control #1

Open
3 of 4 tasks
SparkMint opened this issue Dec 12, 2024 · 1 comment
Open
3 of 4 tasks

Physics Hand PD Control #1

SparkMint opened this issue Dec 12, 2024 · 1 comment

Comments

@SparkMint
Copy link

SparkMint commented Dec 12, 2024

PD Controllers

Useful Resources:
https://deltamotion.com/support/webhelp/rmctools/Controller_Features/Control_Modes/Velocity_PID.htm
https://digitalopus.ca/site/pd-controllers/

PID Controllers are a closed loop system that outputs a stable control signal using an input signal. They are used widely in robotics and they are useful in many other applications. VR Physics Dev is one of those applications that benefit from them! Here is a simple explanation of what each part of PID means:

Proportional Gain - Outputs a signal proportional to the input signal.

Integral Gain - Outputs a signal that changes over time to account for the cumulating error from the proportional value.

Derivative Gain - Outputs a signal that tries to minimise any overshooting caused by the P and I values. Dampening!

We are excluding the Integral for the physics hand, as integral gain isnt required when calculating target velocities.

TODO

  • Create a generic PD scalar class. This is a 1 dimensional PD controller, and will act as the base of all PD controllers.

  • Create a Vector3 PD Controller Class. This should use 3 PD scalars to calculate and output the value we want.

  • Create a Quaternion PD Controller Class. This is a little more involved compared to the vector3 variant.

  • Connect the outputs of the Vector3 and Quaternion PD controllers to the targetVelocity and targetAngularVelocities of the configurable joint in the PhysicsHand class.

@SparkMint
Copy link
Author

SparkMint commented Dec 13, 2024

Position PD has been added on the SM_BIMOS fork and the BIMOS rig's strength has been reduced to account for the extra strength provided from it. SparkMint@7dc05d9

Working on Quaternion PD.

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

No branches or pull requests

1 participant