Scale problem when importing an .stl file with addVisual for adding a mesh corresponding to a rigidBody
12 次查看(过去 30 天)
显示 更早的评论
kin = loadrobot('kinovaJacoJ2S6S300');
removeBody(kin,'j2s6s300_link_finger_1');
removeBody(kin,'j2s6s300_link_finger_2');
removeBody(kin,'j2s6s300_link_finger_3');
dhparams = [0 pi/2 0.290 0];
bodyTest= rigidBody('bodyTest');
jointTest= rigidBodyJoint('jointTest','revolute');
setFixedTransform(jointTest,dhparams(1,:),'dh');
bodyTest.Joint=jointTest;
addVisual(bodyTest,"Mesh",'arm.stl');
addBody(kin,bodyTest,'j2s6s300_end_effector');
show(kin)
I imported a robot from an existing library, removed some bodies and then I added a new rigidBody (bodyTest) to the rigidBodyTree (kin), all of this worked fine. But I also want to add a visual for this bodyTest in the form of arm.stl. The addVisual function works but there's a units problem, Matlab reads the [mm] values of the stl file as [m] values.
I looked at multiple topics on this problem but none of them offered a real answer for me. I can't use another stl file reader besides addVisual as it is the only function (I think) that specifies the stl file as being the geometrical representation of a rigidBody object.
Thanks in advance.
1 个评论
Christopher Bitikofer
2022-11-22
Just an fyi you can scale stl meshes using the transform argument in the add visual command. It's a bit sneaky since you need to recall that you can use matricies to rotate, translate and scale.
tForm = [eye(3).*0.001,[0 0 0]';[0 0 0 1]]; % scale units of stl from mm to m
addVisual(rb1,"Mesh","mymesh.STL",tForm)
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Manipulator Modeling 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!