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

Force sensing / weight measurements #14

Open
JamesNewton opened this issue Jul 28, 2018 · 2 comments
Open

Force sensing / weight measurements #14

JamesNewton opened this issue Jul 28, 2018 · 2 comments
Labels
enhancement New feature or request
Milestone

Comments

@JamesNewton
Copy link
Collaborator

JamesNewton commented Jul 28, 2018

If we have a very accurate sense of the center of mass of each link between joints #15 , and know the exact position of each joint #12 then we can compute the force due to gravity that the arm should be subjected to. Given this information, if we can sense torque on each joint #13 , then we can measure any additional weight or force being applied.

@JamesNewton JamesNewton added the enhancement New feature or request label Jul 28, 2018
@JamesNewton JamesNewton added this to the NASA milestone Jul 28, 2018
@JamesWigglesworth
Copy link
Collaborator

This example shows a method of measuring torques and forces with Dexter from DDE
There is error of about a factor of 10 in force sensing measurements done with move_until_force.
The method used to calculate force in move_until_force makes some approximations and assumptions that may be causing this error:

-An external force calculation requires external torques.
As of now Dexter's joints can only measure total torque which will include the contribution of robot's own weight and accelerations.
We can make an approximation by "zeroing out" the torques while it's unloaded and before it starts moving.
This is an approximation because when the robot moves each joint's center of mass will move and contribute to the torque.
(This is why you will see non-zero and changing values before it touches anything)
We have just completed characterizing each links center of mass so this addition may be coming soon.

-The force calculation assumes a point force applied at the end-effector point.
If there are multiple points of contact then a torque may be applied at the end-effector and the math will not hold true.
If the point of contact is in a different position from where the link lengths describe, then the moment arms will be inaccurate.
The angle of the applied force is very sensitive to moment arm inaccuracies

-The external force is assumed to be along the direction of movement.
The force_threshold is only a measurement of external forces acting along 'force_vector'.
When 'force_vector' is left as undefined it defaults to the opposite direction of the 'motion_direction'.
i.e. if you move downward it will only look at the upward forces.
If the actual applied force is not in the direction of the 'force_vector' then only a component of it will be used in the comparison.
This means that 'force_threshold' will not match the actual applied force magnitude if it is at an angle.
This will be the case if the movement_direction is not perpendicular to the surface it is hitting.

-The static calculations assume a rigid non-moving body.
Deflections about a joint's axis are accounted for but if a link is bending or deflecting out of plane the math will be off.
If the joint hasn't settled in its movement yet or joint has stopped moving but the motor hasn't there will be error.

-The torque measurement assumes that the torque calibration done at one angle holds true for all angles.
I suspect that because we calibrate the encoder joint angle while under the effects of gravity, the difference between motor angle and encoder angle may already have some torque information biasing it.
This is mostly an unknown just due to a lack of testing time.

See the issue on torque sensing

@JamesNewton
Copy link
Collaborator Author

Kamino cloned this issue to HaddingtonDynamics/OCADO

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

No branches or pull requests

2 participants