YuMi Quick Commands - ethz-asl/yumi GitHub Wiki

YuMi Quick Commands Information

The purpose of the YuMi quick commands is to make it easier to execute the neccessary files to bring YuMi into ROS either strictly in simulation or through communication with the controller of an existing YuMi. The YuMi quick commands only work if they were added when setting up the YuMi workspace as shown on the home wiki page.

Sections

YuMi Quick Commands Description

The YuMi quick commands consist of five command line inputs: yumi_demo, yumi_server, yumi, yumi_lead, and yumi_moveit. The yumi_demo command brings a strictly simulated YuMi into ROS. The yumi_server and yumi commands both are used for interfacing with an existing YuMi. These files load the YuMi model into ROS and communicate with the controller to send motion commands and receive the robot state respectively. The yumi_lead command executed the lead through script for generating RAPID modules. The yumi_moveit command initializes the interface between YuMi and the MoveIt! library.

As described below, the operations performed by yumi_server and yumi can all be done just through the yumi command with the correct additional parameters, but this is not suggested since a more straight forward approach is to first ensure that the motion and state servers on ROS are communicating with the existing YuMi before loading YuMi into ROS. Executing only the yumi command to both load YuMi into ROS and initialize the state/motion servers has not been tested as well.

Back to top

List of YuMi Quick Commands

Below is a list of the YuMi quick commands along with a short description. All of these commands have additional parameters that added to perform different operations like loading two grippers when loading YuMi into ROS.

Command Description
yumi_demo Load a simulated YuMi into ROS
yumi Load a real YuMi into ROS using feedback from the YuMi controller
yumi_server Run the motion and state servers used to communicate with the YuMi controller
yumi_node Run the YuMi node for interfacing with MoveIt! software
yumi_interface Run the YuMi node interface script for interfacing with the YuMi node
yumi_leap Run the YuMi Leap Motion interface script for interfacing with the Leap Motion sensor
yumi_lead Run the YuMi lead through script for generating RAPID modules
yumi_moveit Run the YuMi Moveit! interface (Deprecated)

Below shows the command line equivalents of running the YuMi quick commands. Please not that the additional parameters shown in the next section cannot be used the same way as they are used when executing with YuMi quick commands. For more information, please look at the List of Additional Parameters for YuMi Quick Commands section.

yumi_demo
rosrun yumi_moveit_config demo.launch
yumi
rosrun yumi_moveit_config moveit_planning_execution.launch
yumi_server
rosrun yumi_support robot_interface.launch
yumi_node
roslaunch yumi_scripts yumi_node.launch
yumi_interface
rosrun yumi_scripts yumi_interface
yumi_leap
roslaunch yumi_scripts leap_interface.launch
yumi_lead
rosrun yumi_scripts lead_through

Deprecated Quick Commands

The quick command(s) below still work, but the associated script(s) will not be improved in the future.

yumi_moveit
rosrun yumi_scripts moveit_interface

Back to top

List of Additional Parameters for YuMi Quick Commands

Please note that if YuMi quick commands have not been added when creating the YuMi workspace as described on the wiki home page, then additional parameters cannot be added in the same way as they are shown below. If YuMi quick commands are not being used and the user would like to load a simulated YuMi into ROS, visualize YuMi in RViz, and load YuMi with two grippers, then below are some examples of quick commands with their non YuMi quick command versions. The same conversion works with all other additional parameters for the yumi_demo, yumi_server, and yumi commands but not for the yumi_lead and yumi_moveit commands. The conventions for the yumi_lead and yumi_moveit commands shown below in this section is the same convention that should be used if not using YuMi quick commands as in the example below.

yumi_demo rviz two_grippers
rosrun yumi_moveit_config demo.launch rviz:=true two_grippers:=true
yumi_lead both test_module
rosrun yumi_scripts lead_through both test_module

Please also note that the *yumi_moveit quick command has been deprecated. This command can still be used, but the associated script will not be improved in the future.

Back to top


Loading a Simulated YuMi into ROS

Executing the yumi_demo command in a terminal window by default will load a simulated YuMi into ROS without loading YuMi into RViz (visualizer) and YuMi will be loaded into ROS with a VI sensor attached to the left arm and a gripper attached to the right arm. Two additional parameters, rviz and two_grippers, can be executed along with yumi_demo to load YuMi into RViz and to put grippers on each arm of YuMi when loading YuMi into ROS. The additional parameters can be seen below with a short description along with examples of how to execute them.

