필터 지우기
필터 지우기

Measuring internal forces in a rigidBodyTree

조회 수: 1 (최근 30일)
Robert Pastor
Robert Pastor 2021년 4월 29일
댓글: Yiping Liu 2021년 5월 11일
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.

답변 (1개)

Yiping Liu
Yiping Liu 2021년 5월 10일
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
Robert Pastor
Robert Pastor 2021년 5월 11일
Yes I would like to get the 6 DoF wrench as an output.
I'm using the inverse dynamics in a fitness function of a genetic algorithm. The purpose is to optimise a manipulator for a specific task. This includes automatically assigning a suitable cross section of a manipulator link. To check if a link is suitable I need to know what forces and torques it is experiencing.
I could do it the hard way and implement recursive Nextow-Euler myself, but I had a feeling that the 6 DoF wrench has to be already implemented in the inverseDynamics function so I thought if might be able to use that.
Yiping Liu
Yiping Liu 2021년 5월 11일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Robotics에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by