2018年3月13日 星期二

MoveIt 入門教學 - 加入Trac_IK運動學求解(Trac-IK Kinematics Solver)

MoveIt入門教學 - 加入Trac_IK運動學求解(Trac-IK Kinematics Solver)


说明
  • 由於在使用MoveIt中最常見的KDL作為Kinematics Solver的過程中,在進行基本操作時擁有不錯的使用體驗。
  • 但隨著任務需求的增加,在加入環境障礙物以及attach object等操作之後,會遇到執行運算時間過長的問題。甚至可能會因此而失敗(timeout)。
  • 因此嘗試使用不同的Kinematics Solver來解決此一問題,目前測試使用Trac_IK,普遍上會擁有較佳的結果,甚至在某些條件下,運算速度可能會相差十倍以上,並且也比較不會出現失敗的狀況。
甚麼是Trac_IK
  • 来自ROS維基百科上的說明:Trac_IK係作為目前最常見的運動學編譯器(KDL)的改良版本,提供一更快速,且更穩定的運動學編譯器。在處理關節極限(joint-limited)的數值解上會具有較佳的結果,不會再增加額外的計算時間。
  • 並且Trac_IK具有與KDL編譯器相近的API calls,僅需調整部分輸入參數即可切換使用。詳細計算內容請參閱ROS Wiki - Trac_IK中的說明。
MoveIt! Trac_IK
  • MoveIt! Trac_IK是一種Open-Source的函式庫,提供一改善的解運動學的工具。
  • 本文旨在說明如何在機器人的MoveIt系統中使用Trac_IK的强大功能
  • 本文中MoveIt! Trac_IK的測試環境是ROS Kinetic,使用catkin编译。理論上可以工作再任何自由度的機械臂上。
準備
  • 应该已经通过MoveIt!配置助手生成MoveIt!配置包
MoveIt! IKFast 安装

兩種安裝方式:二進制debs包或源安裝
Binary Install:
sudo apt-get install ros-kinetic-trac-ik-kinematics-plugin

    源安装:(在catkin工作空間)
    1. 至官網source中下載原始程式碼
    2. 將package "trac_ik_kinematics_plugin"及"trac_ik_lib"放入catkin的工作空間中
    3. 於機器人的配置文件中"/config/"找到"kinematics.yaml"文件,並將文件內的
kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin 置換為 
=> kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin
4. 調整參數
  1. kinematics_solver_timeout (timeout in seconds, e.g., 0.005) and position_only_ik ARE supported.
  2. solve_type can be Speed, Distance, Manipulation1, Manipulation2 (see trac_ik_lib documentation for details). Default is Speed.
  3. kinematics_solver_attempts parameter is unneeded: unlike KDL, TRAC-IK solver already restarts when it gets stuck
  4. kinematics_solver_search_resolution is not applicable here.



備註: 在完成Trac_IK的安裝之後,即可直接開啟使用。並且在之後的MoveIt_Setup_Assistant中,也會直接出現Trac_IK的選項可以直接選取。




參考資料:
ROS Wiki - Trac_IK
trac_ik - source
MoveIt!入门教程-生成IKFast插件

apt-get update異常處理

1. 問題描述 系統環境:Ubuntu 18.04.3 LTS 執行apt-get update更新時遇到如下狀況 錯誤訊息: Err:1 http://security.ubuntu.com/ubuntu bionic-security InRe...