View Categories

OpenManipulator-X(ROS1)-Noetic-Chap9-手臂應用

C9. Applications 機器手臂應用 #

C9.1. Master/Slave 主從架構應用 #

在以下影片範例中,如果用戶手握著 master OpenManipulator-X 主手臂,則 slave OpenManipulator-X 從手臂,就會做出跟主手臂一樣的動作。Recording 錄製模式,可讓你在移動 master OpenManipulator-X 主手臂時,將其軌跡保存下來,並可在 slave OpenManipulator 從手臂回播。

C9.1.1. 設定 OpenManipulator-X 手臂 #

由於你需要在一台 PC 上,同時控制兩個 OpenManipulator-X 手臂,因此請使用兩個 U2D2 轉接器,和兩個 OpenManipulator-X 手臂進行連接,如下圖所示。

OpenManipulator master slave connection
OpenManipulator master slave

C9.1.1.1. Master OpenManipulator-X 主手臂 #

Master OpenManipulator-X 主手臂,是一個由用戶自己控制的機器手臂。手臂很容易操作,因為智能馬達上並沒有啟動扭力。Master OpenManipulator-X 主手臂智能馬達的 ID 設置為如下,baud rate 設置為 1,000,000 bps。

名稱 Dynamixel 馬達 ID
Joint 1 21
Joint 2 22
Joint 3 23
Joint 4 24
Gripper 爪手 25

C9.1.1.2. Slave OpenManipulator-X 從手臂 #

Slave OpenManipulator-X 從手臂,會跟 Master OpenManipulator 主手臂同步動作。Slave OpenManipulator-X 從手臂的智能馬達 ID 設置如下,baud rate 為 1,000,000bps。跟預設的 OpenManipulator-X 手臂設置相同。

名稱 Dynamixel 馬達 ID
Joint 1 11
Joint 2 12
Joint 3 13
Joint 4 14
Gripper 爪手 15

C9.1.2. 安裝套件 #

在新的 terminal 執行下列指令。

如果 catkin_make 指令已完成,且沒有任何錯誤,就完成所有準備工作。

				
					$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_applications.git
$ cd ~/catkin_ws && catkin_make
				
			

C9.1.3. 執行範例 #

open manipulator start pose

1. 在新的 terminal 輸入以下指令,來啟動 Slave OpenManipulator-X 從手臂的控制器

dynamixel_usb_port 參數,是用來設置 slave OpenManipulator-X 從手臂的端口。

請檢查你的 OS,使用指定給 U2D2 轉接器的 USB 端口。

				
					$ roslaunch open_manipulator_controller open_manipulator_controller.launch dynamixel_usb_port:=/dev/ttyUSB0
				
			

2. 如果 slave OpenManipulator-X 控制器成功啟動,terminal 會出現下列訊息。

				
					 SUMMARY
 ========

 PARAMETERS
 * /open_manipulator_controller/control_period: 0.01
 * /open_manipulator_controller/using_platform: True
 * /rosdistro: noetic
 * /rosversion: 1.15.9

 NODES
   /
     open_manipulator_controller (open_manipulator_controller/open_manipulator_controller)

 auto-starting new master
 process[master]: started with pid [2049]
 ROS_MASTER_URI=http://localhost:11311

 setting /run_id to 60ac9f42-fa5b-11eb-a3d8-ef395547902c
 process[rosout-1]: started with pid [2059]
 started core service [/rosout]
 process[open_manipulator_controller-2]: started with pid [2062]
 port_name and baud_rate are set to /dev/ttyUSB0, 1000000 
 Joint Dynamixel ID : 11, Model Name : XM430-W350
 Joint Dynamixel ID : 12, Model Name : XM430-W350
 Joint Dynamixel ID : 13, Model Name : XM430-W350
 Joint Dynamixel ID : 14, Model Name : XM430-W350
 Gripper Dynamixel ID : 15, Model Name :XM430-W350
 [INFO] Succeeded to init /open_manipulator_controller
				
			

3. 開新的 terminal 輸入以下指令,來啟動 Master OpenManipulator-X 主手臂的控制器

usb_port 參數,是用來設置 master OpenManipulator-X 主手臂的端口。

請檢查你的 OS,使用指定給 U2D2 轉接器的 USB 端口。此端口應該跟 slave 的端口不同。

				
					$ roslaunch open_manipulator_master_slave open_manipulator_master.launch usb_port:=/dev/ttyUSB1
				
			

4. 如果 master OpenManipulator-X 控制器成功啟動,terminal 會出現下列訊息。

				
					 SUMMARY
 ========

 PARAMETERS
 * /open_manipulator/open_manipulator_master/gripper_id: 25
 * /open_manipulator/open_manipulator_master/joint1_id: 21
 * /open_manipulator/open_manipulator_master/joint2_id: 22
 * /open_manipulator/open_manipulator_master/joint3_id: 23
 * /open_manipulator/open_manipulator_master/joint4_id: 24
 * /open_manipulator/open_manipulator_master/service_call_period: 0.01
 * /rosdistro: noetic
 * /rosversion: 1.15.9

 NODES
 /open_manipulator/
     open_manipulator_master (open_manipulator_master_slave/open_manipulator_master)

 ROS_MASTER_URI=http://localhost:11311

 process[open_manipulator/open_manipulator_master-1]: started with pid [32026]
 Joint Dynamixel ID : 21, Model Name : XM430-W350
 Joint Dynamixel ID : 22, Model Name : XM430-W350
 Joint Dynamixel ID : 23, Model Name : XM430-W350
 Joint Dynamixel ID : 24, Model Name : XM430-W350
 Gripper Dynamixel ID : 25, Model Name :XM430-W350
				
			

5. 你以在 terminal 中看到以下消息。當前控制模式 control mode,和機器手臂狀態(關節角度,終端工具位置)等訊息會更新。

				
					 -----------------------------
 Control Your OpenMANIPULATOR!
 -----------------------------
 Present Control Mode
 Master - Slave Mode
 -----------------------------
 1 : Master - Slave Mode
 2 : Start Recording Trajectory
 3 : Stop Recording Trajectory
 4 : Play Recorded Trajectory
 -----------------------------
 Present Joint Angle J1: -0.170 J2: 0.367 J3: -0.046 J4: 0.959
 Present Tool Position: 0.000
 -----------------------------
				
			

6. 有四個控制指令選擇。請在 terminal 輸入指令號碼。

  • 1: Master-Slave Mode: master 主手臂跟 slave 從手臂同步動作
  • 2: Start Recording Trajectory: master 主手臂跟 slave 從手臂同步動作,控制器會錄製移動軌跡
  • 3: Stop Recording Trajectory: 停止錄製
  • 4: Play Recorded Trajectory: 第 2 項所錄製的軌跡,會在 slave 從手臂上回播

C9.2. 使用 OpenCR 控制器來教學 #