MATLAB与Robotstudio联合仿真 stocket通信

这篇具有很好参考价值的文章主要介绍了MATLAB与Robotstudio联合仿真 stocket通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

tmd网上有关matlab与robotstudio stocket通信的内容太少了,索性自己写个文章,免得后来人浪费时间。

本文代码参考:http://t.csdn.cn/02UkD

感谢大佬的代码。stocket通信的前置条件也可以参考上面链接。

matlab与robotstudio通信分为两部分代码,matlab作为服务器端,发送位置数据给作为服务器端的robotstudio。首先介绍robotstudio端的代码:

这是一个根据matlab发送来的数据,以p10点为基准移动机器人的代码。matlab发送的是p10点xyz轴方向上的偏移量。

MODULE moudle1

!define variables定义变量

VAR socketdev server;

VAR socketdev client;

VAR string message;

VAR string string1:="";

VAR string string2{3}:=["","",""];

VAR num pass:=0;

VAR num X:=0;

VAR num Y:=0;

VAR num Rz:=0;

VAR bool flag1:=FALSE;

VAR rawbytes data;

!定义一个p10点

CONST robtarget p10:=[[0,0,23.72],[0.00796547,0.908649,0.417482,0.0017992],[0,-1,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

!定义工具数据

TASK PERS tooldata toolxi:=[TRUE,[[0,0,160],[1,0,0,0]],[1,[1,0,1],[1,0,0,0],0,0,0]];

PROC main()

a:

!create communication建立通信

SocketCreate server;

SocketBind server,"127.0.0.1",55000;

SocketListen server;

SocketAccept server,client;

!send a meassage to the client

SocketSend client,\Str:="Hello client";

!receive a message from the client

SocketReceive client,\Str:=string1;

UnpackRawBytes data ,1,message,\ASCII:=16;

!close cmmunication

SocketClose server;

TPErase;

TPWrite string1;

WaitTime 4;

!关键部分:取接收字段的第1位赋值给‘pass’,第2位向后取8个数赋值给x,y

string2{1}:=StrPart(string1,1,1);

string2{2}:=StrPart(string1,2,8);

string2{3}:=StrPart(string1,2,8);

flag1:=StrToVal(string2{1},pass);

flag1:=StrToVal(string2{2},X);

flag1:=StrToVal(string2{3},Y);

!根据pass值是否为‘1’来判断是否执行运动

IF pass = 1 AND flag1 THEN

!移动到距离p10点x轴方向xmm的位置,y轴方向ymm的位置,z轴方向15mm的位置

MoveL Offs(p10,X,Y,15), v1000, fine, toolxi;

MoveL Offs(p10,X,Y,0), v1000, fine, toolxi;

WaitTime 0.5;

MoveL Offs(p10,X,Y,15), v1000, z50, toolxi;

ELSE

TPWrite "failed to get the data";

waittime 2;

GOTO a;

ENDIF

SocketClose server;
SocketClose client;
ENDPROC


ENDMODULE

程序中'pass'变量用于判断发来的数据是否给轴偏移量赋值,因此发来的数据必须用'1'开头。

string2{2}:=StrPart(string1,2,8);表示取字段的2位之后的8个数,赋值给string2{2},该变量作为轴的偏移量不应太大,否则超出机器人移动范围,故2-9位取值应为‘00000300’表示偏移量为300mm。机器人移动到距离p10点x轴方向300mm,y轴300mm,z轴15mm的位置。

接下来是matlab代码:表示发送字符'100000300'给robotstudio。

%%socket communication with robotstudio
 
tc=tcpip('127.0.0.1',55000);%若使用matlab2021a以上的版本,将tcpip改为tcpclient
 
%open the communication 
 
fopen(tc);
 
%recive a message from the robotstudio
 
message=fread(tc);
 
%send a message to the robotstudio
 
fwrite(tc,'100000300');

进行通信时,首先运行robotstudio端代码,

出现下面提示后启动matlab端代码:

MATLAB与Robotstudio联合仿真 stocket通信

启动matlab后,打开示教器出现以下提示,表示已接受到信息。

MATLAB与Robotstudio联合仿真 stocket通信

 机器人运动到如图所示的位置。MATLAB与Robotstudio联合仿真 stocket通信

 代码不是最终版本,一次通信只能移动一次,接下来需要连续不断得发送信息给机器人,实现连续的运动。文章来源地址https://www.toymoban.com/news/detail-424323.html

到了这里,关于MATLAB与Robotstudio联合仿真 stocket通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB与ROS联合仿真(慕羽☆)全套开源资料索引

       自2021年9月份开始进行MATLAB与ROS联合仿真相关的研究,至2021年12月份研究基本上结束,至今,已经近两年时间,期间曾收到过很多小伙伴的私信,想让我出点教程,期间我也曾多次想要抽点时间出教程,但很遗憾,总会被各种各样的事情顶掉,一拖再拖,就到了现在。

    2024年02月15日
    浏览(47)
  • MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(下)

       本篇文章主要介绍在安装完ROS后,在进行MATLAB与ROS联合仿真之前,需要进行的一些环境搭建以及准备工作,主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工具安装(选做) 六部分。

    2024年02月16日
    浏览(38)
  • UE4与MATLAB联合仿真环境配置中遇到的问题及解决办法

    我在配置UE4与MATLAB联合仿真的过程遇到一些问题。这些问题在MATLAB的社区也有人问,一方面是对MATLAB的帮助文档理解错误,另一方面是自己操作的问题,毕竟帮助文档更多的是文字描述,对于我这样的新手难免配置错误。 软件版本:UE4.27.2、MATLAB2023a、Visual Studio2022 1. The fol

    2024年02月05日
    浏览(38)
  • 基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

    微信公众号上线,搜索公众号 小灰灰的FPGA ,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 源码工程链接 https://download.csdn.net/download/m0_50111463/88529260

    2024年02月10日
    浏览(37)
  • ABB-IRB-1200运动学分析MATLAB RVC工具分析+Simulink-Adams联合仿真

            此处是基于MATLAB RVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。  图1. ABB IRB 1200 尺寸参数示意图 ABB IRB 1200提供的两种型号广泛

    2024年02月05日
    浏览(45)
  • 通信原理仿真100例 | 多普勒频移的matlab仿真

    下面是一份简单的MATLAB代码,可以用来模拟多普勒扩展现象。该代码使用了一个具有随机相位的复指数信号作为原始信号,将其通过一个多普勒频移的信道进行传输,并对接收到的信号进行频谱分析,以观察多普勒扩展的效果。 在上面的代码中,我们首先设置了一些参数,包

    2023年04月10日
    浏览(23)
  • RobotStudio教程:ABB机器人拆垛与码垛应用示教编程与虚拟仿真

    目录 任务描述 机器人拆垛与码垛工作站创建 机器人拆垛与码垛工作流程分析 机器人位置偏移函数介绍 机器人拆垛与码垛应用示教编程 机器人拆垛与码垛虚拟仿真 在RobotStudio软件中创建ABB机器人拆垛与码垛工作站,并示教机器人拆垛与码垛程序,实现机器人拆垛与码垛应用

    2023年04月16日
    浏览(38)
  • 基于OFDM的水下图像传输通信系统matlab仿真

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 matlab2022a        基于OFDM的水下图像传输通信系统是一种用于在水下环境中传输图像数据的通信系统。它采用了OFDM(Orthogonal Frequency Division Multiplexing)技术,这种技术在水下

    2024年02月10日
    浏览(27)
  • OFDM通信系统的LS信道估计均衡算法matlab仿真

    目录 一、理论基础 二、核心程序 三、仿真结论       OFDM主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰(ISI) 。

    2024年02月06日
    浏览(27)
  • 移动通信系统的LMS自适应波束成形技术matlab仿真

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 matlab2022a         在移动通信系统中,由于信号传播环境的复杂性,通信信号受到多径效应、干扰和噪声的影响,导致信号质量下降。自适应波束成形技术可以在多天线接收端

    2024年02月12日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包