mirror of
https://gitlab.com/obbart/universal_robots_ros_driver.git
synced 2026-04-10 01:50:46 +02:00
* Re-added UR script - for custom UR Script execution * Restarting the driver when robot closes the connection on script error. The pipelines work in the way that if the connection is is closed by the control PC, it will not be re-established. This happens for example if you use the URScript topic and upload script that does not compile. The robot will then close the connection, the pipeline will close and any subsequent uploads will fail and noone realises there is a problem. While we could re-establish the connection, I think much better solution is to shutdown the driver in such case. This is much more resilient behaviour as it will clean up any inconsistent driver state. We can utilise "respawn" feature of ROS launch and restart such driver automatically (launch files are updated as part of that change). On top of "production" stability, it allows for much nicer development workflow - you can use URScript topic for development of new scripts and have the driver restart every time you make mistake. Without it, any mistake requires restarting the driver manually.
43 lines
2.0 KiB
XML
43 lines
2.0 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
Universal robot common bringup. Starts ur driver node and robot state
|
|
publisher (translates joint positions to propper tfs).
|
|
|
|
Usage:
|
|
ur_common.launch robot_ip:=<value>
|
|
-->
|
|
<launch>
|
|
<!-- robot_ip: IP-address of the robot's socket-messaging server -->
|
|
<arg name="robot_ip" />
|
|
<arg name="min_payload" />
|
|
<arg name="max_payload" />
|
|
<arg name="prefix" default="" />
|
|
<arg name="servoj_time" default="0.008" />
|
|
<arg name="base_frame" default="$(arg prefix)base" />
|
|
<arg name="tool_frame" default="$(arg prefix)tool0_controller" />
|
|
<arg name="shutdown_on_disconnect" default="true" />
|
|
|
|
<!-- require_activation defines when the service /ur_driver/robot_enable needs to be called. -->
|
|
<arg name="require_activation" default="Never" /> <!-- Never, Always, OnStartup -->
|
|
|
|
<!-- The max_velocity parameter is only used for debugging in the ur_driver. It's not related to actual velocity limits -->
|
|
<arg name="max_velocity" default="10.0"/> <!-- [rad/s] -->
|
|
|
|
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
|
|
|
|
<!-- driver -->
|
|
<node name="ur_driver" pkg="ur_modern_driver" type="ur_driver" output="screen" respawn="">
|
|
<!-- copy the specified IP address to be consistant with ROS-Industrial spec. -->
|
|
<param name="prefix" type="str" value="$(arg prefix)" />
|
|
<param name="robot_ip_address" type="str" value="$(arg robot_ip)" />
|
|
<param name="min_payload" type="double" value="$(arg min_payload)" />
|
|
<param name="max_payload" type="double" value="$(arg max_payload)" />
|
|
<param name="max_velocity" type="double" value="$(arg max_velocity)" />
|
|
<param name="servoj_time" type="double" value="$(arg servoj_time)" />
|
|
<param name="base_frame" type="str" value="$(arg base_frame)"/>
|
|
<param name="tool_frame" type="str" value="$(arg tool_frame)"/>
|
|
<param name="require_activation" type="str" value="$(arg require_activation)" />
|
|
<param name="shutdown_on_disconnect" type="bool" value="$(arg shutdown_on_disconnect)"/>
|
|
</node>
|
|
</launch>
|