笛卡爾空間力反饋的關節速度控制之機器人運動學庫KDL安裝及使用
引言
首先得到的工具座標系淨接觸力向量,然後乘以工具座標系到末端座標系的旋轉矩陣,得到末端的淨接觸力向量。然後將末端的力乘以阻尼矩陣(假設解耦),得到末端的速度向量。因為得到的速度向量還是在末端座標系下的(這裡可以考慮先轉到基座標系下再得到速度向量?),因此為了達到控制關節速度的目的,需要首先將末端的速度轉換到基座標系下,然後利用雅克比矩陣的逆,得到關節速度指令。這裡的轉換矩陣,也就是齊次變換矩陣就是這裡想要求得的。
原理
1、雅克比矩陣可以通過moveit中的命令獲取,這裡不知道為什麼ur自帶的指令總是和matlab(目前已知應該是正確)有點出入,在正負號方面。因此首先進行相關符號的轉換(不會是坑吧,算了,先挖再說。)
2、通過辨識的旋轉資訊,將工具座標系下的力轉為末端座標系;然後使用阻尼矩陣(相當於阻尼控制,將末端力轉為末端速度),得到在末端座標系下的速度資訊。再經過旋轉矩陣和雅克避矩陣的轉化,從而得到基座標系下的笛卡爾空間速度值。如引言部分所示
安裝
由於雅克比矩陣可以通過moveit獲得,但是將末端座標系下的速度轉為基座標系下的工作需要用到機械臂的正向運動學。一種方法是直接通過手算正向運動學,另一種方法是通過linux下的KDL庫
(機器人運動學相關)直接獲取。這裡我們選擇使用KDL進行正運動學求解。因此關於在linux下正確安裝使用KDL庫,是本文所介紹的。
安裝主要是參見這篇文章連結。
這裡我們選擇用py版本的KDL
PyKDL
首先安裝PyKDL。
安裝過程中會遇到問題,我是通過下載低版本的包解決的。
pykdl_utils
在文中提到了將.so檔案拷貝可以解決存在的問題,但是試了以後發現不行,最終的辦法是必須通過新增路徑的方法。就是在下面“使用”一節的連結中提到的。
類似於這兩種
sys.path.insert(0, "/home/file/catkin_ws/src/Basic_math/hrl-kdl-indigo-devel/hrl_geom/src")
sys.path.insert(0, "/home/wangxu/catkin_ws/src/Basic_math/hrl-kdl-indigo-devel/pykdl_utils/src")
但是必須要到build資料夾,就像:
```python
sys.path.insert(0, "/home/xsm/pydk/src/hrl-kdl-indigo-devel (2)/hrl_geom/src")
sys.path.insert(0, "/home/xsm/orocos_kinematics_dynamics-1.3.1/python_orocos_kdl/build")
使用
參見部落格連結。當然這裡也是有問題,就是對於變換矩陣的順序,可能需要再調整一下。
當遇到存在解釋解釋包,但是不在此直譯器下的情況時,可以在pycharm中通過為直譯器新增包的方式新增。
實驗
最終初步實現了末端力反饋的關節速度控制,視訊以後放。
希望我們可以不忘初心,May the force be with you!
相關文章
- 機器人運動學機器人
- 機器人自帶觸覺反饋,隔空微創手術的利器機器人
- 笛卡爾樹
- Kinect體感機器人(三)—— 空間向量法計算關節角度機器人
- [BUG反饋]安裝bug?
- 移動機器人運動規劃及運動模擬機器人
- 波士頓動力機器人跪了!搬箱子不成反摔倒機器人
- 移動機器人中的現代控制理論之狀態空間表示式機器人
- java 笛卡爾積(迴圈)Java
- 機器人學之運動學筆記【7】—— 機械手臂軌跡規劃例項機器人筆記
- 笛卡爾積與全連線
- 基環樹和笛卡爾樹
- 流體力學守恆形式Euler方程(笛卡爾座標、柱座標、球座標)
- 軟體工程之四則運算使用者調研及反饋軟體工程
- [BUG反饋]開始安裝 介面調整
- [BUG反饋]BAE安裝onethink報錯
- PostgreSQL-表空間、資料庫、使用者之間的關係(七)SQL資料庫
- [BUG反饋]OneThink安裝到阿里雲主機提示404阿里
- Android解除安裝程式之後跳轉到指定的反饋頁面Android
- 科學的演變:從笛卡爾到生成式人工智慧人工智慧
- 專案實戰:Qt球機控制工具(球機運動八個方向以及運動速度,運動指定角度QT
- Oracle - 資料庫的例項、表空間、使用者、表之間關係Oracle資料庫
- 在資料庫之間移動表空間資料庫
- [BUG反饋]GIT最新版安裝出錯Git
- 笛卡爾積的應用——商品 SKU 計算
- Oracle的表連線方法(四)笛卡爾積Oracle
- 人工智慧與智慧系統2-> 機器人學2 | 時間與運動人工智慧機器人
- Iperf檢視2臺機器之間的連線速度
- 在 Swoole 伺服器程式中如何實現壓力反饋伺服器
- oracle中的資料庫、使用者、方案、表空間、表物件之間的關係Oracle資料庫物件
- 盤點|AI在機器人運動控制領域應用盤點AI機器人
- 笛卡爾座標張量簡介7
- [JavaScript] 求解任意n個集合的笛卡爾積JavaScript
- 笛卡爾積和NEST LOOP產生的影響OOP
- 演算法-機器人的運動範圍演算法機器人
- Oracle - 表空間使用情況及相關字典Oracle
- STM32配置HID裝置時主機識別不到力反饋的解決辦法
- Material-UI 使用反饋UI