-
Notifications
You must be signed in to change notification settings - Fork 1k
/
ur5_bringup.launch
75 lines (63 loc) · 4.05 KB
/
ur5_bringup.launch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?xml version="1.0"?>
<launch>
<!--
Main entry point for loading a single UR5 into Gazebo, in isolation, in the
empty world.
A set of ros_control controllers similar to those loaded by ur_robot_driver
will be loaded by 'ur_control.launch.xml' (note: *similar*, *not* identical).
This bringup .launch file is intentionally given the same name as the one in
the ur_robot_driver package, as it fulfills a similar role: loading the
configuration and starting the necessary ROS nodes which in the end provide
a ROS API to a Universal Robots UR5. Only in this case, instead of a real
robot, a virtual model in Gazebo is used.
NOTE 1: as this is not a real robot, there are limits to the faithfulness
of the simulation. Dynamic behaviour will be different from a real robot.
Only a subset of topics, actions and services is supported. Specifically,
interaction with the Control Box itself is not supported, as Gazebo does not
simulate a Control Box. This means: no Dashboard server, no URScript topic
and no force-torque sensor among other things.
NOTE 2: users wishing to integrate a UR5 with other models into a more
complex simulation should NOT modify this file. Instead, if it would be
desirable to reuse this file with a custom simulation, they should create a
copy and update this copy so as to accomodate required changes.
In those cases, treat this file as an example, showing one way how a Gazebo
simulation for UR robots *could* be launched. It is not necessary to mimic
this setup completely.
-->
<!--Robot description and related parameter files -->
<arg name="robot_description_file" default="$(dirname)/inc/load_ur5.launch.xml" doc="Launch file which populates the 'robot_description' parameter."/>
<arg name="joint_limit_params" default="$(find ur_description)/config/ur5/joint_limits.yaml"/>
<arg name="kinematics_params" default="$(find ur_description)/config/ur5/default_kinematics.yaml"/>
<arg name="physical_params" default="$(find ur_description)/config/ur5/physical_parameters.yaml"/>
<arg name="visual_params" default="$(find ur_description)/config/ur5/visual_parameters.yaml"/>
<!-- Controller configuration -->
<arg name="controller_config_file" default="$(find ur_gazebo)/config/ur5_controllers.yaml" doc="Config file used for defining the ROS-Control controllers."/>
<arg name="controllers" default="joint_state_controller eff_joint_traj_controller" doc="Controllers that are activated by default."/>
<arg name="stopped_controllers" default="joint_group_eff_controller" doc="Controllers that are initally loaded, but not started."/>
<!-- robot_state_publisher configuration -->
<arg name="tf_prefix" default="" doc="tf_prefix used for the robot."/>
<arg name="tf_pub_rate" default="125" doc="Rate at which robot_state_publisher should publish transforms."/>
<!-- Gazebo parameters -->
<arg name="paused" default="false" doc="Starts Gazebo in paused mode" />
<arg name="gui" default="true" doc="Starts Gazebo gui" />
<!-- Load urdf on the parameter server -->
<include file="$(arg robot_description_file)">
<arg name="joint_limit_params" value="$(arg joint_limit_params)"/>
<arg name="kinematics_params" value="$(arg kinematics_params)"/>
<arg name="physical_params" value="$(arg physical_params)"/>
<arg name="visual_params" value="$(arg visual_params)"/>
</include>
<!-- Robot state publisher -->
<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher">
<param name="publish_frequency" type="double" value="$(arg tf_pub_rate)" />
<param name="tf_prefix" value="$(arg tf_prefix)" />
</node>
<!-- Start the 'driver' (ie: Gazebo in this case) -->
<include file="$(dirname)/inc/ur_control.launch.xml">
<arg name="controller_config_file" value="$(arg controller_config_file)"/>
<arg name="controllers" value="$(arg controllers)"/>
<arg name="gui" value="$(arg gui)"/>
<arg name="paused" value="$(arg paused)"/>
<arg name="stopped_controllers" value="$(arg stopped_controllers)"/>
</include>
</launch>