设置信号绑定
Last updated
Last updated
导入模型与约束及自定义运动组件教程已经介绍了如何导入模型并自动绑定运动约束。 接下来我们将介绍如何将导入的模型与信号进行绑定
示例场景的机械臂信号储存在OPCUA服务器上。按照以下步骤添加OPCUA服务器
Signal/Manager
点击+ 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类型
点击Sync按钮
如图创建新的SG图表并将新建的图表拖入Hierarchy
打开图表,点击鼠标右键,选择Create Node并选择ArmJoint(订阅组名称)
选择机械臂模型,右键打开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模式,将能看到机械臂在信号的驱动下运动起来