埃尔法哥哥Robotstudio软件:基于Random组件的工件位置随机生成


Robotstudio软件:基于Random组件的工件位置随机生成
对机器人工作站进行仿真的时候 , 往往会有对随机数的需求 , 比如使用机器视觉进行机器人位姿引导仿真时 , 就需要工件的位置进行随机摆放 。 针对这种需求 , ABB机器人虚拟仿真软件Robotstudio提供了一个专门用于生成随机数的Smart组件 , 即Random子对象组件 , 它可以在指定的范围内随机生成数值 。 本期 , 就来为大家介绍一下基于Random子对象组件的工件位置随机摆放的仿真操作方法 。
外围设备布局
Robotstudio软件中 , 利用“建模”菜单栏下的建模功能 , 分别创建矩形体、圆柱体 , 并将其摆放到合适位置 , 所有的零部件的创建均以仿真软件的世界坐标系为基准 , 并且角点位置保持空置 。
工件摆放与框架创建
首先 , 在工作台圆形表面的中心位置处 , 创建一个坐标框架 。 然后 , 再创建一个矩形体 , 并将其放置到工作台的圆形表面中心位置处 , 作为工件 。

埃尔法哥哥Robotstudio软件:基于Random组件的工件位置随机生成
本文插图

工件随机位置摆放Smart组件创建
Robotstudio软件的“建模”菜单栏下 , 创建一个空的Smart组件 。 然后 , 在其中分别添加1个Timer子对象组件、3个Random子对象组件、2个VectorConverter子对象组件、1个Positioner子对象组件 。

埃尔法哥哥Robotstudio软件:基于Random组件的工件位置随机生成
本文插图

其中 , Timer是定时器组件 , Random是随机数生成组件 , VectorConverter是向量值转换组件 , Positioner是对象定位组件 。
Smart组件属性配置
Timer子对象组件是在仿真时 , 在指定的时间脉冲间隔输出一个数字量信号 。 对其进行属性配置 , 设定第一个脉冲之前的时间StartTime为1s , 脉冲宽度Interval下设定为1s , 设定完成后点击“Active” , 激活定时器组件 。

埃尔法哥哥Robotstudio软件:基于Random组件的工件位置随机生成
本文插图
【埃尔法哥哥Robotstudio软件:基于Random组件的工件位置随机生成】

Random子对象组件是在指定的最小值与最大值之间生成一个随机数 。 这里要注意的是:在生成X、Y坐标数据时 , 数值单位是m;生成绕Z轴旋转的角度数据时 , 数值的单位是rad(弧度) 。

埃尔法哥哥Robotstudio软件:基于Random组件的工件位置随机生成
本文插图

角度ω与弧度a之间的转换关系如下:
a=(ω×π)/180
VectorConverter子对象组件用于数值与坐标X、Y、Z向量值之间的转换 , 转换后的向量值为Double类型 。 此子对象组件属性保持默认即可 。
Positioner子对象组件用于设定对象的位置与姿态 。 对其进行属性配置 , 移动对象Object下选择要移动的工件 , 对象移动参考类型Reference下选择Object , 参考对象ReferenceObject下选择创建好的框架 。

埃尔法哥哥Robotstudio软件:基于Random组件的工件位置随机生成
本文插图

Smart组件属性连结与信号连接
在Smart组件编辑窗口中的“设计”标签下 , 按照下图所示设置子对象组件的属性连结与信号连接 , 其中绿色有向线段表明子对象组件之间的信号逻辑关系 , 棕色有向线段表明子对象组件之间的属性传递关系 。

埃尔法哥哥Robotstudio软件:基于Random组件的工件位置随机生成
本文插图

以上设定表明:使用定时器组件Timer定时触发随机数生成组件Random生成随机数 , 同时触发对象定位组件Positioner进行对象定位 。
Random随机生成对象的X、Y坐标数值与Rz旋转角度数值 , 然后将这些随机数值分别传递给向量值转换组件VectorConverter , 进行数值向量化转换 , 最后将转换后的向量值传递给对象定位组件Positioner实现对象定位操作 。


推荐阅读