Parameter Description
rviz Load RViz at execution in order to show the simulated YuMi
two_grippers Load YuMi into ROS with a gripper attached to each arm

If the user would like to load a simulated YuMi into ROS with default parameters as described above:

yumi_demo

If the user would like to also load the simulated YuMi into RViz:

yumi_demo rviz

If the user would like to load a simulated YuMi into ROS with two grippers:

yumi_demo two_grippers

If the user would like to load the simulated YuMi into RViz and load a simulated YuMi into ROS with two grippers:

yumi_demo rviz two_grippers

Please note that the order of the parameters does not matter

Back to top


Loading an Existing YuMi into ROS

Executing the yumi command in a terminal window by default will load YuMi into ROS without loading YuMi into RViz (visualizer) and YuMi will be loaded into ROS with a VI sensor attached to the left arm and a gripper attached to the right arm. By default, this command will also assume that the state/motion servers are already running. Five additional parameters, rviz, two_grippers, robot_interface, state_servers_only, and an IP address, can be executed along with yumi to load YuMi into RViz, put grippers on each arm of YuMi when loading YuMi into ROS, and load the state/motion servers at the same time along with the state servers additional parameters (state_servers_only and IP address). The additional parameters can be seen below with a short description along with examples of how to execute them.

Parameter Description
rviz Load RViz at execution in order to show YuMi
two_grippers Load YuMi into ROS with a gripper attached to each arm
robot_interface Run the YuMi state/motion servers concurrently
state_servers_only Only execute the state servers and not the motion servers in ROS
IP Address Change the assumed IP address of YuMi (default: 192.168.125.1)

Please note that the state_servers_only and the IP address will not have an effect to the program execution is supplied as additional parameters without supplying robot_interface as well since there parameters are only used to adjust the execution of the robot interface node (this node executed the state/motion servers). For that reason, if these commands are supplied without the robot interface commands, then the program will return an error and will not load YuMi into ROS. Also, if the command two_grippers is supplied with robot_interface, then the state/motion servers will assume YuMi is being loaded into ROS with two grippers.

If the user would like to load YuMi into ROS with default parameters as described above:

yumi

If the user would like to also load YuMi into RViz:

yumi rviz

If the user would like to load YuMi into ROS with two grippers:

yumi two_grippers

If the user would like to load YuMi into RViz and load YuMi into ROS with two grippers:

yumi rviz two_grippers

The commands below are for executing the state/motion servers at the same time as loading YuMi into ROS, essentially combining the YuMi quick commands yumi_server and yumi into one command of yumi with the appropriate additional parameters. This is not recommended since a more straight forward approach is to first ensure that the state/motion servers are running properly before loading YuMi into ROS. In that case, it is better to first run yumi_server with the appropriate additional parameters and then run yumi without the addition parameters robot_interface, state_servers_only, or an IP address. Running these commands in separate terminal windows will also make it easier to track errors since any potential errors from executing either script will be displayed in separate windows.

If the user would like to load the state/motion servers with the default parameters shown in the section above called Existing YuMi: Loading YuMi into ROS at the same time as loading YuMi into ROS:

yumi robot_interface

If the user would like to load the state/motion servers with all additional parameters at the same time as loading YuMi into ROS:

yumi robot_interface two_grippers state_servers_only 192.168.1.1

The IP address (192.168.1.1 above) should be changed to whatever IP address the existing YuMi has if it is not the default IP address shown above in the table.

If the user would like to run all addition parameters:

yumi rviz two_grippers robot_interface state_servers_only 192.168.1.1

Please note that the order of the parameters does not matter

Back to top


Executing State and Motion Servers for an Existing YuMi

Executing the yumi_server command in a terminal window by default will initialize the state and motion servers in ROS that are used to communicate with the existing YuMi in order to send motion commands and receive the joint state of the robot. By default, this command will also assume that YuMi will be loaded into ROS with a VI sensor attached to the left arm and a gripper attached to the right arm (see the section below for more information) and will assume that the existing YuMi has its default IP address. Three additional parameters, two_grippers, state_server_only and an IP address, can be executed along with yumi_server to assume that YuMi will be loaded into ROS with two grippers, to only execute the state servers and not the motion servers, and assume YuMi has a different IP address than the default IP. The additional parameters can be seen below with a short description along with examples of how to execute them.

