ProEasy机器人:运动+通讯相关说明
----------------机械手运动-------
--常用指令:MovP弧线运动、MovL直线运动
MovP(1) --弧线轨迹运动到一号点
MovP(2) --弧线轨迹运动到二号点
MovL(1) --直线轨迹运动到一号点
MovL(2) --直线轨迹运动到二号点
-----拱形运动
MovP(1 .. P.Z(-3000)) --弧线轨迹移动到1号点安全高度上方
MovP(1) --弧线轨迹移动到1号点
MovP(1 .. P.Z(-3000))
MovP(2 .. P.Z(-3000)) --弧线轨迹移动到2号点安全高度上方
MovP(2) --弧线轨迹移动到2号点
MovP(2 .. P.Z(-3000))
MovL(1 .. P.Z(-3000)) --直线轨迹移动到1号点安全高度上方
MovL(1) --直线轨迹移动到1号点
MovL(1 .. P.Z(-3000))
MovL(2 .. P.Z(-3000)) --直线轨迹移动到2号点安全高度上方
MovL(2) --直线轨迹移动到2号点
MovL(2 .. P.Z(-3000))
--拱形指令函数封装
--MovP拱形
function Arch_P(Point,Height) --Point:要移动的点位,Height:拱形最高安全高度
_,Here = motion.GetFeedbackPosition(1) --获取当前位置
MovP(Here .. P.Z(Height)) --当前位置抬高到安全高度
MovP(Point .. P.Z(Height)) --移动到目标点安全位置
MovP(Point) --移动到目标点
end
Arch_P(1,-3000) --拱形弧线移动到1号点,安全高度为-3000
Arch_P(2,-3000)
--MovL拱形
function Arch_L(Point,Height) --Point:要移动的点位,Height:拱形最高安全高度
_,Here = motion.GetFeedbackPosition(1) --获取当前位置
MovL(Here .. P.Z(Height)) --当前位置抬高到安全高度
MovL(Point .. P.Z(Height)) --移动到目标点安全位置
MovL(Point) --移动到目标点
end
Arch_L(1,-3000) --拱形直线移动到1号点,安全高度为-3000
Arch_L(2,-3000)
--动作轨迹优化,在运动指令中可以加PASS指令来平滑过渡运动轨迹,对于机械手运动效果和CT时间都有明显的提升,例如:
MovP(1 .. P.Z(-3000),"PASS") --弧线轨迹移动到1号点安全高度上方
MovP(1) --弧线轨迹移动到1号点
MovP(1 .. P.Z(-3000),"PASS")
MovP(2 .. P.Z(-3000),"PASS") --弧线轨迹移动到2号点安全高度上方
MovP(2) --弧线轨迹移动到2号点
MovP(2 .. P.Z(-3000),"PASS")
--注意: MovP与MovL之间是不同运动指令,不能加PASS,机械手左右手的时候,只能用MovP,不能用MovL
MovP(1 .. P.Z(-3000),"PASS") --弧线轨迹移动到1号点安全高度上方
MovP(1) --弧线轨迹移动到1号点
MovP(1 .. P.Z(-3000)) --MovP与MovL之间不能加PASS
MovL(2 .. P.Z(-3000),"PASS") --直线轨迹移动到2号点安全高度上方
MovL(2) --直线轨迹移动到2号点
MovL(2 .. P.Z(-3000),"PASS")
----------------机械手通讯-------
--常用通讯:IO通讯、TCP——MODBUS通讯、TCP——Socket(无协议)通讯、232/485通讯
--IO通讯,相关指令:User_DI()、User_DO
repeat until User_DI(1) == 1 --等待取料信号
MovP(1 .. P.Z(-3000))
MovP(1)
User_DO(1,1) --关闭夹爪
DELAY(0.2)
MovP(1 .. P.Z(-3000))
User_DO(2,1) --发送取料完成
repeat until User_DI(2) == 1 --等待放料信号
MovP(2 .. P.Z(-3000))
MovP(2)
User_DO(1,0) --打开夹爪
DELAY(0.2)
MovP(2 .. P.Z(-3000))
User_DO(3,1) --发送放料完成
--TCP——MODBUS通讯,相关指令:ModbusRead16()、ModbusWrite16()
repeat until ModbusRead16(0x2000) == 1 --等待取料信号
MovP(1 .. P.Z(-3000))
MovP(1)
User_DO(1,1) --关闭夹爪
DELAY(0.2)
MovP(1 .. P.Z(-3000))
ModbusWrite16(0x2001,1) --发送取料完成
repeat until ModbusRead16(0x2003) == 1 --等待放料信号
MovP(2 .. P.Z(-3000))
MovP(2)
User_DO(1,0) --打开夹爪
DELAY(0.2)
MovP(2 .. P.Z(-3000))
ModbusWrite16(0x2004,1) --发送放料完成
--TCP——Socket(无协议)通讯,相关指令:FreePort.ECM_OpenAsClient()、FreePort.ECM_Tx()、FreePort.ECM_Rx()、FreePort.ECM_CloseAll()、FreePort.ECM_ChkConnect()、FreePort.ECM_Clear()
function open_client_Vision() --连接视觉服务器 打开以太网作为客户端
repeat
FreePort.ECM_CloseAll() --关闭所有链接
FreePort.ECM_Clear(1) --清楚端口数据
DELAY(0.2)
open_result = FreePort.ECM_OpenAsClient(1,"192.168.1.11",6000,nil,nil) --识别号:1,链接ip:192.168.1.11,端口号:6000,开始符与结束符:nil
DELAY(0.2)
open_result = FreePort.ECM_ChkConnect(1) --检查链接状态
until open_result == 0
print("Link OK" .. "\n")
end
function Send_Out_Vision(value) --发送内容给视觉
repeat
send_result = FreePort.ECM_Tx(1,value) --发送value到识别号1的服务器
until send_result == 0
print("SendPC:" .. value .. '\n')
end
function Receive_Vision() --接收视觉发过来的内容
repeat
c_status_pc,return_text_pc,text_l_pc = FreePort.ECM_Rx(1) ---接收PC发送过来的分BIN结果
until return_text_pc ~= "" --CMD_L>0
print("ReceivePC:" .. return_text_pc .."\n") ---------------打印接收到的消息
return return_text_pc
end
open_client_Vision() --连接视觉服务器 打开以太网作为客户端
MovP(1 .. P.Z(-3000))
MovP(1)
User_DO(1,1) --关闭夹爪
DELAY(0.2)
MovP(1 .. P.Z(-3000))
::AA:: --NG跳转标签
Send_Out_Vision("A1") --发送拍照信号给视觉
Data1 = Receive_Vision() --接收视觉发过来的内容(带有分隔符字符串类型)
Data = string.split(Data1,",") --以指定的分隔符","来分割字符串,返回的是数组
if Data[1] == "NG" then
goto AA
end
X_Vision = Data[2]*1000 --X坐标
Y_Vision = Data[3]*1000 --Y坐标
C_Vision = Data[4]*1000 --C坐标
Point = P.new(X_Vision,Y_Vision,-10000,0,0,C_Vision,0,0,0,0,0,0,0) --创建新点位
MovP(Point .. P.Z(-3000))
MovP(Point)
User_DO(1,0) --打开夹爪
DELAY(0.2)
MovP(Point .. P.Z(-3000))
相关文章:
ProEasy机器人:运动+通讯相关说明
----------------机械手运动------- --常用指令:MovP弧线运动、MovL直线运动 MovP(1) --弧线轨迹运动到一号点 MovP(2) --弧线轨迹运动到二号点 MovL(1) --直线轨迹运动到一号点 MovL(2) --直线轨迹运…...
Visual Studio Code 配置 C/C++ 开发环境的最佳实践(VSCode + Clangd + CMake)
Visual Studio Code 配置 C/C 开发环境的最佳实践(VSCode Clangd CMake) 知乎原文参考地址1 与 VSCode 官方文档配置 相比拥有的优势 Clangd 具有更优秀的性能,微软官方 Cpptools 的代码提示功能有明显延迟Clangd 提供更精准的「转到定义」、「重命名符号」、「…...

