URSim+Unity联合仿真以及Socket通信

1 篇文章 0 订阅

本文是一个GitHub上的开源项目,记录一下详细的实现过程。

首先需要下载安装VMware,官方链接Download VMware Workstation Pro。URSim官方链接UR Download | Support Site | Universal Robots,安装教程网上很多,随便找一个就可以。

我的URSIm版本是3.13.1.10297,安装好打开以后需要配置网络。点击Player-管理-虚拟机设置,然后选择网络适配器,网络连接里面设置为VMnet8(NAT 模式)。

 接下来在 Windows 中打开网络适配器的属性并设置 VMnet8 适配器的静态 IP 地址。首先确定机械臂的IP,我的是192.168.235.128,所以将网络适配器中的VMnet8的IPv4地址设为静态IP:192.168.235.1。

 

 

接下来还需要编写一段简单的UR机械臂代码,将UR作为客户端,获取关节角度,并通过socket传给Unity中的服务端,代码如下。IP地址和端口需要改成自己的。

Program
  BeforeStart
    Script: JointFunction.script
  Robot Program
    MoveJ
      Waypoint_1
      Waypoint_2
  Thread_1
    Loop sockon≟ True 
      getjointAngles()
      Wait: 0.05
    If sockon≟ False 
      socket_close("sock1")
      sockon=socket_open("192.168.235.1",5000)
      Wait: 0.01

关节函数脚本:

global angles=[0,0,0,0,0,0]
global angles_send=""

sockon=socket_open("192.168.102.1",5000,"sock1")
def getjointAngles():
 angles=get_actual_joint_positions()
 angles_send=str_cat(angles[0],";")
 angles_send=str_cat(angles_send,angles[1])
 angles_send=str_cat(angles_send,";")
 angles_send=str_cat(angles_send,angles[2])
 angles_send=str_cat(angles_send,";")
 angles_send=str_cat(angles_send,angles[3])
 angles_send=str_cat(angles_send,";")
 angles_send=str_cat(angles_send,angles[4])
 angles_send=str_cat(angles_send,";")
 angles_send=str_cat(angles_send,angles[5])
 sockon= socket_send_line(angles_send)
   		
end

这样就可以与Unity进行通信了。

 运行程序之后,还需要将机械臂移动到初始点,选择自动即可,然后再点运行。

然后打开Unity项目,可以在GitHub上下载,也可以下载我上传的资源https://download.csdn.net/download/sinat_32804425/70787548。我用的是unity2020,项目界面如下。

 点击运行,输入IP地址和端口号,IP地址可以随意输入,端口号是5000,再点击Start。如果遇到问题可以修改UR5Controller的代码,如下图所示。

 最终的效果就是虚拟模型可以完美的跟踪URSIm中的机械臂运动,由于没有制作动图,这里就先截一张效果图吧

 完结撒花!

原链接

https://github.com/zainmehdi/UR-Simulation-in-Unity-Hardware-in-the-loop-Animation-of-Real-Robot

  • 8
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
### 回答1: URSIM是一款用于模拟和调试UR机器人程序的软件。PLC通讯是指URSIM与外部PLC设备之间的通信URSIM可以通过Modbus协议与外部PLC设备进行通信。Modbus是一种通用的开放式通信协议,常用于工业自动化领域。通过Modbus协议,URSIM可以与PLC设备交换数据和控制指令。 在URSIM中,用户可以在虚拟环境中编写和测试与PLC设备通信的程序。用户可以设置和配置与PLC设备通信的参数,如通信端口、波特率等。还可以通过编写适配器程序,将URSIM与具体的PLC设备连接起来。 通过URSIM与PLC设备的通信,用户可以实现诸如数据传输、信号交换、控制指令等功能。例如,用户可以将PLC设备的数据读取到UR机器人的程序中,以实现数据的实时监控和分析;用户还可以通过UR机器人发送指令给PLC设备,实现对设备的控制和操作。 总之,URSIM提供了与外部PLC设备通信的能力,通过这种通信,用户可以实现UR机器人与工厂自动化系统的无缝连接和集成,进一步提高生产效率和智能化水平。 ### 回答2: URSIM是一个用于模拟和测试Universal Robots UR机器人的仿真软件。在该软件中,UR机器人的PLC通信是指UR机器人与外部设备或系统之间的通信方式。 UR机器人的PLC通信可以通过以太网或Profinet协议进行。通过这种通信方式,UR机器人可以与其他设备共享数据、接收指令并向外部设备发送信号。 在URSIM中,用户可以通过配置PLC通信参数来实现与外部设备的通信。用户可以设置IP地址、端口号、通信协议等参数。要确保与外部设备通信的正确性,用户需要提前了解外部设备的通信设置,并与其相匹配地进行配置。 使用URSIM进行PLC通信的好处是可以在仿真环境中测试通信功能,而不需要实际连接外部设备。用户可以模拟发送指令、接收信号,并观察机器人的响应。这有助于在实际应用中避免通信问题和故障。 总之,URSIM的PLC通信功能使得UR机器人可以与外部设备进行数据共享和指令交互。通过优化通信设置,用户可以实现准确、稳定的通信,从而提高UR机器人在各种应用场景中的工作效率和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FuYongqing0412

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值