Parameter Description
two_grippers Assume YuMi will be loaded into ROS with two grippers
state_servers_only Only execute the state servers and not the motion servers in ROS
IP Address Change the assumed IP address of YuMi (default: 192.168.125.1)

If the user would like to run the state and motion servers in ROS with default parameters as described above:

yumi_server

If the user would like to assume that YuMi will be loaded into ROS with two grippers:

yumi_server two_grippers

If the user would like to only run the state servers:

yumi_server state_servers_only

If the user would like to change the expected IP address of YuMi:

yumi_server 192.168.1.1

The IP address (192.168.1.1 above) should be changed to whatever IP address the existing YuMi has if it is not the default IP address shown above in the table.

If the user would like to run only the state servers, assume YuMi will be loaded into ROS with two grippers and would like to change the expected IP address of YuMi:

yumi_server two_grippers state_servers_only 192.168.1.1

Please note that the order of the parameters does not matter

Back to top


Generating YuMi RAPID Modules

Executing the yumi_lead command in a terminal window will run the script that is used to generate RAPID modules based on stored positions of YuMi. Two additional parameters are required, $file_name and <left/right/both>, which will be the file name used for the generated RAPID module and indicating which arm on YuMi that the positions are being stored for respectively. An addition parameter is optional, debug, which will run the program in debug mode from the data. If the debug command is not added at program execution, it can be added while the program is running. For more information on the lead through script, please take a look at the YuMi lead through wiki page. The additional parameters can be seen below with a short description along with examples of how to execute them.

Parameter Description
$file_name* Name of the RAPID module that will be generated
<left/right/both>* The arm(s) that positions are being stored for
debug Run the program in debug mode displaying the program background operations
* Required parameters

Order of parameters:

yumi_lead $file_name <left/right/both> debug

The $ symbol indicates that the shown variable name should be replaced by a name (in this case the desired save file name), and the <> symbols indicate that the user should choose one of the options listed within the angle brackets.

If the user would like to save the RAPID module as test_file and save positions for the left arm

yumi_lead test_file left

Note: Do not add a file extension to the file name. This is automatically added during program execution

If the user would like to use the same file name but for both arms, and start the program in debug mode:

yumi_lead test_file both debug

Please note that the order of the parameters does matter

Back to top


Running YuMi Leap Interface Script

Executing the yumi_leap command in a terminal window will execute the launch file that will first loading the default configuration parameters file into the ROS parameters server, then will execute the YuMi leap interface script. More information on how to use the leap motion interface script can be found on the [YuMi Leap Motion Interface Wiki Page(https://github.com/ethz-asl/yumi/wiki/YuMi-Node "YuMi Leap Motion Interface Wiki Page").

To execute the YuMi node, run the following command:

yumi_leap

Back to top


Running the YuMi Node

Executing the yumi_node command in a terminal window will execute the launch file that will first loading the default configuration parameters file into the ROS parameters server, then will execute the YuMi node. The YuMi node waits to receive trajectories from an external node or user, as described in the YuMi node wiki page, and is able to construct RAPID module, create plans, save plans, and execute plans on YuMi.

To execute the YuMi node, run the following command:

yumi_node

Back to top


Running the YuMi Node Interface Script

Executing the yumi_interface command in a terminal window will run the script that interfaces with the YuMi node. The user can create his/her own script to interface with the YuMi node, but the YuMi interface script was designed to follow all the proper conventions as laid out in the YuMi node wiki page which is expected by the YuMi node.

The YuMi interface script can only be run after executing the YuMi node launch file as described in the previous section. The YuMi node launch file loads the parameters in the default configuration parameters file to the ROS parameter server which is used by the YuMi interface script. Running the YuMi interface script before executing the YuMi node launch file will cause and error and the scripts will be exited.

To run the YuMi interface file, run the following command:

yumi_interface

Back to top


Running the Interface Script Between YuMi and MoveIt! (Deprecated)

This quick command below still works, but the associated script will not be improved in the future.

Executing the yumi_moveit command in a terminal window will run the script that interfaces YuMi with the MoveIt! library and the RAPID module translator functions. There are no additional parameters for this command.

To execute the MoveIt! interface script, run the following command:

yumi_moveit

Back to top