1.1 Vrep例程之BubbleRob
模型屬性說明
- dynamic and respondable代表實體能受重力而falling並對其他responable物體所引起的碰撞作出反應,如下圖
- 想要讓某模型為static,比如不受重力和碰撞影響,但能對其他非靜態的respondable物體能施加碰撞響應,所以設定enable dynamic屬性,但respondable屬性為非enable
- 讓實體能被計算模組使用(最小距離計算模組等),需要在common properties中enable以下屬性:Collidable, Measurable, Renderable and Detectable
- shape properties用於改變實體的視覺效果
接近感測器
- 主要改變以上兩種選項:show volume parameters/show dectection parameters
實體間結構上繫結
法一:
We select bubbleRob_sensingNose, then control-select bubbleRob, then click [Menu bar --> Edit --> Make last selected object parent]. This attaches the sensor to the body of the robot.
法二(推薦):
檢視層次樹上拖動,使產生依賴關係
實體間物理上繫結
物理繫結前提是結構繫結
- 新增感測器,但會出現以下問題
the slider(前面小輪) is slightly moving in relation to the robot body: this is because both objects (i.e. bubbleRob_slider and bubbleRob) are colliding with each other
- 解決方案:
設定不同的可響應掩碼
for bubbleRob_slider we set the local respondable mask to 00001111, and for bubbleRob, we set the local respondable mask to 11110000.
- 出現另一個問題:即使設定電機目標速度為0也會輕微移動
- 解決方案:增大質量和慣性(n the shape dynamics properties)
collection
- add new collection
- 選中object,然後add(預設為從最低層到所選中物體的層次樹的全部)
最小距離計算模組
- 選中的兩類物體(廣義的物體,包括設定的collection,即物體集)距離
圖表使用
記錄資料
- 先選擇資料型別,再選擇資料的來源(如來自接近感測器或距離計算模組)
設定三維曲線
- 顯示空間中移動軌跡
封裝為模型
- 作為超父類shape,選中Object is model base
- 例程中主要是實現封裝模型,然後要隱藏關節,接近感測器和graph,設定所在顯示層來視覺隱藏,且選中時包圍框不包括這些部件,但要點選這些部件時自動選中其所在model,即
We also make sure the vision sensor is not not visible, not part of the model bounding box, and that if clicked, the model will be selected instead
視覺感測器
- 設定影象處理時,至少有三項:輸入,處理,輸出!!!
tips
- 建立的模型預設在可見層1
- 可建立多個scene來建立模型,保持各自獨立性
- joints可當做motor電機
- 新增模型時,預設在世界座標系的原點
- 選擇A,control選B,調整位姿,則A(動)應用到B(靜)上
- 通過相對座標系設定local 位姿
在這裡插入圖片描述 - 建立模型步驟
- 建立
- make the sphere Collidable, Measurable, Renderable and Detectable (if not already enabled)
- 可設定模型為noFrictionMaterial in the shape dynamics properties
- 動態模擬與非靜態模型的質量和慣性屬性密切相關
Stability of dynamic simulations is tightly linked to masses and inertias of the involved non-static shapes
- 移動模型的小技巧:holding down the shift key allows to perform smaller shift steps. Holding down the ctrl key allows to move in an orthogonal direction to the regular direction(s)
- layers 9-16 預設不可見
- 模型指令碼一般為 non-threaded child script,將其繫結(associate)到模型上