Edit on GitHub

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

  1. 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
    
  2. The red cube indicates the end-effector link.

  3. 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
    
  1. 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
    
  2. The red cube indicates the end-effector link.

  3. 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