线程评级:
旋转刀具轨迹,同时保持刀具方向
# 1
你好,

我试图重用我的一些python代码,这样做有麻烦。图片上的深灰色区域显示了我想要遵循的工具路径的一部分。我的意图是对四组中的一组进行编程,将我的参考系在中心旋转90°,并做相同的运动。不幸的是,在这种情况下,工具方向也会发生变化。是否有一种方法可以重复使用移动模式,同时保持工具方向相同?

谢谢你的帮助!

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

机器人.setPoseFrame (MiddleOfSubstrate.Pose () *rotz90*π/180))
机器人.MoveL (StartDeposition
机器人.MoveL (StartDeposition*transl0100年0))



附加文件 缩略图(s)

# 2
嗨Marwin,

也许有更清洁的方法,但这是可行的:

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

Rz = robomath.rotz(robomath.pi/2) #绕z轴旋转矩阵,90度。
target_2 = RDK.AddTarget('YourTarget_2') #添加一个新目标
#设置target_2的姿态,使其位置等于target_1旋转Rz的位置
# 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
导入robomath #机器人工具箱

RDK = robolink.Robolink()

机器人= RDK。Item('R1', robolink.ITEM_TYPE_ROBOT) #获取机器人
T1 = rdk。Item('T1', robolink.ITEM_TYPE_TARGET) #获取目标
T2 = rdk。Item('T2', robolink.ITEM_TYPE_TARGET) #获取目标
T3 = rdk。Item('T3', robolink.ITEM_TYPE_TARGET) #获取目标
T4 = rdk。Item('T4', robolink.ITEM_TYPE_TARGET) #获取目标
T5 = rdk。Item('T5', robolink.ITEM_TYPE_TARGET) #获取目标

Path1 = [T1.Pose(),T2.Pose(),T3.Pose(),T4.Pose(),T5.Pose()] #形成路径的原始姿态序列


def myMoveLPath(Path): #沿着路径中的姿态线性移动机器人:
对于路径中的每个姿态:
robot.MoveL(Pose) #线性移动姿势

def myRotSameOrient(PoseIn,R): #通过旋转矩阵'R'旋转pose 'PoseIn',同时保持其方向:
PoseOut = robomath.transl(R*PoseIn.Pos()) * PoseIn.rotationPose()
返回PoseOut


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

Path2 =[] #新建路径
对于路径中的每个姿态:
添加一个旋转但方向相同的姿态

Path3 =[] #新建路径
对于路径中的每个姿态:
添加一个旋转但方向相同的姿态

Path4 =[] #新建路径
对于路径中的每个姿态:
append(myRotSameOrient(Pose,Rz)) #添加一个旋转但方向相同的姿态


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

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




浏览此线程的用户:
1客人(年代)