Measuring internal forces in a rigidBodyTree
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I'm trying to get internal forces in a rigidBodyTree.
Suppose that I have simple robot with one joint, which I can generate with this code:
robot = rigidBodyTree('DataFormat', 'row');
robot.Gravity = [0 0 9.81];
body1 = rigidBody('body1');
body1.Mass = 1;
jnt1 = rigidBodyJoint('jnt1','revolute');
setFixedTransform(jnt1,[1 0 0 0],'dh');
body1.Joint = jnt1;
addBody(robot,body1,'base');
show(robot);
This robot has a joint with an axis pointing in the Z direction. And when I run inverseDynamics(robot) the resulting joint torque required to hold the weight of the body is 0, as expected because the axis of the joint point in the same direction as gravity.
But, the torque is still there, it would still need to be held by bearings for example. Is there a way to get the internal forces and torques? It seems to me that they are being calculated in order to get the requred joint torques in the inverseDynamics function. I just can't find a way to get them out.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/601410/image.png)
0 comentarios
Respuestas (1)
Yiping Liu
el 10 de Mayo de 2021
By "internal force", I think you mean the constrained forces experienced by the joints. The recursive Newton-Euler algorithm does compute the 6 DoF wrench for each joint, but only the one that corresponds to the moving motion subspace is output.
What is your use case here? Typically you won't need those.
2 comentarios
Yiping Liu
el 11 de Mayo de 2021
This requires some change to existing code. Please reach out to MathWorks Tech Support (mentioning this post) and we can provide you a fix based on the version of MATLAB you have.
Ver también
Categorías
Más información sobre Robotics en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!