年产200万件的超级工厂投产!巨头「闭环」汽车电子全产业链
随着汽车电动化程度的提升,汽车电子部件占整车成本比重逐步升高,已经从2012年的25%上升到2021年的55%。 且汽车电子电气架构向整车集中演进,智能汽车已经进入了软件及数据定义时代,底层硬件打破了过去几十年围绕特定应用不断增加…...

智能穿戴AR眼镜主板方案定制_MTK平台AR智能眼镜PCB板开发
AR智能眼镜,是采用了多种技术实现增强现实效果,是将虚拟信息和现实场景相结合的智能设备。 AR智能眼镜硬件上,包括多个传感器、显示装置和处理器等。其中,传感器用于捕捉用户的动作和环境信息,如摄像头、陀螺仪、加速…...

【入门Flink】- 11Flink实现动态TopN
基本处理函数(ProcessFunction) stream.process(new MyProcessFunction())方法需要传入一个 ProcessFunction 作为参数,ProcessFunction 不是接口 , 而是一个抽象类 ,继承了AbstractRichFunction,所有的处…...

现在做跨境电商还需要全球代理IP吗?全球代理IP哪家靠谱?
随着全球互联网的发展,电商平台的发展和跨境贸易的便利化,跨境电商在过去几年中也一直呈现增长趋势,吸引了越来越多的企业和个体创业者入行。 然而,行业竞争也在不断加剧,跨境电商面临更多的越来越多的挑战࿰…...
微服务的常用组件
1、注册中心组件 Eureka、Nacos、Zookeeper、Consul 2、负载均衡组件 Ribbon 3、远程调用组件 OpenFeign 4、网关组件 Zuul、Gateway 5、服务保护组件 Hystrix、Sentinel 6、服务配置管理组件 SpringCloudConfig、Nacos、Apollo(阿波罗)配置中…...

