V-REP 常規API(在lua腳本中使用的API)---(1)

V-REP API框架

V-REP API框架將V-REP周圍的所有接口分組。 它有4 + 1種不同分類:

Regular API—常規API
The remote API—遠程API
The ROS interfaces—ROS接口
The auxiliary API—輔助API
Other interface—其他接口

可以從仿真器中訪問常規API(例如,從嵌入式腳本,插件,插件或主客戶端應用程序),也可以幾乎任何可能的外部應用程序或硬件訪問遠程API和ROS接口。 (包括真正的機器人,遠程計算機等)。 輔助API本身不是一個接口,而是一個可以嵌入並且可以自行運行的輔助函數集合。 其他接口項將用戶擴展可用接口的所有可能性分組。 下圖說明了各種接口的概述:

在這裏插入圖片描述

Regular API 常規API

常規API

常規API是V-REP API框架的一部分。

常規API由幾百個可以從C / C ++應用程序(插件或主客戶端應用程序)或嵌入式腳本調用的函數組成。 V-REP函數和常量可以通過它們的“sim” - 或“_sim”-prefix(例如simHandleCollision)輕鬆識別。 確保不要將常規API(有時也簡稱爲“API”)與遠程API混淆。

常規API可以通過自定義lua函數,插件或主客戶端應用程序寄存器進行擴展。 可以從“simExt”–prefix中識別自定義lua函數。

進入或來自API的所有單位均以米,千克,秒和弧度或其組合(除非另有明確說明)。 
用戶界面單位以米,千克,秒和度爲單位。

Regular API function list (by category) 常規API函數列表(按類別)

File operations 文件操作

simCloseScene:
關閉當前場景,並切換到另一個打開的場景。 如果沒有其他打開場景,則創建新場景。 另請參見simLoadScene和simSaveScene。

simSaveScene:
保存場景。 任何具有相同名稱的現有文件都將被覆蓋。 另請參見simLoadScene,simCloseScene,simSaveModel和simSaveUI。

simLoadScene:
加載以前保存的場景。 如果當前場景不爲空,則在切換到場景並加載場景之前將創建一個新場景。 另請參見simSaveScene,simLoadModel,simLoadUI,simCloseScene和simSetBoolParameter以及sim_boolparam_scene_and_model_load_messages。

simSaveModel
保存一個模型(一個被標記爲“object is model base”的對象及其層次樹中的所有其他對象)。任何具有相同名稱的現有文件都將被覆蓋。參見simLoadModel、simSaveUI和simSaveScene。

simLoadModel
加載先前保存的模型,並選擇它。還請參見simSaveModel、simLoadUI、simLoadScene和simSetBoolParameter,其中包含sim_param_scene_and_model_load_messages。
simSaveUI
將一個或多個基於OpenGl的自定義UI保存到UI文件(* .ttb文件)中。 任何具有相同名稱的現有文件都將被覆蓋。 另請參見simLoadUI,simSaveModel和simSaveScene。
simLoadUI
加載以前保存的基於OpenGl的自定義UI文件(* .ttb文件)。 另請參見simSaveUI,simLoadModel,simLoadScene和simSetBoolParameter以及sim_boolparam_scene_and_model_load_messages。 在與來自附加組件的UI交互時,您可能必須將屬性標誌sim_ui_property_pauseactive添加到UI,以便在模擬暫停時讓它響應。
simDoesFileExist
指示文件是否存在。
simImportShape
從文件導入形狀(首先導入網格,然後將它們組合/合併爲形狀)。 另見simImportMesh。
simImportMesh
從文件導入網格。 另請參見simExportMesh,simImportShape和simCreateMeshShape
simExportMesh
將網格導出到文件。參見simImportMesh和simGetShapeMesh
simExportIk
導出場景的IK內容。 生成的文件可以與外部IK一起使用,以在外部應用程序中執行IK計算。
simLaunchExecutable
啓動可執行文件。 與os.execute或io.popen類似,但與系統無關。
simFileDialog
打開一個對話框,允許選擇用於保存或加載操作的文件。 另請參見simMsgBox。
simCreateTexture
創建一個平面形狀,使用新的或導入的紋理進行紋理化。 另請參見simGetTextureId,simReadTexture,simWriteTexture和simSetShapeTexture。

General object handle retrieval 一般對象句柄檢索

