1、DH参数定义了机器人的几何形状,与每个刚体如何连接到其父体有关。为了方便,在矩阵中设置Puma560机器人的参数。Puma机器人是一个串行链操作器。DH参数相对于矩阵中之前的直线,对应于之前的关节附着。命令行键入:dhparams = [0 pi/2 0 0;0.4318 0 0 00.0203 -pi/2 0.15005 0;0 pi/2 0.4318 0;0 -pi/2 0 0;0 0 0 0];
2、创建一个刚体树对象来构建机器人。命令行键入:robot = robotics.RigidBodyTree;
3、创建第一个刚体并将其添加到机器人中。加入刚体创建一个RigidBody对象并给它一个唯一的名称。命令行键入:body1 = robotics.RigidBody('body1');
4、创建一个联合对象并给它一个唯一的名称。命令行键入:jnt1 = robotics.Joint('jnt1','revolute');
5、使用setFixedTransform指定使用DHparameters的从主体到主体的转换。DH参数的最后一个元素,被忽略了,因为这个角度依赖于关节的位置。命令行键入:setFixedTransform(jnt1,dhparams(1,:),'dh');
6、命令行键入:addBody(robot,body1,'base')
7、创建并添加其他刚体到机器人。指定发送addBody以附加它的前一个主体名称。每个固定变换相对于前一个关节坐标系。命令行键入:body2 = robotics.RigidBody('body2');jnt2 = robotics.Joint('jnt2','revolute');body3 = robotics.RigidBody('body3');jnt3 = robotics.Joint('jnt3','revolute');body4 = robotics.RigidBody('body4');jnt4 = robotics.Joint('jnt4','revolute');body5 = robotics.RigidBody('body5');jnt5 = robotics.Joint('jnt5','revolute');body6 = robotics.RigidBody('body6');jnt6 = robotics.Joint('jnt6','revolute');setFixedTransform(jnt2,dhparams(2,:),'dh');setFixedTransform(jnt3,dhparams(3,:),'dh');setFixedTransform(jnt4,dhparams(4,:),'dh');setFixedTransform(jnt5,dhparams(5,:),'dh');setFixedTransform(jnt6,dhparams(6,:),'dh');body2.Joint = jnt2;body3.Joint = jnt3;body4.Joint = jnt4;body5.Joint = jnt5;body6.Joint = jnt6;addBody(robot,body2,'body1')addBody(robot,body3,'body2')addBody(robot,body4,'body3')addBody(robot,body5,'body4')addBody(robot,body6,'body5')
8、使用showdetails或show函数验证您的机器人是否正确构建。showdetails列出MATLAB命令窗口中的所有主体。show显示带有给定配置(默认为home)的therobot。调用axis修改axis限制并隐藏axis标签。命令行键入:showdetails(robot)
9、命令行键入:show(robot);axis([-0.5,0.5,-0.5,0.5,-0.5,0.5])axis off