welcom ! Handel home

2025年2月19日 星期三

(Robot_arm) movit_robot_arm_sim 移動 Demo

 movit_robot_arm_sim 是一個 MoveIt! 機械臂模擬,你可以透過 RViz、Python、Joystick 或命令行 控制它。


1️⃣ 在 RViz 內手動控制機械臂

如果你已啟動 MoveIt!,可以使用 RViz 拖動目標點(Goal Position) 來移動機械臂。

✅ 啟動 MoveIt! 機械臂模擬

bash
roslaunch movit_robot_arm_sim moveit_planning_execution.launch

然後執行:

bash
roslaunch movit_robot_arm_sim moveit_rviz.launch

🔹 在 RViz 內:

  1. 選擇 Planning Group(如 arm_group)。
  2. 點擊 Interactive Marker(移動目標點)
  3. Plan and Execute

🚀 這樣你的機械臂就會動了!


2️⃣ 使用命令行(ROS Topic)控制機械臂

MoveIt! 透過 /execute_trajectory Topic 來執行動作。

✅ 方式 1:發送預設動作

bash
rostopic pub /execute_trajectory moveit_msgs/ExecuteTrajectoryActionGoal "{}"

如果機械臂有預設姿勢(如 home),你可以讓它回到預設位置:

bash
rostopic pub /move_group/display_planned_path moveit_msgs/DisplayTrajectory "{}"

✅ 方式 2:設定特定關節角度

bash
rostopic pub /move_group/goal moveit_msgs/MoveGroupActionGoal "..."

這樣你可以直接控制機械臂關節。


3️⃣ 使用 Python 控制機械臂

如果你希望透過 Python 讓機械臂移動,可以用 moveit_commander

✅ 1. 啟動 MoveIt!

bash
roslaunch movit_robot_arm_sim moveit_planning_execution.launch

✅ 2. 執行 Python 控制碼

📌 move_arm.py

python
#!/usr/bin/env python3 import sys import rospy import moveit_commander # 初始化 ROS 節點 moveit_commander.roscpp_initialize(sys.argv) rospy.init_node('move_arm_controller', anonymous=True) # 取得機械臂控制介面 arm = moveit_commander.MoveGroupCommander("arm_group") # 設定目標位置(XYZ) target_pose = arm.get_current_pose().pose target_pose.position.x += 0.1 # 移動 10cm arm.set_pose_target(target_pose) # 執行運動規劃 plan = arm.plan() arm.execute(plan, wait=True) # 關閉 MoveIt! moveit_commander.roscpp_shutdown()

✅ 3. 執行程式

bash
python3 move_arm.py

🚀 這會讓機械臂沿著 X 軸移動 10cm!


4️⃣ 使用 Joystick 控制機械臂

如果你的 joystick_control.launch 啟動正常,則可以用 搖桿控制機械臂

✅ 啟動 Joystick 控制

bash
roslaunch movit_robot_arm_sim joystick_control.launch

然後使用手把移動機械臂!


📌 總結

方式指令適用場景
RViz 拖動控制roslaunch movit_robot_arm_sim moveit_rviz.launch視覺化操作,適合測試
ROS Topic 控制rostopic pub /execute_trajectory ...命令行快速移動機械臂
Python 腳本控制python3 move_arm.py程式化機械臂控制
Joystick 控制roslaunch movit_robot_arm_sim joystick_control.launch使用遊戲手把控制

🎯 如果你是初學者,建議先用 RViz 操作,再使用 Python 讓機械臂動起來! 🚀

沒有留言: