/
omnigrasper.launch
104 lines (90 loc) · 4.85 KB
/
omnigrasper.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?xml version="1.0"?>
<!-- This file is a part of the ERC ResiBots project.
This software is governed by the CeCILL license under French law and abiding by
the rules of distribution of free software. You can use, modify and/ or redistribute
the software under the terms of the CeCILL license as circulated by CEA, CNRS
and INRIA at the following URL "http://www.cecill.info". As a counterpart to the
access to the source code and rights to copy, modify and redistribute granted by
the license, users are provided only with a limited warranty and the software's
author, the holder of the economic rights, and the successive licensors have only
limited liability. In this respect, the user's attention is drawn to the risks
associated with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software, that may
mean that it is complicated to manipulate, and that also therefore means that it
is reserved for developers and experienced professionals having in-depth computer
knowledge. Users are therefore encouraged to load and test the software's
suitability as regards their requirements in conditions enabling the security of
their systems and/or data to be ensured and, more generally, to use and operate
it in the same conditions as regards security. The fact that you are presently
reading this means that you have had knowledge of the CeCILL license and that
you accept its terms. -->
<launch>
<!--
What is done here
- load URDF description the TF tree
- control node for the arm (dynamixel hardware interface)
- control node for the YouBot mobile base (youbot driver)
Arguments
The arguments of this launch file can be described with
`roslaunch omni_bringup omnigrasper.launch - -ros-args`
Topics published
TODO: descibe published topics
Subscribed topics
Depends on the arm_control_mode, as far as the arm goes
TODO: list subscribed topics for the base and the arm
-->
<!-- <env name="ROSCONSOLE_CONFIG_FILE"
value="$(find omni_bringup)/custom_rosconsole.conf"/> -->
<arg name="use_base" default="false" />
<arg name="use_arm" default="true" />
<arg name="use_mocap" default="false" />
<arg name="arm_control_mode" default="velocity"
doc="how the joints of the arm are controlled : position, velocity,
safevel (enforce safety constraints on the arm) or policy
(Black-DROPS experiments)"/>
<!-- URDF robot description -->
<include file="$(find omni_description)/launch/omnigrasper.launch" />
<!-- launch the base -->
<group if="$(arg use_base)">
<param name="youBotHasBase" type="bool" value="true"/>
<param name="youBotDriverCycleFrequencyInHz" type="double" value="50.0"/>
<param name="youBotConfigurationFilePath" type="string"
value="$(find youbot_driver)/config"/>
<param name="youBotBaseJointVelocity" type="double" value="4.0"/>
<param name="youBotBaseJointAcceleration" type="double" value="4.0"/>
<param name="youBotBaseName" type="str" value="youbot-base"/>
<!-- Start the base driver. -->
<node name="youbot_driver" pkg="youbot_driver_ros_interface"
type="youbot_driver_ros_interface" output="screen"/>
</group>
<!-- launch the arm -->
<group if="$(arg use_arm)">
<!-- Parameters for the hardware interface and controllers -->
<rosparam file="$(find omni_bringup)/config/omnigrasper_common.yaml"/>
<rosparam if="$(eval arg('arm_control_mode') == 'position')"
file="$(find omni_bringup)/config/omnigrasper_pos.yaml"/>
<rosparam if="$(eval arg('arm_control_mode') == 'velocity')"
file="$(find omni_bringup)/config/omnigrasper_vel.yaml"/>
<rosparam if="$(eval arg('arm_control_mode') == 'safevel')"
file="$(find omni_bringup)/config/omnigrasper_safevel.yaml"/>
<rosparam if="$(eval arg('arm_control_mode') == 'policy')"
file="$(find omni_bringup)/config/omnigrasper_policy.yaml"/>
<rosparam if="$(eval arg('arm_control_mode') == 'test-limits')"
file="$(find omni_bringup)/config/omnigrasper_test_limits.yaml"/>
<!-- starting the hardware interface and controllers -->
<node name="dynamixel_control" pkg="dynamixel_control_hw"
type="dynamixel_control_p2" output="screen" clear_params="true"
required="true"/>
<node name="controller" pkg="controller_manager" type="spawner"
respawn="false" output="screen" clear_params="true"
args="/dynamixel_controllers/joint_state_controller
/dynamixel_controllers/omni_arm_controller"/>
<!-- Publish robot's state in the tf tree -->
<node name="robot_state_publisher_arm" pkg="robot_state_publisher"
type="robot_state_publisher" />
</group>
<!-- start motion capture -->
<group if="$(arg use_mocap)">
<include file="$(find omni_bringup)/launch/omni_mocap.launch" />
</group>
</launch>