jeremy_ganylab

macros_evt1

May 15th, 2020
272
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?xml version="1.0"?>
  2. <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="evt1">
  3.  
  4.   <xacro:macro name="origin_base">
  5.             <origin rpy="0.0 0.0 0.0" xyz="0 0 0"/>
  6.   </xacro:macro>
  7.  
  8.  
  9.  
  10.     <xacro:property name="kd" value="10000000.0" />
  11.     <xacro:property name="kp" value="00.0"/>
  12.  
  13.   <!-- WHEELS MACRO -->
  14.     <xacro:macro name="wheel" params="rpy xyz name">
  15.    
  16.         <xacro:macro name="origin_wheel">
  17.             <origin rpy="${rpy}" xyz="${xyz}"/>
  18.         </xacro:macro>
  19.  
  20.         <link name="wheel_${name}_link">
  21.             <inertial>
  22.                 <xacro:origin_base />
  23.                 <mass value="${wheel_mass}" />
  24.                 <inertia ixx="0.0016" ixy="0" ixz="0" iyy="0.0016" iyz="0" izz="0.003" /><!-- Good value of inertia -->
  25.                 <!--<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />-->
  26.             </inertial>
  27.  
  28.             <collision>
  29.                 <xacro:origin_base />
  30.                 <geometry>
  31.                     <cylinder radius="${wheel_radius}" length="${wheel_length}"/>
  32.                 </geometry>
  33.             </collision>
  34.  
  35.             <visual>
  36.                 <xacro:origin_base />
  37.                 <geometry>
  38.                         <cylinder radius="${wheel_radius}" length="${wheel_length}"/>
  39.                 </geometry>
  40.                 <material name="green"/>
  41.             </visual>
  42.         </link>
  43.    
  44.         <joint name="wheel_${name}_joint" type="continuous">
  45.             <parent link="wheel_axe"/>
  46.             <child link="wheel_${name}_link"/>
  47.             <xacro:origin_wheel />
  48.             <limit effort="2000" velocity="200.0" />
  49.             <axis xyz="0 0 1"/>
  50.         </joint>
  51.    
  52.         <gazebo reference="wheel_${name}_link">
  53.             <mu1 value="30.5"/>
  54.             <mu2 value="2.5"/>
  55.             <kp value="${kd}" />
  56.             <kd value="${kp}" />
  57.         </gazebo>
  58.        
  59.         <!-- transmission -->
  60.         <transmission name="wheel_${name}_transmission">
  61.             <type>transmission_interface/SimpleTransmission</type>
  62.             <joint name="wheel_${name}_joint">
  63.                 <hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
  64.             </joint>
  65.             <actuator name="wheel_${name}_motor">
  66.                 <hardwareInterface>VelocityJointInterface</hardwareInterface>
  67.                 <mechanicalReduction>1</mechanicalReduction>
  68.             </actuator>
  69.         </transmission>
  70.     </xacro:macro>
  71.  
  72.  
  73.   <!-- CASTER WHEELS MACRO -->
  74.     <xacro:macro name="caster_wheel" params="rpy xyz name">
  75.    
  76.         <xacro:macro name="caster_origin_wheel">
  77.             <origin rpy="${rpy}" xyz="${xyz}"/>
  78.         </xacro:macro>
  79.  
  80.         <link name="caster_wheel_${name}_link">
  81.             <inertial>
  82.                 <xacro:origin_base />
  83.                 <mass value="${caster_wheel_mass}" />
  84.                 <inertia ixx="1.40041666667e-05" ixy="0" ixz="0" iyy="1.40041666667e-05" iyz="0" izz="2.56e-05" />
  85.             </inertial>
  86.  
  87.             <collision>
  88.                 <xacro:origin_base />
  89.                 <geometry>
  90.                     <cylinder radius="${caster_wheel_radius}" length="${caster_wheel_length}"/>
  91.                 </geometry>
  92.             </collision>
  93.  
  94.             <visual>
  95.                 <xacro:origin_base />
  96.                 <geometry>
  97.                         <cylinder radius="${caster_wheel_radius}" length="${caster_wheel_length}"/>
  98.                 </geometry>
  99.                 <material name="green"/>
  100.             </visual>
  101.         </link>
  102.  
  103.         <link name="caster_${name}_attach_link">
  104.             <visual>
  105.                 <xacro:origin_base />
  106.                 <geometry>
  107.                         <cylinder radius="0.005" length="0.05"/>
  108.                 </geometry>
  109.                 <material name="green"/>
  110.             </visual>
  111.  
  112.             <inertial>
  113.                 <xacro:origin_base />
  114.                 <mass value="${caster_wheel_mass}" />
  115.                 <inertia ixx="1.40041666667e-05" ixy="0" ixz="0" iyy="1.40041666667e-05" iyz="0" izz="2.56e-05" />
  116.             </inertial>
  117.         </link>
  118.  
  119.         <joint name="caster_wheel_${name}_joint_y" type="continuous">
  120.             <parent link="base_footprint"/>
  121.             <child link="caster_${name}_attach_link"/>
  122.             <xacro:caster_origin_wheel />
  123.             <!--<limit lower="-0.2" upper="0.2" effort="100" velocity="100"/>-->
  124.             <axis xyz="0 1 0"/>
  125.             <dynamics friction="0.03"/>
  126.         </joint>
  127.         <joint name="caster_wheel_${name}_joint" type="continuous">
  128.             <parent link="caster_${name}_attach_link"/>
  129.             <child link="caster_wheel_${name}_link"/>
  130.             <axis xyz="0 0 1"/>
  131.             <dynamics friction="0.03"/>
  132.             <origin xyz="0 0 0" rpy="0 0 0" />
  133.         </joint>
  134.  
  135.        
  136.    
  137.         <gazebo reference="caster_wheel_${name}_link">
  138.             <mu1>1.5</mu1>
  139.             <mu2>1.5</mu2>
  140.             <kp>5000000.0</kp>
  141.             <kd>10.0</kd>
  142.             <minDepth>0.001</minDepth>
  143.             <maxVel>0.1</maxVel>
  144.             <fdir1>1 0 0</fdir1>
  145.             <dynamics friction="0.05" />
  146.             <material>Gazebo/FlatGreen</material>
  147.         </gazebo>
  148.        
  149.     </xacro:macro>
  150.  
  151.     <xacro:macro name="sphere_" params="name xyz">
  152.         <xacro:macro name="origin_sphere">
  153.             <origin rpy="0 0 0" xyz="${xyz}"/>
  154.         </xacro:macro>
  155.         <link name="sphere_link_${name}">
  156.             <inertial>
  157.             <xacro:origin_base/>
  158.             <mass value="${boule_mass}"/>
  159.             <inertia ixx="0.0002835" ixy="0.0" ixz="0.0" iyy="0.0002835" iyz="0.0" izz="0.000324"/>
  160.             </inertial>
  161.                 <collision>
  162.                 <xacro:origin_base />
  163.                     <geometry>
  164.                     <sphere radius="${boule_size}"/>
  165.                     </geometry>
  166.                 </collision>
  167.                 <visual>
  168.                 <xacro:origin_base />
  169.                 <geometry>
  170.                     <sphere radius="${boule_size}"/>
  171.                 </geometry>
  172.                 <material name="blue"/>
  173.                 </visual>
  174.         </link>
  175.         <gazebo reference="sphere_link_${name}">
  176.         <kp>10e20</kp>
  177.         <kd>1.0</kd>
  178.         <mu1>0.2</mu1>
  179.         <mu2>0.1</mu2>
  180.         <maxContacts>1</maxContacts>
  181.         <maxVel>0.0</maxVel>
  182.         <min_depth>0.001</min_depth>
  183.         </gazebo>
  184.         <xacro:macro name="junta_model" params="name parent child">
  185.             <joint name="${name}_joint_y" type="continuous">
  186.                 <xacro:origin_sphere />
  187.                 <parent link="${parent}"/>
  188.                 <child link="${name}_junta1"/>
  189.                 <axis xyz="0 1 0" />
  190.                 <dynamics friction="0.06"/> <!--Ajout de friction pour pas que ca tourne a l'infini -->
  191.             </joint>
  192.  
  193.             <link name="${name}_junta1">
  194.                 <inertial>
  195.                     <mass value="0.025" />
  196.                     <inertia ixx="5.8083e-4" ixy="0" ixz="0" iyy="3.0833e-5" iyz="0" izz="5.9083e-4" />
  197.                 </inertial>
  198.             </link>
  199.  
  200.             <joint name="${name}_joint_z" type="continuous">
  201.                 <parent link="${name}_junta1"/>
  202.                 <child link="${name}_junta2"/>
  203.                 <axis xyz="0 0 1" />
  204.                 <dynamics friction="0.06"/>
  205.             </joint>
  206.  
  207.             <link name="${name}_junta2">
  208.                 <inertial>
  209.                     <mass value="0.025" />
  210.                     <inertia ixx="5.8083e-4" ixy="0" ixz="0" iyy="3.0833e-5" iyz="0" izz="5.9083e-4" />
  211.                 </inertial>  
  212.             </link>
  213.  
  214.             <joint name="${name}_joint_x" type="continuous">
  215.                 <parent link="${name}_junta2"/>
  216.                 <child link="${name}_junta3"/>
  217.                 <axis xyz="1 0 0" />
  218.                 <dynamics friction="0.06"/>
  219.             </joint>
  220.  
  221.             <link name="${name}_junta3">
  222.                 <inertial>
  223.                     <mass value="0.025" />
  224.                     <inertia ixx="5.8083e-4" ixy="0" ixz="0" iyy="3.0833e-5" iyz="0" izz="5.9083e-4" />
  225.                 </inertial>  
  226.             </link>
  227.  
  228.             <joint name="${name}_jointfixed" type="fixed">
  229.                 <parent link="${name}_junta3"/>
  230.                 <child link="${child}"/>
  231.             </joint>
  232.         </xacro:macro>
  233.        
  234.         <xacro:junta_model name="sphere_${name}" parent="base_link" child="sphere_link_${name}"/>
  235.     </xacro:macro>
  236.    
  237.     <xacro:macro name="caster_sans_contact" params="name xyz">
  238.         <!--Caster back  -->
  239.         <link name="caster_${name}_link">
  240.             <visual>
  241.             <origin rpy="1.57079632679 0 0" xyz="0.0 0.0 0 "/>
  242.             <geometry>
  243.                 <sphere radius="${radius_caster}"/>
  244.             </geometry>
  245.             <material name="Black"/>
  246.             </visual>
  247.             <collision>
  248.             <geometry>
  249.                 <sphere radius="${radius_caster}"/>
  250.             </geometry>
  251.             <origin rpy="1.57079632679 0 0" xyz="0 0.0 0 "/>
  252.             </collision>
  253.             <inertial>
  254.             <mass value="${caster_mass}"/>
  255.             <origin xyz="0 0 0"/>
  256.             <inertia ixx="0.00048" ixy="0.0" ixz="0.0" iyy="0.00048" iyz="0.0" izz="0.00048"/>
  257.             </inertial>
  258.         </link>
  259.         <joint name="caster_${name}_joint" type="fixed">
  260.             <parent link="base_footprint"/>
  261.             <child link="caster_${name}_link"/>
  262.             <origin rpy="-1.57079632679 0 0" xyz="${xyz}"/>
  263.         </joint>
  264.         <gazebo reference="caster_${name}_link">
  265.             <turnGravityOff>false</turnGravityOff>
  266.             <mu>0.0</mu>
  267.             <mu2>0.0</mu2>
  268.             <kp value="${kd}" />
  269.             <kd value="${kp}" />
  270.         </gazebo>
  271.     </xacro:macro>
  272. <!---->
  273. </robot>
RAW Paste Data