simGetObjectHandle
遠程API等價:simxGetObjectHandle
RosPlugin API等價:simRosGetObjectHandle

根據名稱檢索對象句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid和simGetObjectUniqueIdentifier。
simGetUIHandle
遠程API等價:simxGetUIHandle
相當於RosPlugin的API:simRosGetUIHandle
檢索基於OpenGl的自定義UI的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。
simGetCollectionHandle
遠程API等價物:simxGetCollectionHandle
相當於RosPlugin的API:simRosGetCollectionHandle
根據名稱檢索集合句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simCreateCollection,simAddObjectToCollection,simGetCollectionObjects和simIsHandleValid。
simGetCollisionHandle
遠程API等價物:simxGetCollisionHandle
相當於RosPlugin的API:simRosGetCollisionHandle
檢索碰撞對象的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。
simGetDistanceHandle
遠程API等價物:simxGetDistanceHandle
相當於RosPlugin的API:simRosGetDistanceHandle
檢索距離對象的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。
simGetMechanismHandle
檢索要由幾何約束求解器求解的機制的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。
simGetIkGroupHandle
檢索IK組的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。
simGetScriptHandle
檢索腳本的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 腳本不直接指定名稱,但如果腳本是子腳本並與場景對象關聯,則腳本名稱是關聯的場景對象的名稱。 另請參見simIsHandleValid。
simIsHandleValid
檢查通用對象句柄是否仍然有效。 當一般對象被銷燬時(例如,以編程方式或通過用戶界面),其相關句柄不再有效,並且在使用時將觸發錯誤。 使用此功能可避免觸發錯誤。 另請參見simGetObjectHandle,simGetUIHandle,simGetCollectionHandle,simGetCollisionHandle,simGetDistanceHandle,simGetMechanismHandle,simGetIkGroupHandle,simGetScriptHandle和simGetObjectUniqueIdentifier
simGetObjectAssociatedWithScript
重新處理腳本附加到的對象的句柄。 另請參見simGetScriptAssociatedWithObject,simGetCustomizationScriptAssociatedWithObject和simAssociateScriptWithObject。
simGetObjects
檢索對象句柄。 在索引從0開始的循環中使用它,並遞增以獲取場景中的所有對象句柄。 另請參見simGetObjectsInTree。
simGetObjectsInTree
檢索給定層次結構樹中的對象句柄。 另請參見simGetObjects。
simGetCollectionObjects
檢索組成給定集合的對象句柄。
simGetNameSuffix
返回對象名稱的名稱後綴(例如“myRobot#42”的名稱後綴爲42),或檢索爲當前腳本或c / c ++ API調用設置的名稱後綴。 另請參見simSetNameSuffix,並閱讀有關訪問常規類型對象的部分。
simSetNameSuffix
設置名稱後綴調整編號(有關詳細信息,請閱讀有關訪問常規類型對象的部分)。在V-REP中,所有對象都由名稱和句柄標識。當一個對象(場景對象或通用類型對象)與子腳本同時被複制時,新創建的對象的名稱將變爲“oldName#0”,如果同一個對象被粘貼另一次,則下一個名稱將是“oldName#1”等

在子腳本中,檢索對象句柄是通過自動將名稱後綴附加到對象名稱來執行的(每個腳本都使用其附加的對象的名稱後綴編號進行初始化)。這允許複製粘貼對象和腳本,而無需手動調整腳本(腳本將根據設置的名稱後綴自動知道他們必須訪問哪個對象)。在腳本中,大多數情況下您不需要設置名稱後綴,但在某些特殊情況下,您可能需要暫時禁用它(例如“myChildScript#42”(其名稱後綴自動設置爲42)將其自身與其附加的機器人(“myRobot#42”)一起復制,現在從“myChildScript#42”中移動“myRobot#43”以避免碰撞。在這種情況下,將名稱後綴設置爲43,移動“myRobot” (使用simGetObjectHandle(“myRobot”)檢索其句柄,然後將後綴設置回42)。在腳本中,simSetNameSuffix命令僅影響當前腳本。

但是,當從腳本外部訪問API時,需要手動調整名稱調整機制(確保在完成檢索句柄後將名稱後綴重置爲其初始狀態)。想象一下,你的場景中有一個名爲“機器人”的機器人。您可以使用simGetObjectHandle(“robot”)從C / C ++應用程序訪問機器人。如果機器人是複製的,第二個機器人的名字將是“機器人#0”,第三個將是“機器人#1”等。從您的C / C ++應用程序中,您現在可以訪問具有相同代碼的所有機器人,您只需需要調整名稱後綴號。例如。 simSetNameSuffix(42),然後simGetObjectHandle(“機器人”)將檢索“機器人#42”的句柄。完成訪問對象後,將名稱後綴編號重置爲-1(simSetNameSuffix(-1))。

將名稱後綴設置爲-1將禁用名稱調整機制(從腳本外部訪問API時的默認值)

另請參見simGetNameSuffix函數。

General functionality handling 一般功能處理

simHandleMainScript
處理(執行)主腳本,即主模擬循環。
simHandleChildScripts
執行位於當前場景層次結構分支中的非線程子腳本。 默認情況下,子腳本將以級聯方式執行,並且只能從主腳本調用此命令,特殊情況除外(在這種情況下還要參考函數調用simSetScriptAttribute(scriptHandle,sim_childscriptattribute_automaticcascadingcalls,false))。
simHandleGeneralCallbackScript
說明調用常規回調腳本。 僅從模擬線程調用此函數,而不是從GUI線程調用。
simLaunchThreadedChildScripts
啓動或重新啓動(如果適當標記)所有線程子腳本。 只應從主腳本調用此命令。 另請參閱以下相關函數:simSwitchThread,simSetThreadSwitchTiming,simSetThreadAutomaticSwitch,simSetThreadIsFree,simSetThreadResumeLocation和simResumeThreads。
simResetScript
重置鏈接到特定腳本的腳本解釋器。

simHandleCollision
處理(檢查碰撞等)已註冊的碰撞對象。 編輯場景時可以註冊碰撞對象。 另請參閱simReadCollision,simResetCollision,simCheckCollision和simCheckCollisionEx。

simResetCollision
清除已註冊碰撞對象的碰撞狀態,顏色,交叉點等。 另見simHandleCollision。

simHandleDistance
處理(測量距離等)已註冊的距離對象。 編輯場景時可以註冊距離對象。 另請參見simReadDistance,simResetDistance和simCheckDistance。

simResetDistance
清除已註冊距離對象的距離狀態,距離段等。 另請參見simHandleDistance。

simHandleMechanism
處理使用幾何約束求解器功能註冊的機制。 編輯場景時可以註冊機制。

simHandleGraph
處理圖形對象(即記錄已註冊數據流的當前值)。 可以在編輯場景時添加/註冊圖形和數據流。 另請參見simResetGraph。

simResetGraph
清除圖形對象(重置其所有數據流)。 另見simHandleGraph。

simHandleIkGroup
處理(求解)已註冊的IK組。 編輯場景時可以註冊IK組。 另請參見simCheckIkGroup,simComputeJacobian和simGenerateIkPath。

simHandleModule
處理插件。 此功能僅適用於Lua API。 其註冊的自定義Lua函數旁邊的插件可能需要定期執行操作,而不是從線程腳本調用時(例如,用於同步目的)。 他們可以在調用simHandleModule時執行此操作(但是之前應該調用simOpenModule)。 有關更多詳細信息,請參閱中繼到插件的消息。 simHandleModule只能從主腳本中調用,並且在C-API中不可用。 查看默認主腳本以瞭解如何使用simOpenModule,simHandleModule和simCloseModule。

simHandleProximitySensor
處理(執行感測等)已註冊的接近傳感器對象。 另請參見simReadProximitySensor,simCheckProximitySensor,simCheckProximitySensorEx和simResetProximitySensor。

simResetProximitySensor
清除接近傳感器對象的檢測狀態,檢測顏色,檢測段等。 另請參見simHandleProximitySensor。

simHandleVisionSensor
處理(執行感測等)註冊的視覺傳感器對象。 不推薦從一個線程調用此函數,然後從另一個線程調用此函數,這可能會減慢模擬速度。 另請參見simReadVisionSensor,simCheckVisionSensor,simCheckVisionSensorEx和simResetVisionSensor。

simResetVisionSensor
清除接近傳感器對象的檢測狀態等。 另見simHandleVisionSensor。

simHandleMill
處理(執行切割)已註冊的銑削對象。 另請參見simResetMill。

simResetMill
清除所有先前設置的銑削計算結果(切削對象列表,已切削的曲面和體積)。 另見simHandleMill。

simApplyMilling
將銑削操作期間所做的更改應用於可切割對象(例如形狀)。 這需要一些計算時間。 一旦應用了更改,它們就不能再重置。 如果銑削操作銑削掉整個對象,則從場景中移除對象。 刪除鏈接到對象的計算結構,並可能計算更新的計算結構(可能需要一些計算時間)。 另請參見simResetMilling,simHandleMill和simResetMill。

simResetMilling
將可切割對象(例如形狀)重置爲其初始形狀(在銑削之前),從而取消銑削更改。 刪除鏈接到對象的計算結構,並可能計算更新的計算結構(可能需要一些計算時間)。 另請參見simApplyMilling,simHandleMill和simResetMill。

simHandleVarious
處理各種功能(例如,在模擬期間的相機跟蹤等)。 如果可能,每個模擬通道只應調用一次。
simGetExplicitHandling
檢索常規對象的顯式處理標誌。 另請參見simSetExplicitHandling。
simSetExplicitHandling
設置常規對象的顯式處理標誌。 另請參見simGetExplicitHandling。

Collision detection functionality 碰撞檢測功能

simGetCollisionHandle
相當於 remote API:simxGetCollisionHandle
相當於RosPlugin的API:simRosGetCollisionHandle
檢索碰撞對象的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。

simIsHandleValid
檢查通用對象句柄是否仍然有效。 當一般對象被銷燬時(例如,以編程方式或通過用戶界面),其相關句柄不再有效,並且在使用時將觸發錯誤。 使用此功能可避免觸發錯誤。 另請參見simGetObjectHandle,simGetUIHandle,simGetCollectionHandle,simGetCollisionHandle,simGetDistanceHandle,simGetMechanismHandle,simGetIkGroupHandle,simGetScriptHandle和simGetObjectUniqueIdentifier

simHandleCollision
處理(檢查碰撞等)已註冊的碰撞對象。 編輯場景時可以註冊碰撞對象。 另請參閱simReadCollision,simResetCollision,simCheckCollision和simCheckCollisionEx。

simReadCollision
相當於遠程API:simxReadCollision
相當於RosPlugin API:simRosReadCollision
讀取已註冊的碰撞對象的碰撞狀態。 此函數不執行衝突檢測,它只讀取上一次調用simHandleCollision的結果(在默認主腳本中調用simHandleCollision)。 另請參見simResetCollision,simCheckCollision和simCheckCollisionEx。

simResetCollision
清除已註冊碰撞對象的碰撞狀態,顏色,交叉點等。 另見simHandleCollision。

simCheckCollision
檢查兩個實體是否發生衝突。 與simHandleCollision相比,檢測是靜默的(沒有視覺反饋)。 此外,如果實體是對象,則覆蓋實體的可碰撞標誌。 另請參見simReadCollision和simCheckCollisionEx。

simCheckCollisionEx
檢查兩個實體是否發生衝突。 這是simCheckCollision的擴展功能版本,將返回兩個實體之間的所有交叉點。 與simHandleCollision相比,檢測是靜默的(沒有視覺反饋)。 此外,如果實體是對象,則覆蓋實體的可碰撞標誌。 另見simReadCollision。

Minimum distance calculation functionality 最小距離計算功能

simGetDistanceHandle
相當於remote API:simxGetDistanceHandle
相當於RosPlugin的API:simRosGetDistanceHandle
檢索距離對象的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。

simIsHandleValid
檢查通用對象句柄是否仍然有效。 當一般對象被銷燬時(例如,以編程方式或通過用戶界面),其相關句柄不再有效,並且在使用時將觸發錯誤。 使用此功能可避免觸發錯誤。 另請參見simGetObjectHandle,simGetUIHandle,simGetCollectionHandle,simGetCollisionHandle,simGetDistanceHandle,simGetMechanismHandle,simGetIkGroupHandle,simGetScriptHandle和simGetObjectUniqueIdentifier

simHandleDistance
處理(測量距離等)註冊距離對象。 編輯場景時可以註冊距離對象。 另請參見simReadDistance,simResetDistance和simCheckDistance。

simReadDistance
相當於remote API等:simxReadDistance
相當於RosPlugin的API:simRosReadDistance
讀取已註冊距離對象的距離。 此函數不執行距離測量,它只讀取先前調用simHandleDistance的結果(在默認主腳本中調用simHandleDistance)。 另請參見simResetDistance和simCheckDistance。

simResetDistance
清除已註冊距離對象的距離狀態,距離段等。 另請參見simHandleDistance。

simCheckDistance
檢查兩個實體之間的最小距離。 與simHandleDistance相比,檢測是靜默的(無視覺反饋)。 此外,如果實體是對象,則覆蓋實體的可測量標誌。 另請參見simReadDistance。

另請參見simSetObjectXXXParameter和simGetObjectXXXParameter函數
和它們的碰撞對象相關的參數。

IK and geometric constraint solver functionalities IK和幾何約束求解器功能

simGetIkGroupHandle
檢索IK組的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。

simIsHandleValid
檢查通用對象句柄是否仍然有效。 當一般對象被銷燬時(例如,以編程方式或通過用戶界面),其相關句柄不再有效,並且在使用時將觸發錯誤。 使用此功能可避免觸發錯誤。 另請參見simGetObjectHandle,simGetUIHandle,simGetCollectionHandle,simGetCollisionHandle,simGetDistanceHandle,simGetMechanismHandle,simGetIkGroupHandle,simGetScriptHandle和simGetObjectUniqueIdentifier

simHandleIkGroup
處理(解決)已註冊的IK組。 編輯場景時可以註冊IK組。 另請參見simCheckIkGroup,simComputeJacobian和simGenerateIkPath。

simCheckIkGroup
求解已註冊的IK組,但與simHandleIkGroup函數不同,simCheckIkGroup不會應用計算的關節值,而是將它們返回到數組中。 另請參見simHandleIkGroup,simComputeJacobian和simGenerateIkPath。

simComputeJacobian
計算已註冊IK組的雅可比行列式。 然後可以通過simGetIkGroupMatrix讀取結果。 另請參見simHandleIkGroup和simCheckIkGroup。

simSetIkElementProperties
設置特定反向運動學元素(IK元素)的屬性。 另請參見simSetIkGroupProperties和simGetIkGroupHandle。

simGetIkGroupMatrix
從IK組中檢索各種信息,例如雅可比行列式。 爲了使結果有效,雅可比必須先通過simComputeJacobian,simHandleIkGroup或simCheckIkGroup函數計算。 以下情況必須區分:
a)如果在調用simGetIkGroupMatrix之前調用simComputeJacobian,則返回的雅可比行列式將是該機制的當前狀態/配置。 這是檢索雅可比行列式的推薦方法。
b)如果在調用simGetIkGroupMatrix之前調用simHandleIkGroup或simCheckIkGroup,則返回的雅可比行列式將是最後計算的,同時嘗試到達目標(因爲線性化通常需要至少2-3次迭代才能到達目標) ,這不是機制的當前狀態/配置,除非目標與尖端重疊。
另請參見simGetIkGroupHandle。

