View Categories

OpenManipulator-X(ROS1)-Noetic-Chap7-模擬

C7. Simulation 模擬 #

C7.1. 啟動 Gazebo 模擬器 #

1. 在 Gazebo 模擬器上加載 OpenManipulator-X 機器手臂,然後點擊 Gazebo 視窗下方的 Play▶ 按鈕。

				
					$ roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch
				
			

2. 紅色立方表示終端工具(夾爪)連接。

OpenManipulator Chain gazebo 1

3. 當模擬執行時,以下列出已啟用的 topics。

				
					$ rostopic list
/clock
/gazebo/link_states
/gazebo/model_states
/gazebo/parameter_descriptions
/gazebo/parameter_updates
/gazebo/set_link_state
/gazebo/set_model_state
/gazebo_gui/parameter_descriptions
/gazebo_gui/parameter_updates
/gazebo_ros_control/pid_gains/gripper/parameter_descriptions
/gazebo_ros_control/pid_gains/gripper/parameter_updates
/gazebo_ros_control/pid_gains/gripper/state
/gazebo_ros_control/pid_gains/gripper_sub/parameter_descriptions
/gazebo_ros_control/pid_gains/gripper_sub/parameter_updates
/gazebo_ros_control/pid_gains/gripper_sub/state
/gazebo_ros_control/pid_gains/joint1/parameter_descriptions
/gazebo_ros_control/pid_gains/joint1/parameter_updates
/gazebo_ros_control/pid_gains/joint1/state
/gazebo_ros_control/pid_gains/joint2/parameter_descriptions
/gazebo_ros_control/pid_gains/joint2/parameter_updates
/gazebo_ros_control/pid_gains/joint2/state
/gazebo_ros_control/pid_gains/joint3/parameter_descriptions
/gazebo_ros_control/pid_gains/joint3/parameter_updates
/gazebo_ros_control/pid_gains/joint3/state
/gazebo_ros_control/pid_gains/joint4/parameter_descriptions
/gazebo_ros_control/pid_gains/joint4/parameter_updates
/gazebo_ros_control/pid_gains/joint4/state
/open_manipulator/gripper_position/command
/open_manipulator/gripper_sub_position/command
/open_manipulator/joint1_position/command
/open_manipulator/joint2_position/command
/open_manipulator/joint3_position/command
/open_manipulator/joint4_position/command
/open_manipulator/joint_states
/rosout
/rosout_agg
				
			

C7.2. Gazebo 的控制器 #

啟動 open_manipulator_controller 進行 Gazebo 模擬。
為了在 Gazebo 模擬環境中,運行控制器,請確保將 use_platform 參數設為 false,這樣就會啟動 Gazebo 模擬的控制器,作為控制器用,如下所示。

				
					$ roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false
				
			

如果 Gazebo 模擬器內的 OpenManipulator-X 控制器成功啟動,在 terminal 會顯示以下訊息。

				
					SUMMARY
========

PARAMETERS
 * /open_manipulator/control_period: 0.01
 * /open_manipulator/moveit_sample_duration: 0.05
 * /open_manipulator/planning_group_name: arm
 * /open_manipulator/using_moveit: False
 * /open_manipulator/using_platform: False
 * /rosdistro: kinetic
 * /rosversion: 1.12.14

NODES
  /
    open_manipulator (open_manipulator_controller/open_manipulator_controller)

ROS_MASTER_URI=http://localhost:11311

process[open_manipulator-1]: started with pid [9820]
[ INFO] [1544506914.862653563]: Ready to simulate /open_manipulator on Gazebo
				
			

C7.3. 在 Gazebo 模擬器內來操作 #

為了能控制被模擬的 OpenManipulator-X 手臂,需啟動 Chap 6.1. GUI 圖控介面 或 Chap 6.2.1 Keyboard 鍵盤遙控。

  • GUI 圖控介面
				
					$ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch
				
			
OpenManipulator GUI
  • Keyboard 鍵盤遙控。
				
					$ roslaunch open_manipulator_teleop open_manipulator_teleop_keyboard.launch
---------------------------
Control Your OpenMANIPULATOR-X!
---------------------------
w : increase x axis in task space
s : decrease x axis in task space
a : increase y axis in task space
d : decrease y axis in task space
z : increase z axis in task space
x : decrease z axis in task space

y : increase joint 1 angle
h : decrease joint 1 angle
u : increase joint 2 angle
j : decrease joint 2 angle
i : increase joint 3 angle
k : decrease joint 3 angle
o : increase joint 4 angle
l : decrease joint 4 angle

g : gripper open
f : gripper close

1 : init pose
2 : home pose

q to quit
---------------------------
Present Joint Angle J1: 0.000 J2: 0.000 J3: 0.000 J4: 0.000
Present Kinematics Position X: 0.000 Y: 0.000 Z: 0.000
---------------------------