天天看點

使用moveit group commander對機械臂進行關節空間規劃

關節空間運動是機械臂常用的一種控制方法。所謂關節空間,就是以關節角度為控制量的機器人運動。雖然各關節到達期望位置所經過的時間相同,但是各關節之間互相獨立,互不影響。機器人狀态使用各軸位置來描述,在指定運動目标的機器人狀态後,通過各軸運動來達到目标位姿。

首先我們需要一個.srdf檔案。這個檔案是配置機械臂參數、夾具參數、規劃組、自定義位姿等。其中配置如下圖:

使用moveit group commander對機械臂進行關節空間規劃
使用moveit group commander對機械臂進行關節空間規劃

有了.srdf檔案以後,我們就可以通過moveit group commander來控制機械臂進行關節空間規劃了。

moveit_commander.roscpp_initialize(): 這個函數是對API進行導入,初始化的底層依然使用的是roscpp接口,隻是在上層做了python封裝.

moveit_commander.MoveGroupCommander(): 這個函數是初始化API。參數是.srdf檔案中的group name。

moveit_commander.MoveGropuCommander.set_goal_joint_tolerance(): 這個函數是設定動作允許的誤內插補點

moveit_commander.MoveGroupCommander.set_named_target(): 這個函數是按照名稱設定關節配置,名稱是.srdf檔案中的group_state name

moveit_commander.MoveGroupCommander.go(): 這個函數是控制機械臂完成動過

moveit_commander.MoveGroupCommander.set_joint_value_target(): 這個函數是使用位置資料設定機械臂關節的目标資料,一般我們使用array

moveit_commander.roscpp_shutdown(): 這個函數是關閉API的接口

moveit_commander.os._exit(): 這個函數是退出moveit group commander

下面是我的使用moveit gropu commander的簡答的代碼:

使用moveit group commander對機械臂進行關節空間規劃
使用moveit group commander對機械臂進行關節空間規劃