第23天Microsoft_Robotics_Developer_Studio中文教程-- 操控虚拟Kuka LBR3 机器人手臂

  • 格式:pdf
  • 大小:316.08 KB
  • 文档页数:7

[Robotics Studio] 操控虚拟Kuka LBR3 机器人手臂-- Day23 2009/1/10 21:39 | 阅读数: 4294 | 我要推荐 | One Comment | 订阅玩完车子, 换玩机器人手臂吧.
照例用简单的VPL , 使用GenericArticulatedArm 以及SimpleDashboard 两个service 就可以玩:
在GenericArticulatedArm 当中我们可以选用manifest -
KUKA.LBR3.simulation.Manifest.xml :
就可以开始啦:
Dashboard 的使用方法跟操控机器车子很像, 先点选Remote Node 里面的Connect, 再点选Articulated Arm 里面的Connect:
你会看到一堆Joint
Joint在医学上就是骨头的关节...当然也可以翻译成为缝合点,接合点... 在此就是机器手臂可以旋转的关节点.
Joint在XNA当中可以如下旋转(来自官方说明文件):
换句话说, Local Axis 旋转的, 称之为TwistMode (Roll) , Normal Axis 的叫做SwingMode1 , Binormal Axis 称之为SwingMode2.
在KUKA LBR3 当中, 每个Joint 都只有开放TwistMode (unlock) , 所以只能绕着Local axis 旋转.
由下(基座) 一直到最上面(手臂尾端) 分别为Joint0 ~ Joint 6
想要推倒骨牌,很简单,将Joint0设定为120 (先双击Joint0 ,然后输入angle : 120 ,再点选Apply Changes)
然后把Joint1设为280 ,你就会看到下面的画面啰:
那要怎么写VPL 来控制刚刚的动作?
先将120 (注意type是double) ,然后丢给MathFunctions计算Radians (因为GenericArticulatedArm只吃这种,型态还要float!)
所以再转成float ,丢给GenericArticulatedArm的SetJointTargetPose (JointName = "Joint0"),同时在资料产生时设定Timer (我设定为1000 ms)
之后timer 的TimerComplete 发生通知时, 改丢280 的Radian 给GenericArticulatedArm 的SetJointTargetPose (JointName = "Joint1").
而SetJointTargetPose 的其他参数设定如下:
主要是设定TargetOrientation以及JointName,注意TargetOrientation的Axis只能是x = 1, y = 0, z = 0,
因为KAKU LBR3的每个Joint只有TwistMode可以旋转,所以只能x有值(当然是1,如果你设定其他值, Angle就不是这样计算了)。