主要内容

解释机器人,帕索,帕索

Este ejemplo muestra paso el proceso de construcción de un robot, sus不同组件y cómo llamar a las funciones para contrirlo。Se han incluido secciones de código, pero los valores reales de las dimensions and las transformaciones dependations de cada机器人。

  1. Cree un客体de cuerpo rígido。

    body1 = rigidBody(“界面”);

    用椭圆表示的刚体物体

  2. Cree una articulación y asígnela al cuerpo rígido。定义la丙爱德拉posición非正式的德拉articulación,HomePosition.配置la transformada de la articulación al elemento primary utilzando una transformación homogénea,tform.使用la funcióntrvec2tformPara convertir UN vector de traslación en una transformación homogénea。ChildToJointTransform这是一种自我配置。

    jnt1 = rigidBodyJoint(“jnt1”“转动”);jnt1。HomePosition = pi/4;Tform = trvec2tform([0.25, 0.25, 0]);%用户自定义setFixedTransform (jnt1 tform);界面。关节= jnt1;

    刚体对象表示为一个椭圆,带有一个刚体框架和一个箭头,表示刚体框架与前一框架之间的转换

  3. Cree un árbol de cuerpo rígido。Este árbol se inicializa con el marco de coordenadas de la base, al que se acplan cuerpos。

    robot = rigidBodyTree;

    机器人的工作空间和带有刚体对象的基础框架的位置表示为一个椭圆,其中有一个体框架,并有一个箭头表示在工作空间外的体框架与前一框架之间的转换

  4. Añada el primer cuerpo al árbol。特别的,特别的árbol。La transformada fija definida anormente va de La base (element to primary) al primer cuerpo。

    addBody(机器人,界面,“基地”

    将机器人的工作空间和带有刚体对象的基础框架的位置表示为一个椭圆,框架附着在新刚体树的基础上。

  5. Cree un segundo cuerpo。确定和平之路acóplelo和平之路的起点rígido。Defina la transformación respect to al marco del cuerpo front。

    body2 = rigidBody(“body2”);jnt2 = rigidBodyJoint(“jnt2”“转动”);jnt2。HomePosition = pi/6;%用户自定义Tform2 = trvec2tform([1,0,0]);%用户自定义setFixedTransform (jnt2 tform2);body2。Joint = jnt2;addBody (body2的机器人“界面”);将body2添加到body1

    刚体树体与附加体,表示为椭圆,添加到第一体的末端。

  6. Añada más cuerpos。两棵树3棵树4棵树2棵树。

    body3 = rigidBody(“body3”);body4 = rigidBody(“body4”);jnt3 = rigidBodyJoint(“jnt3”“转动”);jnt4 = rigidBodyJoint(“jnt4”“转动”);tform3 = trvec2tform ((0.6, -0.1, 0)) * eul2tform([-π/ 2,0,0]);%用户自定义Tform4 = trvec2tform([1,0,0]);%用户自定义setFixedTransform (jnt3 tform3);setFixedTransform (jnt4 tform4);jnt3。HomePosition = pi/4;%用户自定义body3。关节= jnt3 body4。关节= jnt4 addBody(机器人,body3,“body2”);将body3添加到body2addBody (body4的机器人“body2”);将body4添加到body2

    之前的刚性树体加上另外两个体,两者都附着在第二个体上

  7. Si tiene un efector final de control específico, defínalo como un cuerpo rígido con una articulación fija。En el caso de este机器人,añada unefector final albody4Para obtener SUS transformaciones。

    bodyEndEffector = rigidBody(“endeffector”);Tform5 = trvec2tform([0.5, 0,0]);%用户自定义setFixedTransform (bodyEndEffector.Joint tform5);addBody (bodyEndEffector的机器人“body4”);
  8. 他是机器人的创造者。Si tiene una configuración determinada, también puede obtener una transformación entre los marcos de dos cuerpo utizandogetTransform.Obtenga una transformación desde el effector最终的hasta la基地。

    tform = getTransform(robot,config)“endeffector”“基地”
    config = 1×2 struct数组字段:JointName JointPosition tform = -0.5484 0.8362 00 -0.8362 -0.5484 0000 1.0000 0000 0 1.0000

    完成了从末端执行器到基座的刚体树的转换

    背板

    Esta transformación es específica para las dimensions of indicadas en este ejemplo。机器人的价值variarán en función de las transformaciones que defina。

  9. Puede crear un subárbol一个关于机器人的存在和关于机器人使用的模型的一方子树.特别的名字de cuerpo que se usará como base para el nuevo subárbol。Puede modificar este subárbol añadiendo cuerpos, modificándolos o eliminándolos。

    newArm =子树(机器人,“body2”);removeBody (newArm“body3”);removeBody (newArm“endeffector”

    附加的两体机器人作为子树创建,但独立于另一个机器人

  10. También puede añadir estos subárboles al机器人。El proceso de añadir un subárbol es类似al de añadir un cuerpo。特别古物的名字actúa como base para El acplamiento, y todas las transformaciones del subárbol son son relative al marco de ese cuerpo。Antes de añadir el subárbol, debe asegurarse de que todos los nombres de los cuerpos和las articulaciones son únicos。Cree copias de los cuerpos和las articicaciones, cámbieles el nombre y reemplácelas en el subárbol。Llame一addSubtreePara acoplar el subárbol联合国特别任务。

    newBody1 = copy(getBody(newArm,“body2”));newBody2 = copy(getBody(newArm,“body4”));newBody1。Name =“newBody1”;newBody2。Name =“newBody2”;newBody1。关节= rigidBodyJoint(“newJnt1”“转动”);newBody2。关节= rigidBodyJoint(“newJnt2”“转动”);tformTree = trvec2tform([0.2, 0,0]);%用户自定义setFixedTransform (newBody1.Joint tformTree);replaceBody (newArm“body2”, newBody1);replaceBody (newArm“body4”, newBody2);addSubtree(机器人,“界面”, newArm);

    子刚体树连接到第一刚体树的第一刚体

  11. Por último, puede usarshowdetailsPara examinar el robot que ha constrido。Compruebe que los tipos de articulación sean correctos。

    showdetails(机器人)
    Idx身体名称联合名称联合类型父名(Idx)子名(s) ------------ -------------------- ---------------- ---------------- 1 body1 jnt1转动基础(0)body2(2) newBody1(6) 2 body2 jnt2转动body1(1) body3(3) body4(4) 3 body3 jnt3转动body2(2) 4 body4 jnt4转动body2(2) endeffector(5) 5 endeffector endeffector_jnt固定body4(4) 6 newBody1 newJnt1转动body1(1) newBody2(7) 7 newBody2 newJnt2转动newBody1(6) --------------------

Consulte也

|

特马relacionados