Android问题笔记四十五:解决SeekBar操作thumb周围产生的圆形阴影/灰色阴影/白色圆圈的解决办法
点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC 👉关于作者 专…...
AI从入门到精通,什么是LLMs大型语言模型?
大型语言模型是指由大量文本数据训练而成的自然语言处理模型,它可以生成高质量的文本内容,并能够理解和回答人类提出的问题。 这种模型通常基于深度学习技术,如循环神经网络(RNN)或变换器(Transformer&…...
优测云测试平台 | 有效的单元测试(下)
接着上一篇内容,我们继续~ 四、测试的目标之三:快速反馈 测试的快速反馈有两个方面的含义: 1.测试运行要快速出结果。 2.当测试失败时,要能快速定位失败原因。 测试运行效率决定了开发的工作周期运转的快慢。在理想的 TDD 模型中&#x…...

CUDA安装
在cmd中输入nvidia-smi。显示CUDA Version:12.3,所以只能下载小于等于12.3的版本。如下图: 进这个网址:https://developer.nvidia.com/cuda-toolkit-archive 选择一个版本下载。 选择完后之后这样选择: 最后点击下载即…...
【XTDrone Ubuntu18.04】XTDrone + Ubuntu18.04 + PX4 安装过程
重新配置所有的软件 卸载之前安装的ROS GAZEBO 记得把/home下的.ros和.gazebo也删除,删就删干净 参考链接:ROS的卸载与安装 血泪总结!亲测有效 卸载ROS方法 正式安装 安装依赖 sudo apt install ninja-build exiftool ninja-build protobuf…...

网站使用什么协议比较好
网站协议大多数使用HTTP和HTTPS HTTP协议,超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议。 HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议&…...
18. 机器学习——集成学习
机器学习面试题汇总与解析——集成学习 本章讲解知识点 什么是集成学习AdaBoost梯度提升树(Gradient Boosting Decision Tree, GBDT)随机森林(Random Forest,简称RF)XGBoostLightGBM本专栏适合于Python已经入门的学生或人士,有一定的编程基础。 本专栏适合于算法工程师、机器…...

SimaPro生命周期评估建模与碳足迹分析流程
SimaPro以系统和透明的方式轻松建模和分析复杂的生命周期,通过确定供应链中每个环节的热点,从原材料的提取到制造,分销,使用和处置,衡量所有生命周期阶段的产品和服务对环境的影响。SimaPro是过去25年评估生命周期的最…...
我的项目分享(不喜勿喷)
我要分享的项目是大喇叭C2C电商平台系统,一个面向移动端的电子商务平台,为个体消费者和商家提供直接交易和沟通的便利,丰富了人们的生活。 主要功能模块: 该项目的主要功能包括: 1. 用户注册功能:使用正则…...

PyTorch:张量与矩阵
PyTorch 是一个基于 Python 的科学计算包,专门针对深度学习研究,提供了丰富的工具和库。在 PyTorch 中,张量(tensor)是深度学习的核心数据结构,它可以看作是可以进行自动微分的多维数组。张量不仅可以代表标…...

传统广电媒体为何选择上云?有何优势?
随着现在互联网和科技的发展,现在更多的行业都搭上了科技这辆快车快速的完成了转型,那么在传统的广电媒资行业他们目前有哪些痛点呢?传统广电媒体转型发展现状是什么?企业如何数字化转型?企业上云的优势有哪些…...

系列十、堆参数调优
一、堆内存调优参数 -Xms堆空间的最小值,默认为物理内存的1/64-Xmx堆空间的最大值,默认为物理内存的1/4-XX:PrintGCDetails输出详细的GC处理日志 二、获取堆内存的默认物理内存 /*** Author : 一叶浮萍归大海* Date: 2023/11/16 14:50* Description: 获…...
sqlite3简单使用
为什么要使用sqlite3? sqlite3轻量简介,无需单独的数据库服务,只需访问磁盘上的.db的文件。在某些情况下很有用。 下面是一些简单的使用代码: import sqlite3 from uuid import uuid1# 连接数据库文件,如果不存在会创建 with…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...