当前位置: 首页 > news >正文

CODESYS的Robotics_PickAndPlace_without_Depictor例程解释

1.简介

在CODESYS的例程中,有一个例程演示了如何控制delta机械手从一个移动的转盘中拾取一个工件(ring,圆环),然后放到移动的传送带上的托盘(cone,圆锥)中。这个例程在【C:\Program Files (x86)\CODESYS 3.5.19.40\CODESYS\CODESYS SoftMotion\Examples\Tutorial】里面。此例程还没用到电子凸轮功能。
在这里插入图片描述估计是为了演示坐标的精准性,例程使用的是工件是圆环,托盘是圆锥,也就是把转盘中的圆环拾取起来,然后放置到圆锥上,套在上面。如下图所示:
在这里插入图片描述
主要难点是从一个运动的系统中拾取东西,然后放到另外一个运动的系统中。
需要特别注意的是,此例程中三个运动的主体:转盘、delta机械手、传送带,他们都是由CODESYS控制的。只有这样,他们之间才能快速地通讯、变换、同步。(主要是信息的同步,假如三个不是都由CODESYS控制,应该也是可以的,但是保证各个工件、设备的位置、速度等因素能够及时同步)。

2.功能块介绍

这里先介绍用到的一些关键的功能块。

2.1.MC_TrackConveyorBelt

此功能块的主要作用是将传送带上工件的坐标系与机械手的PCS坐标系进行绑定(或者叫映射)。
其输入输出参数为:
在这里插入图片描述

AxisGroup:与机械手关联的轴组
ConveyorBelt:与传送带关联的轴

Execute:在上升沿执行
ConveyorBeltOrigin:指明传送带坐标系在世界坐标中的位置以及姿态。其中此坐标系的X轴必须指向传送带的运动方向。
InitialObjectPosition:指明被跟踪的物体(更准确的描述可能是物体的坐标原点)的初始位置及姿态(在传送带坐标系下)
CoordSystem:指明使用哪个产品坐标系(PCS_1或者PCS_2,只分配了两个,一般一个是用来拾取、一个是用来放下)

Done:此变换已经被成功设置。
Busy:此功能块还未执行完成。
InUse:表示轴组是否仍然需要引用的动态坐标系统。假如这个值为true,然后Execute上出现一个上升沿的话,会出现【SMC_AXIS_GROUP_PCS_STILL_IN_USE】错误;为了保持这个输出值为最新,此功能块需要放在连续执行的地方(哪怕Done已经为true);在到达用另外的坐标系表示的坐标之前,这个值会一直为True。
Error:表示功能块是否出现了错误
ErrorID:具体的错误id。

在手册中,有提到一个使用流程:
在这里插入图片描述工件是放置在传送带上,传送带以速度Vcb运行。

  • 在t0时刻,工件被相机捕捉到,并且被识别出他的位置和姿态;
  • 同时,点P(工件上的点)以PCS为坐标系的运动开始了。机械手也开始从等待点(或者叫空闲点?)W(以MCS为坐标系)开始往P(以PCS)点移动。
  • 在t1时刻,机械臂到达了P点。同时,传送带移动了dx0_1这段距离。
  • 在到达了P点后,针对工件的操作便可以开始。在操作时,与位置相关的,一定要记得使用PCS坐标系。
  • 在t2时刻,针对工件的处理已经完成,机械臂开始返回等待点W(以MCS为坐标系)。

可能会让人感到疑惑的是,在t1-t2时间中,机械臂是如何跟随着工件相对静止地操作的。
在例程中,其实并没有使用跟随(相对静止移动)这一个功能。而是:到达圆锥上方–立马下降放置工件–立马上升离开圆锥–立马返回等待点。可能是因为这一连串动作都是在PCS坐标系下操作,从某个角度看起来就像相对静止?

