Skip to content

Commit ac32107

Browse files
committed
Unify URDF and ros2_control xacro
1 parent 01da494 commit ac32107

File tree

3 files changed

+119
-110
lines changed

3 files changed

+119
-110
lines changed

robotiq_description/urdf/robotiq_gripper.ros2_control.xacro

Lines changed: 96 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,106 @@
11
<?xml version="1.0"?>
22
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
33

4-
<xacro:macro name="robotiq_gripper_ros2_control" params="name com_port">
5-
<ros2_control name="${name}" type="actuator">
4+
<xacro:macro name="robotiq_gripper_ros2_control" params="
5+
name
6+
prefix
7+
sim_ignition:=false
8+
sim_isaac:=false
9+
use_fake_hardware:=false
10+
fake_sensor_commands:=false
11+
com_port:=/dev/ttyUSB0">
12+
13+
<ros2_control name="${name}" type="system">
14+
<!-- Plugins -->
615
<hardware>
7-
<plugin>robotiq_driver/RobotiqGripperHardwareInterface</plugin>
8-
<param name="gripper_closed_position">0.7929</param>
9-
<param name="COM_port">${com_port}</param>
10-
<param name="gripper_speed_multiplier">1.0</param>
11-
<param name="gripper_force_multiplier">0.5</param>
16+
<xacro:if value="${sim_isaac}">
17+
<plugin>isaac_ros2_control/IsaacSystem</plugin>
18+
<param name="joint_commands_topic">/isaac_joint_commands</param>
19+
<param name="joint_states_topic">/isaac_joint_states</param>
20+
</xacro:if>
21+
<xacro:if value="${sim_ignition}">
22+
<plugin>ign_ros2_control/IgnitionSystem</plugin>
23+
</xacro:if>
24+
<xacro:if value="${use_fake_hardware}">
25+
<plugin>mock_components/GenericSystem</plugin>
26+
<param name="fake_sensor_commands">${fake_sensor_commands}</param>
27+
<param name="state_following_offset">0.0</param>
28+
</xacro:if>
29+
<xacro:unless value="${use_fake_hardware or sim_ignition or sim_isaac}">
30+
<plugin>robotiq_driver/RobotiqGripperHardwareInterface</plugin>
31+
<param name="gripper_closed_position">0.7929</param>
32+
<param name="COM_port">${com_port}</param>
33+
<param name="gripper_speed_multiplier">1.0</param>
34+
<param name="gripper_force_multiplier">0.5</param>
35+
</xacro:unless>
1236
</hardware>
13-
<joint name="robotiq_85_left_knuckle_joint">
14-
<param name="initial_position">0.7929</param>
37+
38+
<!-- Joint interfaces -->
39+
<!-- With Ignition or Hardware, they handle mimic joints, so we only need this command interface activated -->
40+
<joint name="${prefix}robotiq_85_left_knuckle_joint">
1541
<command_interface name="position" />
16-
<state_interface name="position" />
17-
<state_interface name="velocity" />
42+
<state_interface name="position">
43+
<param name="initial_value">0.7929</param>
44+
</state_interface>
45+
<state_interface name="velocity"/>
1846
</joint>
47+
<!-- When simulating we need to include the rest of the gripper joints -->
48+
<xacro:if value="${use_fake_hardware or sim_isaac or sim_ignition}">
49+
<joint name="${prefix}robotiq_85_right_knuckle_joint">
50+
<param name="mimic">robotiq_85_left_knuckle_joint</param>
51+
<param name="multiplier">-1</param>
52+
<xacro:unless value="${sim_ignition}">
53+
<command_interface name="position"/>
54+
<state_interface name="position"/>
55+
<state_interface name="velocity"/>
56+
</xacro:unless>
57+
</joint>
58+
<joint name="${prefix}robotiq_85_left_inner_knuckle_joint">
59+
<param name="mimic">robotiq_85_left_knuckle_joint</param>
60+
<param name="multiplier">1</param>
61+
<xacro:unless value="${sim_ignition}">
62+
<command_interface name="position"/>
63+
<state_interface name="position"/>
64+
<state_interface name="velocity"/>
65+
</xacro:unless>
66+
</joint>
67+
<joint name="${prefix}robotiq_85_right_inner_knuckle_joint">
68+
<param name="mimic">robotiq_85_left_knuckle_joint</param>
69+
<param name="multiplier">-1</param>
70+
<xacro:unless value="${sim_ignition}">
71+
<command_interface name="position"/>
72+
<state_interface name="position"/>
73+
<state_interface name="velocity"/>
74+
</xacro:unless>
75+
</joint>
76+
<joint name="${prefix}robotiq_85_left_finger_tip_joint">
77+
<param name="mimic">robotiq_85_left_knuckle_joint</param>
78+
<param name="multiplier">-1</param>
79+
<xacro:unless value="${sim_ignition}">
80+
<command_interface name="position"/>
81+
<state_interface name="position"/>
82+
<state_interface name="velocity"/>
83+
</xacro:unless>
84+
</joint>
85+
<joint name="${prefix}robotiq_85_right_finger_tip_joint">
86+
<param name="mimic">robotiq_85_left_knuckle_joint</param>
87+
<param name="multiplier">1</param>
88+
<xacro:unless value="${sim_ignition}">
89+
<command_interface name="position"/>
90+
<state_interface name="position"/>
91+
<state_interface name="velocity"/>
92+
</xacro:unless>
93+
</joint>
94+
</xacro:if>
95+
96+
<!-- Only add this with fake hardware mode -->
97+
<xacro:unless value="${sim_ignition or sim_isaac}">
98+
<gpio name="reactivate_gripper">
99+
<command_interface name="reactivate_gripper_cmd" />
100+
<command_interface name="reactivate_gripper_response" />
101+
</gpio>
102+
</xacro:unless>
103+
19104
</ros2_control>
20105
</xacro:macro>
21106

robotiq_description/urdf/robotiq_gripper_macro.urdf.xacro

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
11
<?xml version="1.0"?>
22
<robot xmlns:xacro="http://wiki.ros.org/xacro" name="robotiq_gripper">
3-
<xacro:macro name="robotiq_gripper" params="parent *origin sim:=false prefix">
3+
<xacro:macro name="robotiq_gripper" params="
4+
name
5+
prefix
6+
parent
7+
*origin
8+
sim_ignition:=false
9+
sim_isaac:=false
10+
use_fake_hardware:=false
11+
fake_sensor_commands:=false
12+
com_port:=/dev/ttyUSB0">
13+
14+
<!-- ros2 control include -->
15+
<xacro:include filename="$(find robotiq_description)/urdf/robotiq_gripper.ros2_control.xacro" />
16+
<!-- ros2 control instance -->
17+
<xacro:robotiq_gripper_ros2_control
18+
name="${name}" prefix="${prefix}"
19+
sim_ignition="${sim_ignition}"
20+
sim_isaac="${sim_isaac}"
21+
use_fake_hardware="${use_fake_hardware}"
22+
fake_sensor_commands="${fake_sensor_commands}"
23+
com_port="${com_port}"
24+
/>
25+
426
<link name="${prefix}robotiq_85_base_link">
527
<visual>
628
<geometry>

robotiq_description/urdf/robotiq_sim_gripper.ros2_control.xacro

Lines changed: 0 additions & 98 deletions
This file was deleted.

0 commit comments

Comments
 (0)