MoveIt官網:http://moveit.ros.org/
MoveIt架構
下圖是MoveIt的系統架構圖一、安裝
以下將使用《master ros for robotics programming》的案例進行學習,tutorial source code如下:
二、Setup Assistant Tutorial
1. To start the MoveIt Setup Assistant:
開啟「MoveIt Setup Assistant」之後,選擇「Create New MoveIt Configuration Package」建立新的Configuration Package。
這裡有兩個選擇,一個是新建一個配置功能包,一個是使用已有的配置功能包。這裡我們選擇新建配置功能包,並在程式碼中找到urdf文件(seven_dof_arm.urdf)。如果已有配置功能包,那麼新建後會覆蓋原有的文件。
2. Generate Self-Collision Matrix
然後點擊左側的第二項配置步驟,配置自碰撞矩陣,MoveIt!可以讓我們設置一定數量的隨機採樣點,根據這些點生成配裝參數,可想而知,過多的點會造成運算速度慢,過少的點會導致參數不完善,默認的採樣點數量是10000個,官方稱經過實踐,要獲得不錯的效果,10000是最低要求,我們就按照這個預設值生成碰撞矩陣。
虛擬關節主要是用來描述機器人在world坐標系下的位置,如果機器人是移動的,虛擬關節可以與移動基座關聯,不過一般的機械臂都是固定不動的,所以也可以不需要虛擬關節。
4. Add Planning Groups
Planning Group用於描述機器人的不同部分,例如定義手臂或末端夾具部分。這一步可以將機器人的多個組成部分(links,joints)集成到一個Planning Group當中。之後Motion Planning會針對個別的Planning Group完成運動規劃,在規劃的過程中還可以選擇運動學解析器( kinematic solver)。
這裡創建兩個組,一個是機械臂部分(arm),一個是夾具部分(gripper)。
5. Add Robot Poses
Setup Assistant允許在配置中添加某些固定的姿勢(Pose),例如機器人的零點位置(Home)、初始位置等等,當然這些位置是用戶根據場景自定義的,不一定要和機器人本身的零點位置、初始位置相同。這樣做的好處就是我們使用MoveIt的API時,可以直接調用這些位置。
6. Label End Effectors
在添加了夾具的Planning Group之後,將這些群組指定為end-effectors可以在內部進行一些特殊操作。
7. Add Passive Joints
機器人上的某些關節可能在規劃控制的過程中不會使用到,可以先宣告出來。這裡沒有就不用管了。
8. Generate Configuration Files
最後一步,生成配置文件。一般會取名[robot_name]_moveit_config。這裡,會提示覆蓋已有的配置文件。
參考資料:
ROS MoveIt - tutorials
古月居 ROS探索总结—MoveIt基础
运动规划 (Motion Planning): MoveIt! 与 OMPL
4. Add Planning Groups
Planning Group用於描述機器人的不同部分,例如定義手臂或末端夾具部分。這一步可以將機器人的多個組成部分(links,joints)集成到一個Planning Group當中。之後Motion Planning會針對個別的Planning Group完成運動規劃,在規劃的過程中還可以選擇運動學解析器( kinematic solver)。
這裡創建兩個組,一個是機械臂部分(arm),一個是夾具部分(gripper)。
5. Add Robot Poses
Setup Assistant允許在配置中添加某些固定的姿勢(Pose),例如機器人的零點位置(Home)、初始位置等等,當然這些位置是用戶根據場景自定義的,不一定要和機器人本身的零點位置、初始位置相同。這樣做的好處就是我們使用MoveIt的API時,可以直接調用這些位置。
6. Label End Effectors
在添加了夾具的Planning Group之後,將這些群組指定為end-effectors可以在內部進行一些特殊操作。
7. Add Passive Joints
機器人上的某些關節可能在規劃控制的過程中不會使用到,可以先宣告出來。這裡沒有就不用管了。
8. Generate Configuration Files
最後一步,生成配置文件。一般會取名[robot_name]_moveit_config。這裡,會提示覆蓋已有的配置文件。
MotionPlanning
在完成配置之後即可退出 Setup Assistant,接著執行「demo.launch」看看:
*若是要執行Motion Planning的話,還需要再執行「move_group.launch」,導入Planning Library:
這個介面是在rviz的基礎上加入了MoveIt Plugin,通過左下角的Plugin,我們可以選擇機械手臂的目標位置,進行運動規劃。或者拖動機械臂的前端,也可以改變機械臂的姿態。
在規劃頁面點擊「Plan and Execute」,MoveIt即會開始路徑規劃,並且可以看到機械臂開始向目標位置移動!
參考資料:
ROS MoveIt - tutorials
古月居 ROS探索总结—MoveIt基础
运动规划 (Motion Planning): MoveIt! 与 OMPL