设置信号绑定

导入模型与约束及自定义运动组件教程已经介绍了如何导入模型并自动绑定运动约束。 接下来我们将介绍如何将导入的模型与信号进行绑定

添加信号服务器

示例场景的机械臂信号储存在OPCUA服务器上。按照以下步骤添加OPCUA服务器

从UMT Menu 打开 Signal/Manager

添加OPCUA服务器并配置

点击+ Add按钮并选择OPCUAServer,随后将弹出OPCUA服务区配置界面如下图

Endpoint url填入机械臂信号的OPCUA服务器 opc.tcp://1.117.47.96:62541/SampleServer

完成配置信息后,点击Connect按钮开始连接。

连接成功后可以看到Status 变为Connected。OPCUA服务器上发布的信号将出现在浏览框,用户在可在浏览框中浏览信号。 勾选Connect On Play

Connect On Play该选项被勾选时,该服务器将会在Unity切换到Runtime模式时自动连接。 否则则需要手动点击Connect按钮

订阅机械臂信号

如下图创建一个订阅组名为RobotArm

如图找到所选信号配合使用鼠标左键配合Shift, Ctrl进行多选,然后右击鼠标添加订阅到对应订阅组中

订阅完成的信号将出现在Manager右侧区域如下图

订阅信号类型转换

接收到的机械臂信号类型是长度为2的Byte Array(16bit) 我们首先通过ReinterpretAs栏将其转换对应的Int16类型

生成SystemGraph节点

点击Sync按钮

创建SystemGraph图表并添加信号节点

如图创建新的SG图表并将新建的图表拖入Hierarchy

打开图表,点击鼠标右键,选择Create Node并选择ArmJoint(订阅组名称)

添加运动组件到SG图表

选择机械臂模型,右键打开SG子图表生成窗口并将根SG图表对应GameObject拖入到指定区域并点击Generate

选择传送带模型并右键选择打开SG子图表生成窗口并将根SG图表对应GameObject拖入到指定区域并点击Generate

完成以上步骤SG图表将如下图所示

信号绑定

信号与孪生体的对应关系如下表

信号

孪生体

ns=2;s=169.254.200.200_5020/InputRegisters_0_1

1-Base_NiryoOne_V2.0-1 - Wheel Joint

ns=2;s=169.254.200.200_5020/InputRegisters_1_1

2-Shoulder_NiryoOne_V2.0-2 - Wheel Joint

ns=2;s=169.254.200.200_5020/InputRegisters_2_1

3-Arm_NiryoOne_V2.0-4 - Wheel Joint

ns=2;s=169.254.200.200_5020/InputRegisters_3_1

4-Base_NiryoOne_V2.0-4 - Wheel Joint

ns=2;s=169.254.200.200_5020/InputRegisters_4_1

5-Forearm_NiryoOne_V2.0-3 - Wheel Joint

ns=2;s=169.254.200.200_5020/InputRegisters_5_1

6-Wrist_NiryoOne_V2.0-4 - Wheel Joint

ns=2;s=169.254.200.200_5020/InputRegisters_500_1

Gripper

ns=2;s=169.254.200.200_5020/InputRegisters_531_1

BeltSurface

对于机械轴信号ns=2;s=169.254.200.200_5020/InputRegisters_[0-5]_1,收到的信号单位为信号mrad,我们需要转换为degree(用float表示)

对于夹爪信号ns=2;s=169.254.200.200_5020/InputRegisters_500_1和传送带ns=2;s=169.254.200.200_5020/InputRegisters_531_1,我们需要将Int16转化为Boolean, 夹爪信号代表是否打开,传送带信号待变是否运转

如图所示连接信号到对应端口

运行

按照相同步骤完成其余5个信号的绑定后,点击Play按钮切换Unity到Play模式,将能看到机械臂在信号的驱动下运动起来

Last updated