线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
如何使用命令MoveL_Test
# 1
我想知道两个目标之间的线性移动是否可能。为此,我创建了一个函数,在其中使用命令moveL_Test和SolveFK。不幸的是,在机器人执行的所有L运动中,结果是-2,但机器人可以执行L运动。

请您检查一下我的功能,并告诉我需要修改的地方。

PHP代码:
def move_L_test(target_pallet_i):
TCP_ITEM=RDK.项(“TCP“,ITEM_TYPE_TOOL)

pose_1
=CalculatePoseFrame2Object(frame_robot,TCP_ITEM)
ti_1=RDK.AddTarget(“position_1”,frame_robot)
ti_1.setPose(pose_1)
曾经繁荣=ti_1.关节()

ti_2
=RDK.AddTarget(“position_2”,frame_pallet)
ti_2.setPose(target_pallet_i)
pose_2=CalculatePoseFrame2Object(frame_robot,ti_2)
关节=机器人.SolveFK(pose_2,机器人.PoseTool())

问题
=机器人.MoveL_Test(曾经繁荣,关节)

RDK
.ShowMessage(str(问题))

ti_1
.删除()
ti_2.删除()
# 2
你用的是正运动学的solvek()你应该用逆运动学的solvek ()第一个返回给定关节值的机器人(法兰或工具)姿态,后者返回给定机器人(法兰或工具)姿态的一组关节值。

还要注意,“pose_1”将是工具“TCP_ITEM”(不是“frame_robot”)的姿态,它不一定是TCP的姿态。

最好的问候,

Maarten
# 3
Maarten问好,

谢谢你的回复,我修正了这个功能,现在它的工作原理和我预期的一样。当线性运动不可能时,函数返回-1,但当它可能时,它返回值5(盒子,sag greifer和连接到扩展器的机器人的基础也是红色的),你知道5的值是什么意思吗?为什么是红色?我没有激活碰撞。

PHP代码:
def move_L_test(target_pallet_i):

ti_2
=RDK.AddTarget(“position_2”,frame_pallet)
ti_2.setPose(target_pallet_i)
pose_2=CalculatePoseFrame2Object(frame_pallet,ti_2)
构成=机器人.SolveIK(pose_2,机器人.PoseTool())

问题
=机器人.MoveL_Test(机器人.关节(),pose_2)

RDK
.ShowMessage(str(问题))

ti_2
.删除()

谢谢
利比亚




浏览此主题的用户:
1客人(年代)