對機器人工作站進行仿真的時候,往往會有對隨機數的需求,比如使用機器視覺進行機器人位姿引導仿真時,就需要工件的位置進行隨機擺放。針對這種需求,ABB機器人虛擬仿真軟體Robotstudio提供了一個專門用於生成隨機數的Smart組件,即Random子對象組件,它可以在指定的範圍內隨機生成數值。本期,就來為大家介紹一下基於Random子對象組件的工件位置隨機擺放的仿真操作方法。
外圍設備布局
Robotstudio軟體中,利用「建模」菜單欄下的建模功能,分別創建矩形體、圓柱體,並將其擺放到合適位置,所有的零部件的創建均以仿真軟體的世界坐標係為基準,並且角點位置保持空置。
工件擺放與框架創建
首先,在工作檯圓形表面的中心位置處,創建一個坐標框架。然後,再創建一個矩形體,並將其放置到工作檯的圓形表面中心位置處,作為工件。
工件隨機位置擺放Smart組件創建
Robotstudio軟體的「建模」菜單欄下,創建一個空的Smart組件。然後,在其中分別添加1個Timer子對象組件、3個Random子對象組件、2個VectorConverter子對象組件、1個Positioner子對象組件。
其中,Timer是定時器組件,Random是隨機數生成組件,VectorConverter是向量值轉換組件,Positioner是對象定位組件。
Smart組件屬性配置
Timer子對象組件是在仿真時,在指定的時間脈衝間隔輸出一個數字量信號。對其進行屬性配置,設定第一個脈衝之前的時間StartTime為1s,脈衝寬度Interval下設定為1s,設定完成後點擊「Active」,激活定時器組件。
Random子對象組件是在指定的最小值與最大值之間生成一個隨機數。這裡要注意的是:在生成X、Y坐標數據時,數值單位是m;生成繞Z軸旋轉的角度數據時,數值的單位是rad(弧度)。
角度ω與弧度a之間的轉換關係如下:
a=(ω×π)/180
VectorConverter子對象組件用於數值與坐標X、Y、Z向量值之間的轉換,轉換後的向量值為Double類型。此子對象組件屬性保持默認即可。
Positioner子對象組件用於設定對象的位置與姿態。對其進行屬性配置,移動對象Object下選擇要移動的工件,對象移動參考類型Reference下選擇Object,參考對象ReferenceObject下選擇創建好的框架。
Smart組件屬性連結與信號連接
在Smart組件編輯窗口中的「設計」標籤下,按照下圖所示設置子對象組件的屬性連結與信號連接,其中綠色有向線段表明子對象組件之間的信號邏輯關係,棕色有向線段表明子對象組件之間的屬性傳遞關係。
以上設定表明:使用定時器組件Timer定時觸發隨機數生成組件Random生成隨機數,同時觸發對象定位組件Positioner進行對象定位。
Random隨機生成對象的X、Y坐標數值與Rz旋轉角度數值,然後將這些隨機數值分別傳遞給向量值轉換組件VectorConverter,進行數值向量化轉換,最後將轉換後的向量值傳遞給對象定位組件Positioner實現對象定位操作。
仿真運行
對創建的工件位置隨機生成項目進行仿真運行測試,可以看到工件在工作檯面上指定的區域內進行隨機位置與姿態的切換,並且切換時間間隔為1s,仿真效果如下動態圖所示。
The End
上一篇:ABB機器人:基於現場通信方式向西門子PLC發送實時位置數據的方法