<launch>
    <arg name="model" default="$(find ur_description)/urdf/ur5e.xacro"/>
    <arg name="controller_config_file" default="$(find grinding_robot_bringup)/config/ur5e_controllers_fake_joint.yaml" />
    <arg name="controllers" default="joint_state_controller scaled_pos_joint_traj_controller" />
    <arg name="rviz_config" default="$(find grinding_robot_bringup)/etc/display_for_grinding.rviz" />

    <!-- Load URDF -->
    <param name="robot_description" command="$(find xacro)/xacro '$(arg model)'" />
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

    <!-- launch rviz -->
    <node name="rviz" pkg="rviz" type="rviz" respawn="false" args="-d $(arg rviz_config)" output="screen"/>

    <!-- Load controllers -->
    <rosparam file="$(arg controller_config_file)" command="load"/>
    <node name="ros_control_controller_spawner" pkg="controller_manager" type="spawner" args="$(arg controllers)" output="screen" respawn="false" />

    <!-- Launch moveit -->
    <include file="$(find ur5e_moveit_config)/launch/move_group.launch">
        <arg name="allow_trajectory_execution" default="true" />
        <arg name="fake_execution" value="false" />
    </include>

    <!--Run Fake joint driver -->
    <node name="fake_joint_driver" pkg="fake_joint_driver" type="fake_joint_driver_node" />

    <!-- GUI for joint control -->
    <node name="rqt_joint_trajectory_controller" pkg="rqt_joint_trajectory_controller" type="rqt_joint_trajectory_controller" output="screen"/>

    <!-- Plot for monitoring -->
    <node name="rqt_plot" pkg="rqt_plot" type="rqt_plot" output="screen"/>

</launch>