线程评级:
  • 0 (s) - 0平均投票
  • 1
  • 2
  • 3
  • 4
  • 5
旋转工具路径同时保持工具取向
# 1
你好,

我想重用我的一些python代码,这样做有困难。画展上的暗灰色地带的工具路径的一部分我想效仿。我的意图是程序的一个四组,把参考系中心90°和做同样的动作。不幸的是,在这种情况下,工具取向变化。有办法重用运动模式同时保持工具取向相同的?

谢谢你的帮助!

我的尝试:
机器人.setPoseFrame (MiddleOfSubstrate)
机器人.MoveL (StartDeposition)
机器人.MoveL (StartDeposition*transl(0,100年0))

机器人.setPoseFrame (MiddleOfSubstrate.Pose () *rotz(90年*π/180年))
机器人.MoveL (StartDeposition)
机器人.MoveL (StartDeposition*transl(0,100年0))



附加文件 缩略图(s)

# 2
嗨Marwin,

会有清洁的方式,但是这种工作原理:

代码:
机器人= RDK。(“YourRobot”, robolink.ITEM_TYPE_ROBOT)项
target_1 = RDK。(“目标”,robolink.ITEM_TYPE_TARGET)项
robot.MoveL(目标)#移动到目标

Rz = robomath.rotz (robomath.pi / 2) #关于z轴的旋转矩阵,90度。
target_2 = RDK.AddTarget (YourTarget_2) #添加一个新的目标
#设置target_2的姿势,这样它的位置与由Rz target_1旋转
# w.r.t.参照系的起源,同时保持相同的取向target_1:
target_2。setPose (robomath。transl((Rz*target_1.Pose()).Pos() ) * target_1.Pose().rotationPose() )
robot.MoveL (target_2) # target_2。
你可以扩展为多个目标,多个旋转。

最好的问候,

Maarten
# 3
是这样的:

代码:
从robodk进口robolink # robodk API
从robodk进口robomath #机器人工具箱

RDK = robolink.Robolink ()

机器人= RDK。项目(R1, robolink.ITEM_TYPE_ROBOT) #机器人
T1 = RDK。项目(T1, robolink.ITEM_TYPE_TARGET) #获得目标
T2 = RDK。项目(T2, robolink.ITEM_TYPE_TARGET) #获得目标
T3 = RDK。项目(T3, robolink.ITEM_TYPE_TARGET) #获得目标
T4 = RDK。项目(T4, robolink.ITEM_TYPE_TARGET) #获得目标
T5 = RDK。项目(T5, robolink.ITEM_TYPE_TARGET) #获得目标

Path1 = [T1.Pose (), T2.Pose (), T3.Pose (), T4.Pose (), T5.Pose()] #原始序列对形成一个路径


def myMoveLPath(路径):#移动机器人沿着构成线性路径:
构成的路径:#为每个构成的路径:
robot.MoveL(姿势)#移动线性造成的

def myRotSameOrient (PoseIn, R): #旋转由旋转矩阵构成“PoseIn”“R”,同时保持其取向:
PoseOut = robomath.transl (R * PoseIn.Pos ()) * PoseIn.rotationPose ()
返回PoseOut


Rz = robomath.rotz (robomath.pi / 2) #关于z轴的旋转矩阵,90度。

Path2 =[] #新路径
的姿势Path1: #每个姿势在路径:
Path2.append (myRotSameOrient(姿势,Rz) #添加一个姿势相同但方向旋转

Path3 =[] #新路径
的姿势Path2: #每个姿势在路径:
Path3.append (myRotSameOrient(姿势,Rz) #添加一个姿势相同但方向旋转

Path4 =[] #新路径
的姿势Path3: #每个姿势在路径:
Path4.append (myRotSameOrient(姿势,Rz) #添加一个姿势相同但方向旋转


robot.MoveJ (Path1[0]) #联合行动开始的第一个路径
myMoveLPath (Path1) #线性沿着路径移动
robot.MoveJ (Path2[0]) #联合移动到下一个路径的开始
myMoveLPath (Path2) #线性沿着路径移动
robot.MoveJ (Path3[0]) #联合移动到下一个路径的开始
myMoveLPath (Path3) #线性沿着路径移动
robot.MoveJ (Path4[0]) #联合移动到下一个路径的开始
myMoveLPath (Path4) #线性沿着路径移动
robot.MoveJ (Path1[0]) #联合回到第一路径的开始

Maarten
# 4
太好了,非常感谢!:-)




用户浏览这个线程:
1客人(年代)

Baidu
map