Simulation
NOTE:
- Make sure ROS dependencies are installed before performing these instructions
- Install ROS Packages
NOTE:
- Make sure ROS dependencies are installed before performing these instructions
- Install ROS Packages
Gazebo simulation is not supported.
https://github.com/ROBOTIS-GIT/open_manipulator_simulations
Coming Soon (2021 4Q)
Not supported with Arduino
Launch gazebo
- Load OpenManipulator-X on Gazebo simulator and click on Play
▶
button at the bottom of the Gazebo window.$ roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch
-
The red cube indicates the end-effector link.
- Below are the active topics when the simulation is running
$ 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
- Load OpenManipulator-X on Gazebo simulator and click on Play
▶
button at the bottom of the Gazebo window.$ roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch
-
The red cube indicates the end-effector link.
- Below are the active topics when the simulation is running
$ 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
Not supported with Arduino
Controller for Gazebo
Launch the open_manipulator_controller for Gazebo simulation.
In order to run the controller for simulation environment, make sure to set the use_platform
parameter to false
so that the controller can be launched as a simulation controller as shown below.
$ roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false
NOTE: If you want to manipulate the OpenMANIPULATOR-X using MoveIt! along with the Gazebo simulator, you should modify the use_moveit
parameter value from false
to true
in open_manipulator_controller launch file.
If the OpenMANIPULATOR-X controller for Gazebo simulation Launched successfully, the below messages will be printed on the 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
Launch the open_manipulator_controller for Gazebo simulation.
In order to run the controller for simulation environment, make sure to set the use_platform
parameter to false
so that the controller can be launched as a simulation controller as shown below.
$ roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false
NOTE: If you want to manipulate the OpenMANIPULATOR-X using MoveIt! along with the Gazebo simulator, you should modify the use_moveit
parameter value from false
to true
in open_manipulator_controller launch file.
If the OpenMANIPULATOR-X controller for Gazebo simulation Launched successfully, the below messages will be printed on the 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
Not supported with Arduino
Operation in Gazebo
In order to control the simulated OpenMANIPULATOR-X, launch the OpenManipulator control GUI or Keyboard teleoperation
- GUI Program
$ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch
- Keyboard Teleoperation
$ 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 ---------------------------
In order to control the simulated OpenMANIPULATOR-X, launch the OpenManipulator control GUI or Keyboard teleoperation
- GUI Program
$ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch
- Keyboard Teleoperation
$ 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 ---------------------------
Not supported with Arduino