虛擬世界 研究報告

模擬軟體達成目的

  • 設計評估
    • 產線初期規劃,評估不同的建議性方案
  • 分析
    • 加工模擬,路徑分析,修正,可達性分析
  • 預測
    • 用來預期未來某一時段可能發生的狀況以作為決策參考
  • 驗證
    • 用以驗證數學模式所提供的分析或數值解
  • 解說
    • 用來定義詮釋一個系統行為
  • 教學培訓
    • 無經驗的使用者避免操措失誤造成為害

工業用手臂模擬軟體分類

在目前接觸的模擬軟體中,以普遍性最高,最容易取得的開源模擬軟體大多都是偏向通用型的模擬軟體,以滿足學界或是自造者完成自造機器人模擬,或一般的物理模擬為目的,如Gazebo,Rviz,此類軟體彈性太高,導致設定或選項過多,若要面向客戶,設定會過於繁瑣,並且在專用領域環境更大的比例在Windows平台,依照Gazebo官方建議需要使用30GB的容量,在Windows執行效率上可能遠差於在Windows上開發的軟體.

digraph hierarchy {

                nodesep=1.0 
                
                node [fontname=Courier,shape=box] 
                edge [style=dashed] 
                模擬軟體->{通用模擬 工業模擬 其他功能模擬}
                通用模擬->{Gazebo Rviz}
                工業模擬->{工作模擬 工廠模擬}
                工作模擬->{RobotMaster RoboDK}
                工廠模擬->{"Visual Components" Flexsim}
                //{rank=same;aaa bbb} 
}

在工業機器手臂應用上又依主要功能可以分為,工作模擬,以及工廠模擬兩類,工作模擬主要以手臂為主,以加工為目的,像RobotMaster或RoboDK,有的甚至只能匯入一隻手臂作加工,另一類工廠模擬主要有大量的手臂以及工件,主要以相互關係作產線的示意,主要有 Visual Components 和 Flexsim.

所有軟體都會以一種分類為主要目的,但很成熟的軟體會想要補足另外一塊,例如主要是CAM的軟體也能夠達到簡單的產線模擬,但是在功能行上還是很容易區分,在開發上也必須有所區分.

在開發上工作模擬著重於軌跡的產生以及各種加工模式或路徑的多像性,工廠模擬架構相對複雜,主要在各個物件的主動事件以及被動事件,開發的重點方向差異甚大.

以Google圖片搜尋示意工作模擬 關鍵字 RobotMaster

以Google圖片搜尋示意工廠模擬 關鍵字 Visual Components

工作模擬軟體

RobotMaster
RobotArt
RobotWorks
RoboMOVE
RoboDK

工廠模擬軟體

Visual Components
V-REP
Flexsim
ROBCAD

CAD編輯器

Rhinoceros $995
SolidWorks $3,995
Inventor $7,995

物理引擎

Open Dynamics Engine (ODE)
Bullet
Simbody
Dynamic Animation and Robotics Toolkit (DART)


3D框架 API

API功能分析

Gazebo api
Rhino
SolidWorks

這麼多現有的軟體還要開發什麼

參考架構
http://library.isr.ist.utl.pt/docs/roswiki/gazebo(2f)Version_1(2e)0_Design_Specification.html

運作參考架構
http://sdk.rethinkrobotics.com/wiki/Simulator_Architecture

開發計畫

  1. 調查各家手臂應用模擬軟體,規模、技術、平台以及功能
  2. 研究使用範例影片(in progress)
  3. 研究平台API支援功能及提他技術需求
  4. 以技術可行性評估需求及里程碑
  5. 架構設計

開發項目

  • 必須開發
    • 插補器

技術盤點

  • 離散事件系統
    離散事件系統是基於多個物件間觸發事件交互作用的實作,在多個物件間主動及被動物件會在不同狀態被觸發並依照時間進行變化,在多個物件模擬上相當適合使用此框架.
    • 離散事件系統的組成

離散事件系統的組成
  離散事件系統一般由以下六個基本要素組成:

(1)實體。實體一般指系統所研究的對象。用系統術語說,它是系統邊界內的對象,系統中流動的或活動的元素都可以稱為實體。

(2)事件。事件就是引起系統狀態發生變化的行為。從某種意義上說,離散系統是由事件來驅動的。

(3)活動。活動在離散事件系統中,通常用來表示兩個可以區分的事件之間的過程,標誌著系統狀態的轉移。

(4)進程。進程由若幹個有序事件及若幹個有序活動組成,一個進程描述了它所包括的事件及活動之間的邏輯關係及時序關係。

(5)模擬時鐘。它用來表示模擬時問的變化。模擬時鐘與實際時鐘的區別在於:前者是離散的,而後者是連續的。由於模擬實質上是對系統狀態在一定時間序列下的動態描述,因此,模擬時鐘一般是模擬的主要自變數。

(6)統計計數器。離散事件動態系統的狀態隨著事件的不斷發生呈現出動態變化,這種變化是隨機的,某一次模擬運行得到的狀態變化過程只不過是隨機過程中的一次取樣,只有經過多次統計得到的模擬輸出統計結果才有意義。

  • 離散事件系統的模擬方法

離散事件系統的模擬方法
  離散事件系統模擬,實質上是對那些由隨機系統定義的,用數值方式或邏輯方式描述的動態模型的處理過程。離散事件系統模擬方法可分為兩種:

(1)面向過程的離散事件系統模擬。面向過程的模擬方法主要研究模擬過程中發生的事件以及模型中實體的活動。這些事件或活動的發生是有順序的,而模擬時鐘的推進正是依賴於這些事件和活動的發生順序。在當前模擬時刻,模擬進程需要判斷下一個事件發生的時刻,或者判斷觸發實體活動開始和停止的條件是否滿足,在處理完當前模擬時刻系統狀態變化操作後,將模擬時鐘推進到下一事件發生時刻或下一個最早的活動開始或停止時刻。模擬進程不斷按事件發生時間排列事件順序,並處理系統狀態變化的過程。

(2)面向對象的離散事件系統模擬。在面向對象的模擬中,組成系統的實體用對象來描述。對象有三個基本描述部分,即屬性、活動和消息。每個對象都是一個封裝了對象的屬性及對象狀態變化操作的自主模塊,對象之間靠消息傳遞來建立聯繫以協調活動。對象內部不僅封裝了對象的屬性,還封裝了描述對象運動及變化規律的內部和外部轉換函數,這些函數以消息或時間來激活,消息和活動可以同時產生,在滿足一定條件時產生相應的活動。

resource

常用機器人離線編程軟件技術評測
機器人焊接系統離線編程實例研究
Most Advanced Robotics Simulation Software Overview
清大開放式課程 系統模擬Flexsim
Wiki Robotics simulator
Wiki Robot Software
MBAlib離散事件系統
清大工工系統模擬課程
Wiki Comparison of CAD editors

keyword

urdf sdf VR

724

Why and when should you use hoops 3d graphics?
Visual components使用的引擎 HOOPS AutoDesk

What is the best way to have realtime 3D rendering in an engineering application?

factory floor simulation

List of 3D graphics libraries
低階引擎 OpenGL DirectX
高階引擎 Gazebo用OGRE Visual Conponents(AutoDesk)用HOOPS 3D Graphics System

key:simulation robot 3d engine CAD

原則

低界面相依性

Show Comments