线程评级:
比较机器人位置与DUT位置-问题与RobotsMonitor.py
# 1
嗨,论坛,

我想用机器人测量。为此,我想将被测设备的x/y/(z)位置与机器人相对于DUT参考系的位置进行比较。在论坛中已经有人提出了类似的问题,并参考了RobotsMonitor.py脚本。但是我在剧本上遇到了一些问题:
1)。脚本必须在RoboDK内部还是外部执行?如果我在RoboDK中执行脚本,程序流会挂起。如果我在控制台外执行脚本,就会发生崩溃(见附图)。函数tic()似乎没有定义。我需要另一个图书馆吗?如果是,哪一个?
2)。如何获得与DUT参考系相关的位置?
3)。我是否可以访问时间戳来同步机器人的位置与DUT的位置?

谢谢你的帮助,
托马斯。

我忘了说我的系统:
Linux薄荷肉桂水蟒
Python 3.7.3(默认,2019年3月27日,22:11:17)
[GCC 7.3.0]:: Anaconda, Inc.在linux上
RoboDK V5.2.0.19949(64位)


附加文件 缩略图(s)


.rdk 步骤2 - Niryo与手指工具。rdk(大小:195.78 KB /下载:213)
你能试着交换第6行和第7行的顺序吗
从robolink导入* # API与RoboDK通信
从robodk导入* #基本矩阵操作

从robodk导入* #基本矩阵操作
从robolink导入* # API与RoboDK通信

robolink的一些函数使用了robodk模块中定义的函数
# 3
嗨,菲利普,

谢谢你的回答。更改这两行会导致相同的错误。

问候,
托马斯。
# 4
嗨,菲利普

不支持Tic()和toc()。但是存在一个库。

我的问题有新的信息吗?

我想用机器人测量。为此,我想将被测设备的x/y/(z)位置与机器人相对于DUT参考系的位置进行比较。在论坛中已经有人提出了类似的问题,并参考了RobotsMonitor.py脚本。但是我在剧本上遇到了一些问题:
1)。解决-脚本必须在RoboDK内部或外部执行吗?如果我在RoboDK中执行脚本,程序流会挂起。如果我在控制台外执行脚本,就会发生崩溃(见附图)。函数tic()似乎没有定义。我需要另一个图书馆吗?如果是,哪一个?
2)。如何获得与DUT参考系相关的真实机器人(非模拟机器人)的位置?
3)。我是否可以访问一个时间戳来同步真实机器人的位置与DUT的位置?

周末愉快,

托马斯。
# 5
你好托马斯,

任何Python脚本都可以在RoboDK内部或外部执行。性能应该是相同的。

关于缺失的问题:
2.你可以通过附上的例子得到一个真实机器人的位置。你应该调用关节函数来强制从真正的机器人检索到RoboDK的位置。我附上了一个例子。
3.你试过依靠电脑时间戳吗?RoboDK通常以15- 20hz的频率监控机器人,API的速度应该是无关的。这在很大程度上取决于机器人控制器。如果你需要接近1000hz的速度,计算机时间戳可能会有影响,我不认为RoboDK可以帮助你以一般方式获得高频监测信息,或准确的时间戳。

我附上了一个示例文件,可以帮助您计算TCP的位置和速度。这段代码显示了相关的部分:

代码:
而真正的:
#如果我们连接到真实机器人,这将检索真实机器人的位置
#(阻塞,直到收到来自真实机器人的更新)
关节= robot.关节().list()
如果joints_changed(关节,joints_last):
#在坐标系中获取TCP
#(使用关节()从真实机器人更新机器人位置)
tcp_xyz = robot.Pose().Pos()
X,y,z = tcp_xyz
print("TCP位置[X,Y,Z] (mm): [%.3f,%.3f,%。3f]" % (x,y,z) "


附加文件
. py Monitor_TCP_Speed.py(大小:2.34 KB /下载:280)
# 6
嗨,阿尔伯特,

谢谢你举的例子。我还没有试着使用电脑的时间。采样率应在130-150Hz之间。更快不是必须的。机器人控制器是三菱CR2B-574。在我们的实验室中,我们使用了一个六轴MELFA机器人,该机器人的控制器由专有软件控制。用这个软件,我每7毫秒得到一个样本。这是我想用RoboDK实现的目标值。这可能吗?
我还有一个问题。如何使TCP以恒定的速度移动?背景是一个测量运行与TCP(效应器)在曲面上。当我想滚动到下一个屏幕时,基本上就是手机屏幕上的滑动动作。这个运动的速度应该是恒定的。匀速接近和离开显示器是可取的,但不是绝对必要的。

最好的问候,
托马斯。




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