simGetMechanismHandle
檢索要由幾何約束求解器求解的機制的句柄。 此函數的操作取決於當前名稱後綴設置(請參閱simGetNameSuffix,simSetNameSuffix和有關訪問常規類型對象的部分)。 另請參見simIsHandleValid。

simHandleMechanism
處理使用幾何約束求解器功能註冊的機制。 編輯場景時可以註冊機制。

simGetLinkDummy
檢索鏈接到此虛擬對象的對象句柄。 另請參見simSetLinkDummy。

simGenerateIkPath
生成一條路徑,將機器人從其當前配置驅動到直線(即笛卡爾空間中的最短路徑)。

simCreateIkGroup
創建IK組。 另請參見simRemoveIkGroup和simCreateIkElement。

simRemoveIkGroup
刪除IK組。 另請參見simGetIkGroupHandle和simCreateIkGroup。

simCreateIkElement
創建IK元素。 另請參見simCreateIkGroup。

simExportIk
導出場景的IK內容。 生成的文件可以與外部IK一起使用,以在外部應用程序中執行IK計算。

另請參見simSetObjectXXXParameter和simGetObjectXXXParameter函數
和它們的IK組和幾何約束求解器對象相關的參數。

Path/Motion planning functionality 路徑/運動規劃功能

OMPL插件API在這裏有一些解釋
simGetConfigForTipPose
搜索與空間中給定的末端效應器位置/方向匹配的操縱器配置。 搜索是隨機的。

simGenerateIkPath
生成一條路徑,將機器人從其當前配置驅動到直線(即笛卡爾空間中的最短路徑)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章