在此功能块执行完( Execute的上升沿为开始,Done为True为结束)之后,传送带上工件的坐标系会被关联至机械手上PCS坐标系中。关联之后,这个坐标系可能还会绑定了传送带的位移之类,成为一个动态坐标系。
当机械手需要走到工件的上方时,只需要在调用MC_MoveLinearAbsolute等运动功能块时,指定目标位置的坐标系统使用PCS即可。
在这里插入图片描述
总而言之,这个功能块是用来绑定工件的坐标系到机械臂的PCS坐标系的(或者说跟踪?)。

2.2.MC_TrackRotaryTable

这个和前面的MC_TrackConveyorBelt功能块差不多。只不过这个功能块是处理圆盘的。
在这里插入图片描述

相关文章:

CODESYS的Robotics_PickAndPlace_without_Depictor例程解释

1.简介 在CODESYS的例程中,有一个例程演示了如何控制delta机械手从一个移动的转盘中拾取一个工件(ring,圆环),然后放到移动的传送带上的托盘(cone,圆锥)中。这个例程在【C:\Program…...

通过全流量分析Web业务性能好坏

随着全球商业环境的不断发展和变化,业务性能的重要性愈发凸显。无论是传统实体企业还是纯线上企业,业务性能都是其核心竞争力和稳定运营的关键要素。良好的业务性能不仅可以提升客户满意度、增加市场份额,还可以降低成本、提高效率。 本文章…...

【C语言】自定义类型——枚举、联合体

引言 对枚举、联合体进行介绍,包括枚举的声明、枚举的优点,联合体的声明、联合体的大小。 ✨ 猪巴戒:个人主页✨ 所属专栏:《C语言进阶》 🎈跟着猪巴戒,一起学习C语言🎈 目录 引言 枚举 枚举…...

大模型自定义算子优化方案学习笔记:CUDA算子定义、算子编译、正反向梯度实现

01算子优化的意义 随着大模型应用的普及以及算力紧缺,下一步对于计算性能的追求一定是技术的核心方向。因为目前大模型的计算逻辑是由一个个独立的算子或者说OP正反向求导实现的,底层往往调用的是GPU提供的CUDA的驱动程序。如果不能对于整个计算过程学习…...

【密码学基础】Diffie-Hellman密钥交换协议

DH介绍 Diffie-Hellman密钥协议算法是一种确保共享密钥安全穿越不安全网络的方法。 这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密。 但是注意,这个密钥交换协议 只能用于密钥的交换,而…...

最新AI绘画Midjourney绘画提示词Prompt教程

一、Midjourney绘画工具 SparkAi【无需魔法使用】: sparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的…...

AI助力DevOps新时代

根据2023年Gitlab全球DevSecOps报告,62%使用AI和ML的开发人员表示他们正在使用AI来检查代码,而2022年这一比例只有51%。 人工智能在 DevOps 中的作用 虽然今年年初,随着GPT的爆火,AI技术逐渐深入人心,但在很早以前&…...

Spring之容器:IOC(2)

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…...

Spring 依赖查找知识点总结

前言 源码在我github的guide-spring仓库中,可以克隆下来 直接执行。 我们本文主要来介绍依赖查找的使用示例 依赖查找 什么是依赖查找 依赖查找并不是 Spring 框架特有的概念,它是一种在软件开发中获取依赖对象的方式。它通常用于获取运行时需要的服…...

html5新增特性

对于这行代码&#xff0c;要写在html页面的最前端&#xff1a; <!DOCTYPE html> 为什么要写在前面&#xff1f; 这是声明&#xff0c;是html5的新特性 对于html4来说&#xff0c;它有三种声明格式&#xff0c;而html5只需要统一声明&#xff0c;用来告诉浏览器文档使用…...

4、APScheduler: 详解Scheduler种类用法、常见错误与解决方法【Python3测试任务管理总结】

调度器(Scheduler)是将其他组件绑在一起的关键。通常在应用程序中只运行一个调度器。应用程序开发者通常不直接处理作业存储(job stores)、执行器(executors)或触发器(triggers)。相反,调度器提供了适当的接口来处理所有这些。通过调度器配置作业存储和执行器,以及添…...

