1.Force Sensors的添加
Add→Force sensor
然後拖到響應的模型樹位置,調整位姿即可
2. 傳感器 介紹
如上圖所示,Force sensor是一個六維力傳感器,分別可測量沿x、y和z軸施加在傳感器上的力以及圍繞x、y和z軸施加在傳感器上的扭矩。
對於關節中的力矩,可直接通過API函數simxGetJointForce
來獲取,本文主要記錄傳感器的使用,不涉及關節力矩的獲取。
Force sensor相當於一個剛性連接,在仿真過程中,如果外力超過指定的力/扭矩閾值或滿足某些其他用戶定義的條件時,力傳感器可能會損壞,即這個剛性連接會被破壞掉。
注意:要想力傳感器工作,必須enable動力學屬性
關於力傳感器的本地幫助文檔位於:①
CoppeliaSim_Edu_V4_0_0_Win/helpFiles/en/forceSensors.htm
;②forceSensors.htm
3. 傳感器屬性設置
- Filter:當通過力傳感器獲取力或扭矩數據時,會對其進行累加並可以進行過濾,以減少抖動值。
- Sample size:濾波器應使用的值數。默認值1爲不使用濾波器(原始輸出)。
- Average value:如果選擇,則傳感器將提供平均值(樣本的平均值)
- Median value:如果選擇,則傳感器將提供樣本中值
- Trigger settings:允許設置一些自動觸發條件,觸發器將調用觸發器回調函數
simBreakForceSensor
,具體參照手冊 - Force threshold:設置力矢量閥值
- Torque threshold:設置扭矩矢量閥值
- Consecutive threshold violations for breaking:觸發前允許傳感器連續超過閥值的次數
- Object size:調整傳感器3D表示大小,沒有實際的功能作用
- Adjust color A / B: 可調整力傳感器的兩種顏色
4. API使用及數據可視化
- Step1:使用
simxGetObjectHandle
獲取傳感器Handle - Step2:通過Handle調用
simxReadForceSensor
具體參見手冊Remote API
數據可視化方案:
- 方案1:使用相應的語言調用相應的包,如MATLAB使用plot
- 方案2:在V-REP中使用
Graph
工具進行可視化,下圖爲一個5㎏重物自由落體在機械臂末端產生的力數據
注意:使用Bullet和ODE引擎時,接觸邊界也進行了碰撞計算,會導致數據一直產生不正確的跳動,解決方案:在Common中設置碰撞掩碼(mask),使其掩碼位錯開,不進行碰撞計算即可
來看下大佬搞的稱重器:
5. 應用場景
- 機械臂末端力傳感器
- 手爪夾持力的檢測
- 足式機器人地面接觸力的檢測
- 其他
參考文獻: