2024-12-27 15:18:10
勇哥注:机器人反向动力学,可以取坐标空间中的某个点位,而让机器人的每个关节反向求解出要动多少个单位。这样你的机器人就不用为了到达某个位置,而依次运动每个关节。之前我们只能使用关节动画来模拟机器人的动作,或者使用unity的约束来模拟。现在game4automation的机器人反向动力学就可以做到完全真实的模拟点位运动(PTP运动)。下图演示了反向动力学走点位的效果:演示模型和预制件使用我们的专用演...
2024-12-27 13:42:10
勇哥注:halcon绘制任意形状态的roi的功能,是比较常见的要求。由于halcon原来是不支持的,这份C#代码实现了此需求。源码下载:要求vs2015,C#源码。...
2024-12-26 21:54:49
勇哥注:这是勇哥的一个毕业论文中的实验源码。它是对三菱plc的指令的仿真。(部分指令)。但是其梯形图部分还没有完工。你可以扩展这个软plc的指令,然后用梯形图编制+运行自动化程序。这样可以脱离C#编程。当然这是当年勇哥减少高级语言依赖的一种思路。(现在看来,其实这种思路还是摆脱不了专业依赖)。论文见下面文章 :http://www.skcircle.com/?id=429 程序运行界面如下:源码下...
2024-12-26 21:42:04
勇哥注:一个基于雷塞卡绘制运动曲线的例子。程序界面如下:源码下载:vs2015及以上版本。C#的源码。...
2024-12-26 21:17:51
勇哥注:一直以来,找一个可以进行绘制运动曲线的控件,比较困难。它最好能实现雷塞Motion中那种绘制的能力。ZGraph就是一个选择。示例界面如下:源码下载:C#源码,要求vs2015及以上...
2024-12-19 14:08:59
勇哥注:modbus通讯协议本身是可靠的,不然也不会发明起至今快50年了,还在自动化行业中广泛使用。然而当应用各种第三方modbus组件编程的时候,由于组件的实现者、组件的应用者没有遵循标准来实现和应用,就会造成各种通讯异常。这就有点像一台pc机,硬件厂商能保证自己的硬件没有问题,然而架不住使用者乱装软件,最终还是可能会死机蓝屏。使用modbus组件的使用者想怎么用就怎么用,没有章法,这是此问题的...
2024-12-18 21:15:55
勇哥注:下面是一个综合的例子,通过一个杜撰的设备,演示了gam4automation的能力。为了完成这个例子,还需要配合一些自定义脚本,以及做为上位机的C#程序。完整的设备见下图:设备是一个分拣设备。上下料的轴有x, z轴。分拣的轴是u轴。这个例子勇哥只是弄了个简单的示意场景,并没有导入cad图纸。仿真这边实现了下面的功能:(1)传送带(2)x, z, u轴(3)工位上的双控气缸(4)吸嘴上的真空...
2024-12-18 09:06:22
勇哥注:让设备回到播放前的状态,这个需求很重要。不然我们想从头来进行测试,就只能重新播放了。我们从下面几个方面来进行:(一)删除所有的mu目的是把物料全部清空,就像我们从设备里人工取走一样。Source组件中有两个属性:Generate MU, Delete All MU。前者在每创建一个mu的复制品的时候,就会给个信号。后者勾选后则可以删除所有mu的复制品。(二)重新加载场景如果记录场景状态,...
2024-12-17 15:13:38
一般来说,我们都是使用Drive组件的 Jog Forward和Jog Backward来做Jog运动。我们会使用Drive_Destination Motor组件来做ptp点位运动。但是这两都同时有效的时候,你会发现手工打勾Jog Forward和Jog Backward就没有效果了。这是因为此时运动被Drive_Destination Motor组件接管了。怎么让这两者(ptp和jog)可以共...
2024-12-17 11:46:55
Drive_Destination Motor组件是我们实现ptp运动的主要方式。现在有一个需求是必须运动中响应停止,以及继续。然而你是不是发现Drive_Destination Motor组件没有停止?如果你想通过Start Drive为false来停止,这个是不行的。如果你想通过Drive组件的Stop Drive来停止,会发现也根本停不下来。怎么办呢?正确的方式是先Drive_Destina...
2024-12-17 10:34:57
勇哥注:
趁着需要测试运动回原的精度,加上本来需要编写netMarketing类库的应用教程,
那就顺手发一个制作视觉+运动测试框架的系列教程吧。
网上的netMarketing类库是1.3.0,这个版本需要使用halcon12.0
勇哥在演示的时候用的netMarketing版本比这个高,
这个版本还没有发布,使用的是halcon19.11。
所以下载文章源代码的朋友,注意halco...
2024-12-17 10:00:15
工业相机镜头焦距、工作距离、视野等选型的计算一.术语解释1.工作距离(WD):指镜头前机械端面到被拍物体表面的物理距离。 2.视场(FOV):也称视野,是指能被视觉系统观察到的物方可视范围大小。 3.焦距(f):无限远目标的轴上共轭点是工业镜头的(像方)焦点,而此焦点到(像方)主面的距离称为焦距。焦距描述了工业镜头的基本成像规律:在不同物距上,目标的成像位置和成像大小由焦距决定。(市场上工业镜头焦...
2024-12-17 09:47:26
1:工业相机的丢帧的问题是由什么引起的?丢帧表现:(一)相机预览模式下,无法以满帧的速度传输图像(二)触发拍照模式下,相机传输图像数量少于触发次数(触发频率应小于帧率)(三)图像处理软件处理的图像数量小于预期对应的丢帧可能原因:(一)预览或触发模式下丢帧 ①系统防火墙未关闭;杀毒软件拦截 ②网络环境为非千兆网络(查看网口速度) ③网卡未开...
2024-12-13 09:24:57
一般来说,当你在unity中编辑模式下点,在内部赋值与外部赋值状态之间的切换,这个设置会记录下来。但是有时候会发现,在播放的时候状态又自动切换为下图的状态(内部赋值状态),结果就是外部通讯无法控制这个通讯变量了。怎么办呢?解决的办法很简单!复制一个正常的通讯变量,改下名字设置好参数就行了。这种情况应该是game4automation的一个bug。...
2024-12-09 16:50:58
SensorBeam是由一个3D游戏对象加感应器组件构成的组合对象。Sensor则只是一个感应器组件。SensorBeam如果有效,像下图所示的Status会在碰到mu对象后有反应。这个对象有个问题,就是只对mu对象有反应。如果我们用它来构建原点和限位感应器,就不适合。换成game4automation的场景中,你得把MU对象放到g4a MU层,而SensorBeam放在g4a Sensor层。这...
2024-12-09 08:33:20
勇哥注:unity中的2d物理效果基于开源的Box2D引擎,3d物理效果基于Nvidia PhysX,包括几个关键组件:Rigidbody(刚体),Collider(碰撞器),关节(Joints)我们只对3d物理效果有兴趣。见图1:场景中4个对象(先不算斜面上的cube)。球体添加了RigidbodyCube有一个BoxCollider。两个平面都添加了Mesh Collider。播放后我们见到下...
2024-12-06 16:49:12
game4automation的层级面板中,通讯接口相关有丰富的控制功能。下面讨论一下它们的控制图标的意义。(一)图1的疑问(图1)(1)为啥有些值的显示写着False,而有些显示的是(False)。False这种没括号的,注意它的属性中,关联到了一个流对象上面,因此Behavior列表中有内容。(False) 这一种则Behavior列表中没有关联游戏对象。(2)为啥有项目显示是蓝色的并且后面有...
2024-12-05 15:18:29
目前,市面上对非标自动化设备制造的需求有相关性的,并且有流行度的软件主要是下面几款。(一)IOA数字孪生软件此国产软件主要采用拼积木方式构建实验场景。主要用于学习实验性质。 它虽然可以导入solidworks的模型,但是模型的准备工作操作复杂,只适合单独机构零件的模拟动作,不适合整机运动模拟。 只能配合plc进行仿真。 官网: www.ioaol.com参考视频 :https://www.b...
2024-12-04 16:52:27
今天unity播放时看到出现了这个提示。它不是错误,仅是个提示,但是不停的刷消息,比较烦。网上查了一下,意思如下:当前场景中有4个音频监听器(Audio Listener),而Unity引擎要求每个场景中只能有一个音频监听器。在相机属性中,果然有个Audio Listener。关闭,只留下一个即可。...
2024-12-04 14:28:20
Drive IO's的这几个参数,勇哥发现其实有妙用。(1)Jog Forward/Jog Backward 前后运动这两个我们在播放时,可以用于测试轴向前、向后运动。但其实,它可以用来做jog运动的!那个Target Speed 正好做为jog运动的速度参数。使用的时候,我们弄几个PLC Output对应Jog Forward和Jog Backward,在代码中收到信号后就对Jog F...
2024-12-03 21:47:35
讨论下面几个问题:(一)为啥在编辑模式下灯也会闪烁 即使不播放,在场景编辑模式下,灯也会闪烁。 这个原因见下的贴子: unity中不播放,仅在编辑模式下也能执行脚本的方法 http://www.skcircle.com/?id=2589 如果想让灯被外部控制,不要自己闪烁,需要关闭Flashing(自动闪烁)和Lamp On。(二)为啥黄灯缺省是这种绿色,这样黄灯没点亮时,...
2024-12-03 11:20:22
讨论几个问题:(一)Sensor到底要不要配Sensor_Standard?Sensor自己也有一个Sensor Occupied,可以指定一个PLC Input。Sensor_Standard也有一个Occupied,用以指定一个PLC Input。勇哥经过实现,发现两个地方都有效果。也就是说,你可以不用Sensor_Standard。(二)为啥Sensor感应到变红了,但是PLC Input看...
2024-12-03 09:48:13
勇哥注:在game4automation中,创建modbus接口时,会出现下图所示蓝色标记的预设体内容。如果你想把蓝色的项止移动到一个空对象的下面,会有个报错那么我们怎么取消预制体与空对象的关联呢?在Hierarchy视图下,选择预制体的根对象,鼠标右键,Prefab-->Unpack Completely。注意如果你选择子对象,则Prefab下面不会出现Unpack Completely已...
2024-12-02 15:25:23
勇哥注:这节说下输入按钮的组件Interact 3D,以及丝印文字怎么弄。下面是4个常见的按钮:启动、停止、复位、急停按下后(需要去Game窗口按),Mouse Down和On会打勾。松开鼠标后,它们取消打勾。默认就是不勾选Switch属性,这个时候就是点动按钮状态。下面是Interact 3D的属性。Switch 如果不勾则是点动按钮,如果勾了就是开关按钮(状态保持按钮)Mouse Down...