微服务实战系列之ZooKeeper(实践篇)

前言 关于ZooKeeper&#xff0c;博主已完整的通过庖丁解牛式的“解法”&#xff0c;完成了概述。我想掌握了这些基础原理和概念后&#xff0c;工作的问题自然迎刃而解&#xff0c;甚至offer也可能手到擒来&#xff0c;真实一举两得&#xff0c;美极了。 为了更有直观的体验&a…...

C++ 开发中为什么要使用继承

为何继承 实验介绍 继承是 C++ 中的特性之一,使用继承能够有效减轻工作量,使得开发更加高效。 知识点 什么是继承为何继承继承的内容权限关键字什么是继承 生活中继承是指孩子继承父亲的财产等。C++ 使用了这一思想,却又与生活中的继承不一样。 在使用继承时,派生类是…...

2020蓝桥杯c组纸张大小

题目名字 纸张大小 题目链接 题意 给一张纸&#xff0c;通过不断折叠&#xff0c;求最终长宽&#xff0c;给十个数字&#xff0c;输入哪个数字就求哪次折叠的长宽&#xff0c;其实就是&#xff0c;每次折叠后长度的一半变为宽度&#xff0c;原来的宽度变成长度 思路 因为数字…...

【Image】图像处理

计算机视觉 CV Perception 如自动驾驶领域。 只要是从所谓的图像当中去抽取信息的过程&#xff0c;我们都叫做Perception。 视觉检测可以涵盖二维检测&#xff0c;如车辆、人和信号灯的检测。另外&#xff0c;还可以控制三维信息&#xff0c;直接在三维空间中操作数据。 SL…...

JAVA对文档加密

当 Word 文档中包含无法公开的机密信息时&#xff0c;我们可以对其进行加密&#xff0c;使其在没有密码的情况下无法打开。本文将向您介绍如何使用 Spire.Doc for Java 加密 Word 文档和移除 Word 密码保护。 加密 Word 文档删除 Word 密码保护 安装 Spire.Doc for Java 首先…...

EmbedAI:一个可以上传文件训练自己ChatGPT的AI工具,妈妈再也不用担心我的GPT不会回答问题

功能介绍&#xff1a; 个性化定制&#xff1a;提供灵活的训练选项&#xff0c;用户能够通过文件、网站、Notion文档甚至YouTube等多种数据源对ChatGPT进行训练&#xff0c;以满足不同领域和需求的个性化定制。广泛应用场景&#xff1a;ChatGPT支持多种用例&#xff0c;包括智能…...

runCatching异常捕获onSuccess/onFailure返回函数,Kotlin

runCatching异常捕获onSuccess/onFailure返回函数&#xff0c;Kotlin fun test(a: Int, b: Int) {runCatching {a / b}.onSuccess {println("onSuccess: $it")return ok(it)}.onFailure {println("onFailure: $it")return fail(it)} }fun ok(o: Any) {prin…...

IDEA报错处理

问题1 IDEA 新建 Maven 项目没有文件结构 pom 文件为空 将JDK换成1.8后解决。 网络说法&#xff1a;别用 java18&#xff0c;换成 java17 或者 java1.8 都可以&#xff0c;因为 java18 不是 LTS 版本&#xff0c;有着各种各样的问题。。...

使用动画曲线编辑器打造炫酷的3D可视化ACE

前言 在制作3D可视化看板时&#xff0c;除了精细的模型结构外&#xff0c;炫酷的动画效果也是必不可少的。无论是复杂的还是简单的动画效果&#xff0c;要实现100%的自然平滑都是具有挑战性的工作。这涉及到物理引擎的计算和对动画效果的数学建模分析。一般来说&#xff0c;只…...

Windows Cleaner终极攻略:系统优化与空间释放完整指南

Windows Cleaner终极攻略&#xff1a;系统优化与空间释放完整指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows系统设计的开…...

