解释机器人,帕索,帕索
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机器人。
Cree un客体de cuerpo rígido。
body1 = rigidBody(“界面”);
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óntrvec2tform
Para 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;
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;
Añada el primer cuerpo al árbol。特别的,特别的árbol。La transformada fija definida anormente va de La base (element to primary) al primer cuerpo。
addBody(机器人,界面,“基地”)
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
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
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 al
body4
Para obtener SUS transformaciones。bodyEndEffector = rigidBody(“endeffector”);Tform5 = trvec2tform([0.5, 0,0]);%用户自定义setFixedTransform (bodyEndEffector.Joint tform5);addBody (bodyEndEffector的机器人“body4”);
他是机器人的创造者。Si tiene una configuración determinada, también puede obtener una transformación entre los marcos de dos cuerpo utizando
getTransform
.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。
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”)
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一
addSubtree
Para 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);
Por último, puede usar
showdetails
Para 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也
rigidBodyTree
|inverseKinematics