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

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哪家靠谱?

随着全球互联网的发展,电商平台的发展和跨境贸易的便利化,跨境电商在过去几年中也一直呈现增长趋势,吸引了越来越多的企业和个体创业者入行。 然而,行业竞争也在不断加剧,跨境电商面临更多的越来越多的挑战&#xff0…...

微服务的常用组件

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)是深度学习的核心数据结构,它可以看作是可以进行自动微分的多维数组。张量不仅可以代表标…...

传统广电媒体为何选择上云?有何优势?

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

系列十、堆参数调优

一、堆内存调优参数 -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…...