URDF && smartwheelchair_base.xacro

URDF

<?xml version="1.0" encoding="utf-8"?>
<!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by Stephen Brawner (brawner@gmail.com) 
     Commit Version: 1.5.1-0-g916b5db  Build Version: 1.5.7152.31018
     For more information, please see http://wiki.ros.org/sw_urdf_exporter -->
<robot
  name="smartwheelchair_model">
  <link
    name="base_link">
    <inertial>
      <origin
        xyz="0.071793651840574 -0.0111022819034436 -0.165475510614961"
        rpy="0 0 0" />
      <mass
        value="26.2736382176516" />
      <inertia
        ixx="2.53902638074258"
        ixy="0.105926700574816"
        ixz="0.672576086778549"
        iyy="2.61400293250425"
        iyz="0.117880225409204"
        izz="2.26655952469972" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/base_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.666666666666667 0.698039215686274 0.768627450980392 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/base_link.STL" />
      </geometry>
    </collision>
  </link>
  <link
    name="front_left_link">
    <inertial>
      <origin
        xyz="-5.98826543907194E-14 -0.0294979270265525 -1.73416836446449E-13"
        rpy="0 0 0" />
      <mass
        value="2.73380732959739" />
      <inertia
        ixx="0.0540175535224848"
        ixy="-9.37490464830404E-14"
        ixz="5.70463674728184E-14"
        iyy="0.105827632352094"
        iyz="-2.91387363698334E-14"
        izz="0.0540175535219555" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/front_left_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.294117647058824 0.294117647058824 0.294117647058824 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/front_left_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="front_left_joint"
    type="continuous">
    <origin
      xyz="0.125 0.32744 -0.32024"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="front_left_link" />
    <axis
      xyz="0 1 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="rear_left_link">
    <inertial>
      <origin
        xyz="0.00443883274698265 -0.159000141701653 -0.0610820964989148"
        rpy="0 0 0" />
      <mass
        value="0.218543419099177" />
      <inertia
        ixx="0.00138257528279561"
        ixy="4.94760179596061E-05"
        ixz="3.77546054156748E-05"
        iyy="0.000561948581245053"
        iyz="-0.000582727419998246"
        izz="0.00107345266613901" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/rear_left_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.250980392156863 0.250980392156863 0.250980392156863 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/rear_left_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="rear_left_joint"
    type="continuous">
    <origin
      xyz="-0.40155 0.26744 -0.20624"
      rpy="1.5708 0 1.7371" />
    <parent
      link="base_link" />
    <child
      link="rear_left_link" />
    <axis
      xyz="0 1 0" />
  </joint>
  <link
    name="wheel_rear_left_link">
    <inertial>
      <origin
        xyz="0.00653640490648077 -0.0389351446936917 6.97854693476607E-09"
        rpy="0 0 0" />
      <mass
        value="2.05874206334677" />
      <inertia
        ixx="0.0145592695258203"
        ixy="-0.00225630762393329"
        ixz="-2.72157388421748E-09"
        iyy="0.0276205421886138"
        iyz="-4.71240874480446E-10"
        izz="0.014180480200489" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/wheel_rear_left_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.294117647058824 0.294117647058824 0.294117647058824 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/wheel_rear_left_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="wheel_rear_left_joint"
    type="continuous">
    <origin
      xyz="0.03948 -0.21 -0.1"
      rpy="1.5708 -1.4045 3.1416" />
    <parent
      link="rear_left_link" />
    <child
      link="wheel_rear_left_link" />
    <axis
      xyz="-0.16556 0.9862 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="front_right_link">
    <inertial>
      <origin
        xyz="1.32630018079283E-13 0.0294979270265526 -1.26731958260962E-13"
        rpy="0 0 0" />
      <mass
        value="2.73380732959733" />
      <inertia
        ixx="0.0540175535224209"
        ixy="-9.67321655236162E-14"
        ixz="1.8160422674322E-13"
        iyy="0.105827632352093"
        iyz="-1.67393860339268E-14"
        izz="0.0540175535220183" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/front_right_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.866666666666667 0.909803921568627 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/front_right_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="front_right_joint"
    type="continuous">
    <origin
      xyz="0.125 -0.32154 -0.32024"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="front_right_link" />
    <axis
      xyz="0 -1 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="rear_right_link">
    <inertial>
      <origin
        xyz="-0.00443895322170662 -0.159000141931278 -0.0610820981859959"
        rpy="0 0 0" />
      <mass
        value="0.218543419196504" />
      <inertia
        ixx="0.00138257531626846"
        ixy="-4.94729909470212E-05"
        ixz="-3.77531936561614E-05"
        iyy="0.000561950359239888"
        iyz="-0.000582722657630795"
        izz="0.00107345045383076" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/rear_right_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.250980392156863 0.250980392156863 0.250980392156863 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/rear_right_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="rear_right_joint"
    type="continuous">
    <origin
      xyz="-0.40155 -0.26154 -0.20624"
      rpy="1.5708 0 1.7371" />
    <parent
      link="base_link" />
    <child
      link="rear_right_link" />
    <axis
      xyz="0 -1 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="wheel_rear_right_link">
    <inertial>
      <origin
        xyz="-0.00653640348729612 0.0389351469670967 9.15520717570395E-09"
        rpy="0 0 0" />
      <mass
        value="2.05874178462337" />
      <inertia
        ixx="0.0145592650917787"
        ixy="-0.00225630804394482"
        ixz="-9.8275687204457E-10"
        iyy="0.02762054030789"
        iyz="-9.60855468748932E-11"
        izz="0.0141804828642344" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/wheel_rear_right_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.294117647058824 0.294117647058824 0.294117647058824 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/wheel_rear_right_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="wheel_rear_right_joint"
    type="revolute">
    <origin
      xyz="-0.03948 -0.21 -0.1"
      rpy="1.5708 -1.4045 3.1416" />
    <parent
      link="rear_right_link" />
    <child
      link="wheel_rear_right_link" />
    <axis
      xyz="0.16556 -0.9862 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="laser_Link">
    <inertial>
      <origin
        xyz="0.065791191331278 -9.1747807187873E-10 -0.0926765202077648"
        rpy="0 0 0" />
      <mass
        value="6.86176515805913" />
      <inertia
        ixx="0.0631299703695162"
        ixy="-2.88721826247212E-10"
        ixz="-0.000562191972859836"
        iyy="0.03676014992034"
        iyz="-4.08726766416169E-10"
        izz="0.046630206646977" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/laser_Link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.250980392156863 0.250980392156863 0.250980392156863 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/laser_Link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="laser_joint"
    type="fixed">
    <origin
      xyz="-0.42295 0.0029489 -0.030238"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="laser_Link" />
    <axis
      xyz="0 0 0" />
  </joint>