Swift-All镜像推荐:免配置快速部署,新手也能轻松上手

Swift-All镜像推荐&#xff1a;免配置快速部署&#xff0c;新手也能轻松上手 想体验大模型的强大能力&#xff0c;却被复杂的安装、环境配置和依赖问题搞得头大&#xff1f;今天&#xff0c;我为你介绍一个能彻底解决这些烦恼的“神器”——Swift-All镜像。它就像一个为你量身…...

M9A小助手:重新定义《重返未来:1999》的智能化游戏体验

M9A小助手&#xff1a;重新定义《重返未来&#xff1a;1999》的智能化游戏体验 【免费下载链接】M9A 重返未来&#xff1a;1999 小助手 | Assistant For Reverse: 1999 项目地址: https://gitcode.com/gh_mirrors/m9/M9A M9A小助手是一款专为《重返未来&#xff1a;1999…...

intv_ai_mk11一文详解:7B参数轻量级开源对话模型在中小团队中的降本增效实践

intv_ai_mk11一文详解&#xff1a;7B参数轻量级开源对话模型在中小团队中的降本增效实践 1. 轻量级AI对话助手的价值定位 在中小团队的实际运营中&#xff0c;专业AI助手的引入往往面临两大难题&#xff1a;高昂的部署成本和复杂的技术门槛。intv_ai_mk11作为7B参数的轻量级开…...

GEE引擎封挂实战:从M2参数到RunGate网关的完整配置指南

GEE引擎封挂实战&#xff1a;从M2参数到RunGate网关的完整配置指南 在游戏运营过程中&#xff0c;外挂问题一直是困扰开发者和运营者的顽疾。对于使用GEE引擎的游戏服务器来说&#xff0c;如何有效防范和打击外挂行为&#xff0c;维护游戏公平性&#xff0c;是每个技术团队必须…...

Claude Code编程助手实践:辅助编写cv_resnet101模型调用代码

Claude Code编程助手实践&#xff1a;辅助编写cv_resnet101模型调用代码 不知道你有没有过这样的经历&#xff1a;项目急着要上线&#xff0c;需要调用一个像ResNet101这样的图像分类模型&#xff0c;但对着API文档&#xff0c;光是搞明白参数怎么传、返回结果怎么解析&#x…...

Qwen3.5-9B实战落地:政务公文校对+政策条款关联性分析案例

Qwen3.5-9B实战落地&#xff1a;政务公文校对政策条款关联性分析案例 1. 项目背景与模型介绍 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;在政务场景中展现出强大的应用潜力。这个模型特别适合处理结构化文本分析任务&#xff0c;能够理解复杂的政策语言和公文…...

终极指南:如何将danger-js与Webpack集成实现自动化代码审查

终极指南&#xff1a;如何将danger-js与Webpack集成实现自动化代码审查 【免费下载链接】danger-js ⚠️ Stop saying "you forgot to …" in code review 项目地址: https://gitcode.com/gh_mirrors/da/danger-js Danger JS是一个强大的自动化代码审查工具&a…...

OpenClaw本地模型对比:千问3.5-35B-A3B-FP8与开源替代方案

OpenClaw本地模型对比&#xff1a;千问3.5-35B-A3B-FP8与开源替代方案 1. 为什么需要本地模型对比 当我第一次尝试在OpenClaw中接入本地大模型时&#xff0c;面对众多开源选项感到非常困惑。每个模型都宣称自己性能优越&#xff0c;但实际部署后却发现资源消耗、推理速度与预…...

Java网络协议解析核心源码剖析(Netty+Spring Boot双栈实测):从Raw Socket到自动反序列化全链路解密

第一章&#xff1a;Java网络协议解析核心源码剖析&#xff08;NettySpring Boot双栈实测&#xff09;&#xff1a;从Raw Socket到自动反序列化全链路解密Java 网络通信的底层能力并非止步于 Spring Boot 的 RestController 抽象层——其真实脉搏深埋于 Netty 的 ChannelPipelin…...