-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathforque.xacro
More file actions
155 lines (132 loc) · 10.1 KB
/
Copy pathforque.xacro
File metadata and controls
155 lines (132 loc) · 10.1 KB
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:gazebo="http://playerstage.sourceforge.net/gazebo/xmlschema/#gz"
xmlns:model="http://playerstage.sourceforge.net/gazebo/xmlschema/#model"
xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
xmlns:body="http://playerstage.sourceforge.net/gazebo/xmlschema/#body"
xmlns:geom="http://playerstage.sourceforge.net/gazebo/xmlschema/#geom"
xmlns:joint="http://playerstage.sourceforge.net/gazebo/xmlschema/#joint"
xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
xmlns:rendering="http://playerstage.sourceforge.net/gazebo/xmlschema/#rendering"
xmlns:renderable="http://playerstage.sourceforge.net/gazebo/xmlschema/#renderable"
xmlns:physics="http://playerstage.sourceforge.net/gazebo/xmlschema/#physics"
xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:property name="forque_color" value="0.4 0.4 0.4 1" />
<xacro:property name="J_PI" value="3.1415926535897931" />
<xacro:property name="default_inertial">
<inertia ixx="0.000005" iyy="0.000005" iyz="0" izz="0.000005" ixy="0" ixz="0"/>
</xacro:property>
<xacro:property name="forque_assembly_dummy_default_value" value="1234567890"/>
<xacro:macro name="forque_assembly_link" params="link_name link_mesh mass:=0 cog:='0 0 0' *inertia">
<link name="${link_name}">
<visual>
<geometry>
<mesh
filename="package://ada_description/meshes/forque/${link_mesh}.stl"
scale="0.001 0.001 0.001"/>
</geometry>
<material name="abs">
<color rgba="${forque_color}" />
</material>
</visual>
<collision>
<geometry>
<mesh
filename="package://ada_description/meshes/forque/${link_mesh}.stl"
scale="0.001 0.001 0.001"/>
</geometry>
</collision>
<inertial>
<origin xyz="${cog}" rpy="0 0 0"/>
<mass value="${mass}"/>
<xacro:insert_block name="inertia"/>
</inertial>
</link>
</xacro:macro>
<xacro:macro name="forque_assembly_joint" params="joint_name type parent child joint_axis_xyz joint_origin_xyz joint_origin_rpy joint_lower_limit:=${forque_assembly_dummy_default_value} joint_upper_limit:=${forque_assembly_dummy_default_value} joint_velocity_limit:=${forque_assembly_dummy_default_value} joint_torque_limit:=${forque_assembly_dummy_default_value}">
<joint name="${joint_name}" type="${type}">
<parent link="${parent}"/>
<child link="${child}"/>
<axis xyz="${joint_axis_xyz}"/>
<xacro:if value="${type == 'revolute'}">
<limit
effort="${joint_torque_limit}"
velocity="${joint_velocity_limit}"
lower="${joint_lower_limit}"
upper="${joint_upper_limit}"/>
</xacro:if>
<xacro:if value="${type == 'continuous'}">
<limit effort="${joint_torque_limit}" velocity="${joint_velocity_limit}"/>
</xacro:if>
<origin xyz="${joint_origin_xyz}" rpy="${joint_origin_rpy}"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
</xacro:macro>
<xacro:macro name="forque_assembly" params="base_parent end_effector_tool use_antenna:=false">
<xacro:forque_assembly_link link_name="FTMount" link_mesh="2024_01_18_FTMount" mass="0.103" cog="0.010934 -0.138522 -0.05066">
<inertia ixx="0.00017623" iyy="0.000068428" iyz="-0.00001757133" izz="0.00021455" ixy="0.00000095729" ixz="-0.0000000562908"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="FTMount_to_world" type="fixed" parent="${base_parent}" child="FTMount" joint_axis_xyz="0 0 1" joint_origin_xyz="0 0 -0.005" joint_origin_rpy="0 0 0"/>
<xacro:forque_assembly_link link_name="FT" link_mesh="2023_03_09_wirelessFT" mass="0.280" cog="0.0111446 -0.0882070 -0.0544936">
<inertia ixx="0.000543925" iyy="0.000165428" iyz="-0.00000001487288" izz="0.000691232" ixy="-0.00000128367" ixz="0"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="FT_to_FTMount" type="fixed" parent="FTMount" child="FT" joint_axis_xyz="0 0 1" joint_origin_xyz="0 0 0" joint_origin_rpy="0 0 0"/>
<xacro:if value="${use_antenna}">
<xacro:forque_assembly_link link_name="FTAntenna" link_mesh="2023_03_09_wirelessFTAntenna" mass="0.018" cog="-0.0162965 0.0666626 -0.0545096">
<xacro:insert_block name="default_inertial"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="FTAntenna_to_FT" type="fixed" parent="FT" child="FTAntenna" joint_axis_xyz="0 0 1" joint_origin_xyz="0 0 0" joint_origin_rpy="0 0 0"/>
</xacro:if>
<xacro:forque_assembly_link link_name="forkHandle" link_mesh="2024_06_24_forkHandleHollow" mass="0.028" cog="0.011097 -0.162629 -0.011948">
<inertia ixx="0.00003114" iyy="0.000011867" iyz="0.00000054005" izz="0.000038478" ixy="-0.00000050626" ixz="0.000000082271"/>
</xacro:forque_assembly_link>
<!-- The slight rotation was manually added due to empirical deformations in the robot gripped, such that the fingers and fork handle were slightly pitched up relative to the wrist. -->
<xacro:forque_assembly_joint joint_name="forkHandle_to_FTMount" type="fixed" parent="FTMount" child="forkHandle" joint_axis_xyz="0 0 1" joint_origin_xyz="0 0.005 0.0013" joint_origin_rpy="-0.025 0 -0.0065"/>
<xacro:forque_assembly_link link_name="forkHandleCover" link_mesh="2024_06_24_forkHandleCover" mass="0.004" cog="0.011157 -0.168451 0.006404">
<inertia ixx="0.0000027878" iyy="0.00000064518" iyz="0.00000016201" izz="0.000003363634" ixy="0.00000000012805" ixz="0.00000000006585"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="forkHandleCover_to_forkHandle" type="fixed" parent="forkHandle" child="forkHandleCover" joint_axis_xyz="0 0 1" joint_origin_xyz="0 0 0" joint_origin_rpy="0 0 0"/>
<xacro:if value="${end_effector_tool == 'articulable_fork'}">
<xacro:forque_assembly_link link_name="af_link_base" link_mesh="fr12-h103" mass="0.0907185" cog="0.0 0.0 0.0">
<xacro:insert_block name="default_inertial"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="af_joint_base" type="fixed" parent="forkHandle" child="af_link_base" joint_axis_xyz="0 0 1" joint_origin_xyz="0.010929196 -0.2826805 -0.0091" joint_origin_rpy="0 0 0"/>
<xacro:forque_assembly_link link_name="af_link_1" link_mesh="XC-430_idle" mass="0.065" cog="0.21641853 -14.751192 -16.796092">
<inertia ixx="18680.931" iyy="9585.9138" iyz="-845.46678" izz="17346.641" ixy="1.3348619" ixz="-45.354028"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="af_joint_1" type="revolute" parent="af_link_base" child="af_link_1" joint_axis_xyz="0 0 1" joint_origin_xyz="0 0 0" joint_origin_rpy="${J_PI/2} 0 ${J_PI/2}" joint_lower_limit="${-J_PI/2}" joint_upper_limit="${J_PI/2}" joint_velocity_limit="1" joint_torque_limit="1.4"/>
<xacro:forque_assembly_link link_name="af_motor_fixture_link" link_mesh="fr12-s101" mass="0.0453592" cog="0 0 0">
<xacro:insert_block name="default_inertial"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="af_motor_fixture_joint_1" type="fixed" parent="af_link_1" child="af_motor_fixture_link" joint_axis_xyz="0 0 1" joint_origin_xyz="0 0 0" joint_origin_rpy="0 ${-J_PI/2} 0"/>
<xacro:forque_assembly_link link_name="af_link_2" link_mesh="XC-430_idle" mass="0.065" cog="0.21641853 -14.751192 -16.796092">
<inertia ixx="18680.931" iyy="9585.9138" iyz="-845.46678" izz="17346.641" ixy="1.3348619" ixz="-45.354028"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="af_motor_fixture_joint_2" type="fixed" parent="af_link_1" child="af_link_2" joint_axis_xyz="0 0 1" joint_origin_xyz="-0.03825 0 0" joint_origin_rpy="0 ${-J_PI/2} 0"/>
<xacro:forque_assembly_link link_name="af_ft_adapter_link" link_mesh="roll_to_ft_adapter" mass="0.001" cog="0 0 0">
<xacro:insert_block name="default_inertial"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="af_joint_2" type="revolute" parent="af_link_2" child="af_ft_adapter_link" joint_axis_xyz="0 -1 0" joint_origin_xyz="0 0 0.019" joint_origin_rpy="${-J_PI/2} 0 0" joint_lower_limit="${-J_PI}" joint_upper_limit="${J_PI}" joint_velocity_limit="1" joint_torque_limit="1.4"/>
</xacro:if>
<xacro:forque_assembly_link link_name="forque" link_mesh="ATI-9105-TW-NANO25-E" mass="0.0634" cog="0.0124692 0.0137169 0.010558">
<inertia ixx="0.000005235822" iyy="0.000006264852" iyz="-0.00000004033694" izz="0.00000640797" ixy="-0.0000003129932" ixz="0.000000013798"/>
</xacro:forque_assembly_link>
<xacro:if value="${end_effector_tool == 'articulable_fork'}">
<xacro:forque_assembly_joint joint_name="af_forque_joint" type="fixed" parent="af_ft_adapter_link" child="forque" joint_axis_xyz="0 0 1" joint_origin_xyz="-0.0175 -0.011 0.004" joint_origin_rpy="${J_PI/2} ${J_PI/3} 0"/>
</xacro:if>
<xacro:if value="${end_effector_tool == 'fork'}">
<xacro:forque_assembly_joint joint_name="af_forque_joint" type="fixed" parent="forkHandle" child="forque" joint_axis_xyz="0 0 1" joint_origin_xyz="-0.00634 -0.222553 -0.004286" joint_origin_rpy="${J_PI/2} ${J_PI/3} 0"/>
</xacro:if>
<xacro:forque_assembly_link link_name="forkTine" link_mesh="fork_tine" mass="0.024" cog="0.013090 0.0180789 0.0445231">
<inertia ixx="0.0000098769" iyy="0.000009848103" iyz="0.00000057639" izz="0.0000015674" ixy="0.000000000806182" ixz="-0.00000000296036"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="forkTine_to_forque" type="fixed" parent="forque" child="forkTine" joint_axis_xyz="0 0 1" joint_origin_xyz="-0.0054 0.008 0.093" joint_origin_rpy="0 ${J_PI} ${240*J_PI/180}"/>
<link name="forkTip" />
<joint name="forkTip_to_forkTine" type="fixed">
<child link="forkTip"/>
<parent link="forkTine"/>
<origin rpy="${J_PI} 0 0" xyz="0.0135 0.007 0"/>
</joint>
</xacro:macro>
</root>