开源改变世界!!

通过摄像头获取工件的高度信息 #36

推推 grbl 2年前 (2023-02-09) 170次浏览
关闭
wwwlxs 开了这个issue 2018 年 10 月 20 日 · 110条评论
关闭

通过摄像头获取工件的高度信息#36

wwwlxs 开了这个issue 2018 年 10 月 20 日 · 110条评论

评论

通过摄像头获取工件的高度信息 #36

Hi Svenhb ,可以通过USB摄像头的焦距信息获取工件的高度信息来获取高度图数据而不是探头以便更快地处理吗?

通过摄像头获取工件的高度信息 #36
作者

或者使用kinect/intel realsense dephth camera

通过摄像头获取工件的高度信息 #36
所有者

最后你想要一个外部高度测量来做 z 轴的偏移?
– 如何读出相机的焦距信息?听起来不是很准确。
– 连接 kinect 听起来有点矫枉过正
也许你构建了一个外部设备并通过“DIY 控件”(https://github.com/svenhb/GRBL-Plotter/wiki/DIY-control)连接它,然后我需要实施一些新的命令来处理信息。

通过摄像头获取工件的高度信息 #36 svenhb 添加了 增强 标签 2018 年 10 月 20 日
通过摄像头获取工件的高度信息 #36
作者

Hi Svenhb ,可以从松下HG-C系列测量传感器获得高度信息吗?CMOS 激光传感器与光电传感器一样紧凑,可以像位移传感器一样准确地显示实际测量的距离。
https://www.panasonic-electric-works.com/se/hg-c-measurement-sensor.htm

通过摄像头获取工件的高度信息 #36
所有者

它可能有效,但我没有得到所需的应用程序:
通常您想知道给定 Z 位置的工具尖端和工件之间的距离。补偿刀具偏移(每个刀具在固定在主轴上时显示不同的长度)。
然后您的传感器需要测量工具尖端的自下而上 – 它有效吗?
然后你需要读取距离并手动输入软件。或者如何将距离信息输入 GRBL-Plotter?(也许通过“DIY-Control”)。

或者显示刀具始终具有相同的偏移量而您只需要知道工件表面的 Z 轴位置?
要适应任何类型的传感器,您需要构建硬件,它可以通过 COMx 连接到 PC,以已知格式发送高度信息。
然后我可以制作一个接口来读取和处理信息。

通过摄像头获取工件的高度信息 #36
作者

嗨,斯文,
有一个 USB 数据采集模块来适配松下 HG C1050 传感器,它可以通过 COMx 连接到 PC,并通过 Labview 应用程序以 TXT/Excel 格式将高度信息发送到 PC。它可以每秒向计算机发送数十或数千次高度数据,但是如何通过Grbl-plotter app将高度数据与当前位置的xy坐标结合起来?从而形成高度图。或者如何通过’DIY-Control将距离信息输入GRBL-Plotter?

通过摄像头获取工件的高度信息 #36
作者

USB数据采集模块
通过摄像头获取工件的高度信息 #36
通过摄像头获取工件的高度信息 #36
通过摄像头获取工件的高度信息 #36

通过摄像头获取工件的高度信息 #36
作者
wwwlxs 评论了 2018 年 11 月 10 日  

this is USB Data Acquisition Module 视频
USB数据采集模块mp4.zip

通过摄像头获取工件的高度信息 #36
所有者
svenhb 评论了 2018 年 11 月 11 日  

我认为有两种选择:

  1. 我需要做很多工作来获取和处理外部高度数据。因为它与当前的实现不兼容 – 请参见下文。
  2. 您编写自己的软件,也许使用“DIY-Control”界面。然后你将xy坐标发送到GRBL-Plotter,等待空闲,然后检查并以你喜欢的格式保存你的高度信息……

当前的实现是:我移动特定的 XY 位置并开始探测,来自 grbl-hardware ([PRB:0.000,0.000,0.000:0]) 的探测答案触发我的高度测量模块存储高度信息。

通过摄像头获取工件的高度信息 #36
作者

感谢您的帮助!

通过摄像头获取工件的高度信息 #36
作者

新年快乐!svenhb
现在我使用另一个 Arduino 将高度测量值(带“mm”的 Z 位置)实时发送到“diy-control”接口,
你能帮我把高度测量值从“diy-control”到高度测量模块存储高度信息而不是 G38.3 的探测答案?

通过摄像头获取工件的高度信息 #36
所有者
svenhb 评论了 2019 年 1 月 1 日 通过电子邮件  

通过摄像头获取工件的高度信息 #36
作者

谢谢
我将松下 HG C1050 传感器连接到 Arduino UNO,然后使用以下代码将实际位置发送到“DIY-Control”:

void setup() {
Serial.begin(115200);
}

void loop() {
浮动距离;
距离=地图(模拟读取(0),0,1023,-1500,1500);
Serial.println(距离/100);
延迟(100);
}

通过摄像头获取工件的高度信息 #36
作者

DIY-control 显示高度信息如下:

打开 COM18
< -8.82
< -8.82
< -8.85
< -8.91
< -8.85
< -8.85
< -8.85
< -8.85
< -8.82

通过摄像头获取工件的高度信息 #36
所有者
svenhb 评论了 2019 年 1 月 1 日 通过电子邮件  

通过摄像头获取工件的高度信息 #36
所有者

如果需要触发器,可以使用特定命令对自定义按钮进行编程,隐藏在 GCode 注释中,也许是“($TRG1)”,然后可以通过 DIY 控件产生一条消息,如“[TRG1]”。

在下一个版本中,我将支持这一点:自定义按钮(如“($abc)”)中的任何单个字符串都将通过 DIY-Control 作为“[abc]”发送

通过摄像头获取工件的高度信息 #36
作者

非常感谢!我认为有2种设计可以避免移动z轴,这样可以节省很多时间: 第一种是在grbplotter的height-map模块中增加获取z轴位置信息的方式。之前z的位置是g38.x反馈的,现在改为直接从diy-control接收到的瞬时z值。这个 z 值(以毫米为单位)由第二个 Arduino 通过另一个 COM 发送。
第二种是直接修改grbl固件g32.1-38.4的运动模块,将它们的运动模式替换为“获取第二个arduino的z值”

通过摄像头获取工件的高度信息 #36
作者

也许发送“G92 Z-8.82”来设置 Z 值?
像这样制作高度图:
<?xml version="1.0" encoding="utf-8"?> <heightmap MinX="0" MinY="0" MaxX="25" MaxY="25" SizeX="85" SizeY="85"> <point X="0" Y="0">-8.82</point> <point X="0" Y="1">-8.82</point> <point X="0" Y="2">-8.85</point> <point X="0" Y="3">-8.91</point> <point X="0" Y="4">-8.85</point> .............

通过摄像头获取工件的高度信息 #36
所有者

啊,你想从你的 z 值生成一个高度图?
然后我应该修改表面扫描的代码以请求替代的 Z 值而不是执行 G38.3 …
您可以经常将实际高度作为“Z-8.82”发送到 DIY-Control,我将接管这个高度图的值…

通过摄像头获取工件的高度信息 #36
作者

是的,我想通过传感器从 z 值生成高度图,第二个 Arduino 每秒发送数百个实际高度到 Diy-control,所以它只移动 XY 轴并避免通过 G38 移动 z 轴.3 获取实际高度。这将提高数百倍的速度并节省大量创建高度图的时间。

通过摄像头获取工件的高度信息 #36
所有者

我找到了以下解决方案(在下一个版本中):您以“(PRB:Z-5.12)”格式发送您的值 – 在括号中由 grbl 处理为注释(如果没有流式传输,则此数据将通过 arduino 传递并且会移动 z 轴)。
如果 GRBL-Plotter 收到有效消息,则原始探测 z 值将被新的替换。
为了加快探测速度,您将“最大深度”设置为 0.01 并将“保存高度”设置为 0。因此我不需要通过探测更改我的工作流程。

通过摄像头获取工件的高度信息 #36
作者

如果我设置“Max-depth”为0.01,“Save height”为0,z轴移动0.01mm,机器会抖动影响精度吗?
好的,谢谢svenhb!期待下个版本的到来。

通过摄像头获取工件的高度信息 #36
所有者

很好的提示……我做了一个工作来避免 G38。
将 Max-depth 设置为 0,然后将设置一个内部标志。
到达新位置后(状态切换到 IDLE),将读取 DIY-Control 的 Z 值,因此可以进行同步(检查 <IDLE,发送 Z 值)

通过摄像头获取工件的高度信息 #36
作者

好的,谢谢svenhb!

1条相似评论
通过摄像头获取工件的高度信息 #36
所有者

在版本 1.2.3.x 中实现,请检查功能