<launch>

  <!-- This launch file provides a socket-based connection to industrial robots
       that implement the standard ROS Industrial simple_message protocol.
	   *** Motion control is implemented by DOWNLOADING path data to the robot ***
           (for STREAMING path-control, use a different launch file)

       Several nodes are started, to supply both low-level robot communication
       and higher-level actionlib support:
         - robot_state : publishes current joint positions and robot state data
         - motion_download_interface : command robot motion by sending motion points to robot
         - joint_trajectory_action : actionlib interface to control robot motion

    Usage:
      robot_interface_download.launch robot_ip:=<value>
  -->

  <!-- robot_ip: IP-address of the robot's socket-messaging server -->
  <arg name="robot_ip" doc="IP of the controller" />
  
  <!-- copy the specified IP address to the Parameter Server, for use by nodes below -->
  <param name="/robot_ip_address" type="str" value="$(arg robot_ip)"/>
  
  <!-- robot_state: publishes joint positions and robot-state data
                   (from socket connection to robot) -->
  <node pkg="industrial_robot_client" type="robot_state" name="robot_state"/>
  
  <!-- motion_download_interface: sends robot motion commands by DOWNLOADING path to robot
                                  (using socket connection to robot) -->
  <node pkg="industrial_robot_client" type="motion_download_interface" name="motion_download_interface"/>
  
  <!-- joint_trajectory_action: provides actionlib interface for high-level robot control -->
  <node pkg="industrial_robot_client" type="joint_trajectory_action" name="joint_trajectory_action"/>

</launch>
