04月21日,2023上午10:03
你好,
我在尝试用太空鼠标控制库卡。我通过roboDK和Python来实现这个。
我的Python脚本和库卡之间有一个链接,我可以使用Python脚本实时控制库卡。但我现在出现了奇怪的延迟和口吃。
口吃:
当我在不连接kuka的情况下运行脚本时,roboDK模拟显示了相当平滑的运动。但当我连接到库卡时,它的动作很奇怪。它不断地暂停和加速。然后,模拟也会断断续续,准确地跟随库卡。
延迟:
我使用3D空间鼠标,并读取该鼠标的值。当我在没有roboDK链接的情况下读取spacemouse的值时,它工作得非常好。我的身体运动和程序变量之间没有延迟。但是,一旦连接到roboDK(即使没有连接到kuka),我的变量也无法正确更新。当我不触碰鼠标时,我的输入仍然是高的,而不是0。我试着把暂停,以防我刷新太快,但它只会导致奇怪的口吃暂停,仍然有读取延迟。
它仍然是非常基础的,我计划在未来增加更多的计算功能。我无法想象这个软件没有足够强大的计算和更新速度,所以我一定是用错了。
spacemouse输出介于-1和1之间的变量。0是被动状态,它非常敏感,所以在-0.3和0.3之间的一切我都认为是偶然的运动。当我运行代码时,我点击鼠标,它立即显示正确的读数。当我释放鼠标时,它在很长一段时间内保持相同的值,即使它应该再次读取0。
使用:kuka kr10, kr c4控制器,python 3.11, pycharm IDE, roboDK, 3D spacemouse(连接),windows, kukaproxyvar作为roboDK与kuka之间的连接方法。
我在尝试用太空鼠标控制库卡。我通过roboDK和Python来实现这个。
我的Python脚本和库卡之间有一个链接,我可以使用Python脚本实时控制库卡。但我现在出现了奇怪的延迟和口吃。
口吃:
当我在不连接kuka的情况下运行脚本时,roboDK模拟显示了相当平滑的运动。但当我连接到库卡时,它的动作很奇怪。它不断地暂停和加速。然后,模拟也会断断续续,准确地跟随库卡。
延迟:
我使用3D空间鼠标,并读取该鼠标的值。当我在没有roboDK链接的情况下读取spacemouse的值时,它工作得非常好。我的身体运动和程序变量之间没有延迟。但是,一旦连接到roboDK(即使没有连接到kuka),我的变量也无法正确更新。当我不触碰鼠标时,我的输入仍然是高的,而不是0。我试着把暂停,以防我刷新太快,但它只会导致奇怪的口吃暂停,仍然有读取延迟。
代码:
从robodk。robolink import robolink
从robolink导入*
从robodk导入*
进口pyspacemouse
导入的时间
导入numpy为np
RDK = Robolink()
库卡= RDK。项目(ITEM_TYPE_ROBOT”)
frame = RDK。项目(‘库卡KR 10 R1100-2基地’)
RPM = RDK.Item('RPM')
RDK.setSimulationSpeed (1)
库卡。setSpeed(speed_linear=10, speed_joint =10, acceler_joint =0.5, acceler_linear =0.5)
RDK.setRunMode (RUNMODE_RUN_ROBOT)
#打开太空老鼠
Success = pyspacemouse.open()
速度= 5
moveXYZ = np.array([0,0,0])
def move(moveXYZ, moveR):
new_pos = transl(moveXYZ) * kuka.Pose()# * rotx(moveR)
库卡。MoveJ (new_pos阻塞= False)
# kuka.Pause (1)
如果成功:
而1:
鼠标= pyspacemouse.read() #更新状态
moveXYZ = np.array([round(鼠标)。Y, 2), -1*圆(鼠标。X, 2), 0]) *速度
moveR = -1*round(mouse.yaw)/57 * speed
如果(moveXYZ[0]或moveXYZ[1]) > 0.3或(moveXYZ[0]或moveXYZ[1]) < -0.3: # or moveR > 0.3或moveR < -0.3:
“‘
framePoseAbs = kuka.Pose()
partPoseAbs = RPM.PoseAbs()
pose = framePoseAbs.inv() * partPoseAbs
“‘
#打印(mouse.yaw)
移动(moveXYZ, moveR)
它仍然是非常基础的,我计划在未来增加更多的计算功能。我无法想象这个软件没有足够强大的计算和更新速度,所以我一定是用错了。
spacemouse输出介于-1和1之间的变量。0是被动状态,它非常敏感,所以在-0.3和0.3之间的一切我都认为是偶然的运动。当我运行代码时,我点击鼠标,它立即显示正确的读数。当我释放鼠标时,它在很长一段时间内保持相同的值,即使它应该再次读取0。
使用:kuka kr10, kr c4控制器,python 3.11, pycharm IDE, roboDK, 3D spacemouse(连接),windows, kukaproxyvar作为roboDK与kuka之间的连接方法。