moveit_commander
套件安裝與執行範例
moveit_commander
是 MoveIt! 提供的 Python API,可用於控制機械臂、執行運動規劃、設定目標點等。你可以透過 moveit_commander_cmdline.py
在指令列 測試與控制機械臂,或編寫 Python 腳本來進行更複雜的操作。
1️⃣ 安裝 moveit_commander
在 ROS 1 Noetic(Ubuntu 20.04) 或 Melodic(Ubuntu 18.04),執行以下命令來安裝 moveit_commander
:
如果你使用的是 ROS 2(如 Foxy、Humble),則 moveit_commander
是內建於 MoveIt 2 的,你需要安裝 MoveIt:
📌 確認安裝成功
如果安裝成功,會顯示:
2️⃣ 測試 moveit_commander_cmdline.py
這是 MoveIt! 內建的 指令列測試工具,可用來測試機械臂運動規劃。
📌 啟動機械臂模擬環境
這會啟動:
- MoveIt!
- 機械臂(如 Panda 機械臂)
- RViz(用於視覺化)
📌 進入 moveit_commander
交互模式
你會看到類似的提示:
你現在可以輸入 指令 來控制機械臂,例如:
這會顯示當前的機械臂狀態。
📌 設定機械臂目標位置
這會讓機械臂移動到預設的 home
位置。
📌 手動設定目標位置
這會讓機械臂移動到 (x=0.3, y=0.2, z=0.5)
。
📌 檢查目前機械臂的位置
📌 結束 moveit_commander
3️⃣ 編寫 Python 腳本控制機械臂
除了使用指令列模式,你也可以寫 Python 程式來控制機械臂。
📌 建立 Python 檔案
📌 輸入以下程式碼
📌 執行腳本
機械臂應該會移動到 (0.4, 0.2, 0.3)
位置!
4️⃣ moveit_commander
主要 API
函數 | 功能 |
---|---|
robot.get_current_state() | 取得機械臂的當前狀態 |
arm.set_named_target("home") | 設定機械臂到預設位置 |
arm.set_position_target([x, y, z]) | 設定目標位置(只移動終端) |
arm.set_pose_target(pose) | 設定目標姿勢(包含旋轉) |
arm.go(wait=True) | 執行運動規劃 |
arm.get_current_pose() | 取得機械臂目前的位置 |
📌 總結
步驟 | 命令 |
---|---|
安裝 moveit_commander | sudo apt install ros-noetic-moveit-commander |
啟動 MoveIt! 模擬 | roslaunch moveit_tutorials demo.launch |
進入指令列模式 | rosrun moveit_commander moveit_commander_cmdline.py |
執行 Python 腳本 | python3 move_arm.py |
🚀 這樣你就可以使用 moveit_commander
控制機械臂了! 🎯
沒有留言:
張貼留言