|
|
CoppeliaSim軟件概述
在機(jī)器人學(xué),自動(dòng)化控制和虛擬現(xiàn)實(shí)等領(lǐng)域,CoppeliaSim(原V-rep)是一款備受推崇的先進(jìn)的強(qiáng)大的跨平臺(tái)的具有集成開發(fā)環(huán)境的機(jī)器人仿真模擬器軟件。被稱為機(jī)器人仿真模擬“瑞士”。
CoppeliaSim基于分布式控制體系結(jié)構(gòu):每個(gè)對(duì)象/模型可以通過嵌入式腳本、插件、ROS或BlueZero節(jié)點(diǎn)、遠(yuǎn)程API客戶端或定制解決方案進(jìn)行單獨(dú)控制。這使得CoppeliaSim非常通用,是多機(jī)器人應(yīng)用的理想選擇。控制器可以用C/C++、Python、java、Lua、MATLAB來編寫。
CoppeliaSim旨在為機(jī)器人研究和開發(fā)提供仿真環(huán)境。它可以幫助用戶進(jìn)行機(jī)器人建模、編程和仿真,并提供了豐富的工具和庫(kù),如機(jī)器人運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)模型等。CoppeliaSim支持多種編程語(yǔ)言,如Python、C++、Lua等,并具有易于使用的GUI界面,使得用戶可以輕松地創(chuàng)建、控制和監(jiān)視機(jī)器人仿真。
CoppeliaSim 使用運(yùn)動(dòng)學(xué)引擎進(jìn)行正向和反向運(yùn)動(dòng)學(xué)計(jì)算,并使用多個(gè)物理模擬庫(kù)(Bullet、ODE、Vortex、Newton Game Dynamics)來執(zhí)行剛體模擬。通過將各種對(duì)象(網(wǎng)格、關(guān)節(jié)、各種傳感器、點(diǎn)云、OC 樹等)組裝成層次結(jié)構(gòu)來構(gòu)建模型和場(chǎng)景。插件提供的附加功能包括:運(yùn)動(dòng)規(guī)劃(通過OMPL)、合成視覺和成像處理(例如通過OpenCV)、碰撞檢測(cè)、最小距離計(jì)算、自定義圖形用戶界面和數(shù)據(jù)可視化(例如通過繪圖)。
相較于在真實(shí)環(huán)境中調(diào)試,利用模擬環(huán)境先進(jìn)行算法調(diào)試,確認(rèn)無誤后再部署到實(shí)體機(jī)器上,不僅提高了安全性,還能顯著加速開發(fā)進(jìn)程。此外,鑒于某些機(jī)器人硬件成本高昂且對(duì)物理環(huán)境要求苛刻,許多科研人員更傾向于采用低成本的方式進(jìn)行訓(xùn)練。因此,機(jī)器人模擬器得以廣泛應(yīng)用。
CoppeliaSim已經(jīng)被廣泛用于快速算法開發(fā)、工廠自動(dòng)化仿真、快速原型和驗(yàn)證、機(jī)器人相關(guān)教育、遠(yuǎn)程監(jiān)控、安全雙重檢查、數(shù)字孿生等。是廣泛用于工業(yè)、教育和研究的機(jī)器人模擬器。
CoppeliaSim體系架構(gòu)
CoppeliaSim 是一個(gè)基于CoppeliaSim庫(kù)的集成應(yīng)用程序,它允許通過算法、系統(tǒng)和配置原型設(shè)計(jì)、運(yùn)動(dòng)學(xué)設(shè)計(jì)和數(shù)字孿生創(chuàng)建等來測(cè)試和驗(yàn)證復(fù)雜的機(jī)器人系統(tǒng)。CoppeliaSim 可以被視為一個(gè)可配置的仿真抽象層,提供了極大的靈活性和敏捷性。
主要功能:
●五種物理引擎:MuJoCo、Bullet、ODE、Vortex和Newton,Drake即將推出
●分布式控制架構(gòu):每個(gè)對(duì)象/模型可以通過嵌入腳本、插件或外部客戶端單獨(dú)控制
●多種編程語(yǔ)言:C/C++、Python、Lua、Java、MATLAB等
●廣泛的功能:動(dòng)力學(xué)、運(yùn)動(dòng)學(xué)、碰撞檢測(cè)、最小距離計(jì)算、體積接近傳感器、力/扭矩傳感器、視覺傳感器、點(diǎn)云、OC樹、圖像處理、路徑規(guī)劃、運(yùn)動(dòng)庫(kù)、自定義用戶界面、廣泛的導(dǎo)入導(dǎo)出功能等
●各種通信接口:ROS/ROS2、ZeroMQ、遠(yuǎn)程API、事件、WebSocket等
●場(chǎng)景和模型在不同平臺(tái)上可移植
體系架構(gòu)概覽圖:
場(chǎng)景/模型/對(duì)象
場(chǎng)景
●包含模型和對(duì)象
● 具有觸發(fā)變更事件的屬性
模型
● 由對(duì)象和其他可能的模型組成
● 具有觸發(fā)變更事件的屬性
對(duì)象
●通過父子關(guān)系連接,可能還通過其他約束條件
● 具有觸發(fā)更改事件的屬性
● 有多種類型:網(wǎng)格、關(guān)節(jié)/電機(jī)、相機(jī)、燈光、參考框架、接近傳感器、視覺傳感器、力傳感器、路徑、圖、點(diǎn)云、八叉樹、腳本對(duì)象
腳本對(duì)象:特殊對(duì)象
●CoppeliaSim仿真分布式控制架構(gòu)的核心
● 可運(yùn)行嵌入式Python或Lua代碼
● 可以使用多線程或非多線程方式運(yùn)行
● 用于控制、定制、接口、監(jiān)控、通信等
屬性和事件
所有內(nèi)部變量或狀態(tài)都可以作為屬性處理:它們可以是各種類型(例如布爾值、整數(shù)、浮點(diǎn)數(shù)、表格、四元數(shù)等),修改它們會(huì)觸發(fā)事件,這些事件可以被腳本、插件和擴(kuò)展程序訂閱。