</robot>

smartwheelchair_base.xacro

<?xml version="1.0" encoding="utf-8"?>
<robot name="smartwheelchair_model" xmlns:xacro="http://www.ros.org/wiki/xacro" >
    <!-- PROPERTY LIST -->
    <xacro:property name="M_PI" value="3.1415926"/>
    <xacro:property name="wheel_radius" value="0.2838162"/>
    <xacro:property name="wheel_distance" value="0.64899"/>

<xacro:macro name="mbot_base">
 <!-- smartwheelchair's link and joint -->
    <link
    name="base_link">
    <inertial>
      <origin
        xyz="0 0 0.53122"
        rpy="0 0 0" />
      <mass
        value="26.2736382176516" />
      <inertia
        ixx="2.53902638074258"
        ixy="0.105926700574816"
        ixz="0.672576086778549"
        iyy="2.61400293250425"
        iyz="0.117880225409204"
        izz="2.26655952469972" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/base_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.666666666666667 0.698039215686274 0.768627450980392 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/base_link.STL" />
      </geometry>
    </collision>
  </link>
  <link
    name="front_left_link">
    <inertial>
      <origin
        xyz="-5.98826543907194E-14 -0.0294979270265525 -1.73416836446449E-13"
        rpy="0 0 0" />
      <mass
        value="2.73380732959739" />
      <inertia
        ixx="0.0540175535224848"
        ixy="-9.37490464830404E-14"
        ixz="5.70463674728184E-14"
        iyy="0.105827632352094"
        iyz="-2.91387363698334E-14"
        izz="0.0540175535219555" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/front_left_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.294117647058824 0.294117647058824 0.294117647058824 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/front_left_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="front_left_joint"
    type="continuous">
    <origin
      xyz="0.125 0.32744 -0.32024"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="front_left_link" />
    <axis
      xyz="0 1 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="rear_left_link">
    <inertial>
      <origin
        xyz="0.00443883274698265 -0.159000141701653 -0.0610820964989148"
        rpy="0 0 0" />
      <mass
        value="0.218543419099177" />
      <inertia
        ixx="0.00138257528279561"
        ixy="4.94760179596061E-05"
        ixz="3.77546054156748E-05"
        iyy="0.000561948581245053"
        iyz="-0.000582727419998246"
        izz="0.00107345266613901" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/rear_left_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.250980392156863 0.250980392156863 0.250980392156863 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/rear_left_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="rear_left_joint"
    type="continuous">
    <origin
      xyz="-0.40155 0.26744 -0.20624"
      rpy="1.5708 0 1.7371" />
    <parent
      link="base_link" />
    <child
      link="rear_left_link" />
    <axis
      xyz="0 1 0" />
  </joint>
  <link
    name="wheel_rear_left_link">
    <inertial>
      <origin
        xyz="0.00653640490648077 -0.0389351446936917 6.97854693476607E-09"
        rpy="0 0 0" />
      <mass
        value="2.05874206334677" />
      <inertia
        ixx="0.0145592695258203"
        ixy="-0.00225630762393329"
        ixz="-2.72157388421748E-09"
        iyy="0.0276205421886138"
        iyz="-4.71240874480446E-10"
        izz="0.014180480200489" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/wheel_rear_left_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.294117647058824 0.294117647058824 0.294117647058824 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/wheel_rear_left_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="wheel_rear_left_joint"
    type="continuous">
    <origin
      xyz="0.03948 -0.21 -0.1"
      rpy="1.5708 -1.4045 3.1416" />
    <parent
      link="rear_left_link" />
    <child
      link="wheel_rear_left_link" />
    <axis
      xyz="-0.16556 0.9862 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="front_right_link">
    <inertial>
      <origin
        xyz="1.32630018079283E-13 0.0294979270265526 -1.26731958260962E-13"
        rpy="0 0 0" />
      <mass
        value="2.73380732959733" />
      <inertia
        ixx="0.0540175535224209"
        ixy="-9.67321655236162E-14"
        ixz="1.8160422674322E-13"
        iyy="0.105827632352093"
        iyz="-1.67393860339268E-14"
        izz="0.0540175535220183" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/front_right_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.294117647058824 0.294117647058824 0.294117647058824 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/front_right_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="front_right_joint"
    type="continuous">
    <origin
      xyz="0.125 -0.32154 -0.32024"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="front_right_link" />
    <axis
      xyz="0 -1 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="rear_right_link">
    <inertial>
      <origin
        xyz="-0.00443895322170662 -0.159000141931278 -0.0610820981859959"
        rpy="0 0 0" />
      <mass
        value="0.218543419196504" />
      <inertia
        ixx="0.00138257531626846"
        ixy="-4.94729909470212E-05"
        ixz="-3.77531936561614E-05"
        iyy="0.000561950359239888"
        iyz="-0.000582722657630795"
        izz="0.00107345045383076" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/rear_right_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.250980392156863 0.250980392156863 0.250980392156863 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/rear_right_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="rear_right_joint"
    type="continuous">
    <origin
      xyz="-0.40155 -0.26154 -0.20624"
      rpy="1.5708 0 1.7371" />
    <parent
      link="base_link" />
    <child
      link="rear_right_link" />
    <axis
      xyz="0 -1 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="wheel_rear_right_link">
    <inertial>
      <origin
        xyz="-0.00653640348729612 0.0389351469670967 9.15520717570395E-09"
        rpy="0 0 0" />
      <mass
        value="2.05874178462337" />
      <inertia
        ixx="0.0145592650917787"
        ixy="-0.00225630804394482"
        ixz="-9.8275687204457E-10"
        iyy="0.02762054030789"
        iyz="-9.60855468748932E-11"
        izz="0.0141804828642344" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/wheel_rear_right_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.294117647058824 0.294117647058824 0.294117647058824 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://smartwheelchair_model/meshes/wheel_rear_right_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="wheel_rear_right_joint"
    type="revolute">
    <origin
      xyz="-0.03948 -0.21 -0.1"
      rpy="1.5708 -1.4045 3.1416" />
    <parent
      link="rear_right_link" />
    <child
      link="wheel_rear_right_link" />
    <axis
      xyz="0.16556 -0.9862 0" />
    <limit
      lower="-180"
      upper="180"
      effort="0"
      velocity="0" />
  </joint>

           <link name="base_footprint">
            <visual>
                <origin xyz="0 0 0" rpy="0 0 0" />
                <geometry>
                    <box size="0.001 0.001 0.001" />
                </geometry>
            </visual>
        </link>

        <joint name="base_footprint_joint" type="fixed">
            <origin xyz="0 0 0.53122" rpy="0 0 0" />        
            <parent link="base_footprint"/>
            <child link="base_link" />
        </joint>
 </xacro:macro>
  
</robot>
原文地址:https://www.cnblogs.com/vtas-Yao/p/12521631.html