ros学习之多机器人导航(仿真)

系列文章目录

(一)、从solidworks转urdf文件,在gazebo中添加小车模型


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

系列文章目录

目录

前言

一、插件

二、使用步骤

1.solidworks绘制机器人模型

         2.利用插件转成urdf文件

总结



前言

     要进行多机器人导航的仿真,首先要在仿真环境中创建一辆小车,通过urdf文件编写只能是简单的形状,可以借助常用的3d绘图软件soildworks绘制小车模型,再通过插件转成urdf文件。

一、插件

ROS提供的solidworks转urdf插件下载地址:sw_urdf_exporter - ROS Wikihttp://wiki.ros.org/sw_urdf_exporter

 根据自己需要的版本下载安装即可。

二、使用步骤

1.solidworks绘制机器人模型

 2.利用插件转成urdf文件

在solidworks中的工具,file中选择插件Export as URDF。主要是添加基座标、轮子的坐标、雷达的坐标。以及旋转的轴。


这里的base_link最好放在车子的中心的位置。 且注意车子前进的方向为x轴的方向。在装配体上添加,且四个轮子的坐标原点最好是放在车身上。

 总结一下,分别要设置六个坐标以及四个旋转轴,轮子的类型选择continuous,雷达的类型选择fixed。设置好了之后,点上图的红色圈圈部分。

 这里重点检查Joint Type,因为我有几次,在上一步设置雷达的类型是fixed,但是在这里变成了continuous。检查无误后点Next。

 点击Export URDF and Meshes,这时候就会生成,功能包,注意的是,功能包的名字不可以用英文命名,否则后面会出现很多的错误。

这里贴出我的小车的.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="car_sim">
  <link
    name="base_link">
    <inertial>
      <origin
        xyz="0.00130650433357116 2.77555756156289E-17 0.0259145530334998"
        rpy="0 0 0" />
      <mass
        value="4.86927211801166" />
      <inertia
        ixx="0.0244884626138586"
        ixy="-1.03959853431126E-17"
        ixz="-0.000439502623636349"
        iyy="0.0660505274162502"
        iyz="-2.09485159752118E-18"
        izz="0.0878377323820157" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/base_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/base_link.STL" />
      </geometry>
    </collision>
  </link>
  <link
    name="Wheel_LF_link">
    <inertial>
      <origin
        xyz="5.5511E-17 0.0050341 2.0817E-17"
        rpy="0 0 0" />
      <mass
        value="0.23011" />
      <inertia
        ixx="0.00015836"
        ixy="-2.2483E-20"
        ixz="7.5834E-21"
        iyy="0.00028331"
        iyz="-4.9103E-21"
        izz="0.00015836" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/Wheel_LF_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/Wheel_LF_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="Wheel_LF_joint"
    type="continuous">
    <origin
      xyz="0.11 0.138 0.025"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="Wheel_LF_link" />
    <axis
      xyz="0 1 0" />
  </joint>
  <link
    name="Wheel_LB_link">
    <inertial>
      <origin
        xyz="-1.6653E-16 0.0050341 0"
        rpy="0 0 0" />
      <mass
        value="0.23011" />
      <inertia
        ixx="0.00015836"
        ixy="-1.7606E-20"
        ixz="2.0331E-22"
        iyy="0.00028331"
        iyz="-7.8079E-23"
        izz="0.00015836" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/Wheel_LB_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/Wheel_LB_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="Wheel_LB_joint"
    type="continuous">
    <origin
      xyz="-0.11 0.138 0.025"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="Wheel_LB_link" />
    <axis
      xyz="0 1 0" />
  </joint>
  <link
    name="Wheel_RF_link">
    <inertial>
      <origin
        xyz="-5.5511E-17 -0.0050341 -6.9389E-18"
        rpy="0 0 0" />
      <mass
        value="0.23011" />
      <inertia
        ixx="0.00015836"
        ixy="-1.2648E-20"
        ixz="1.0741E-20"
        iyy="0.00028331"
        iyz="8.4759E-22"
        izz="0.00015836" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/Wheel_RF_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/Wheel_RF_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="Wheel_RF_joint"
    type="continuous">
    <origin
      xyz="0.11 -0.138 0.025"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="Wheel_RF_link" />
    <axis
      xyz="0 1 0" />
  </joint>
  <link
    name="Wheel_RB_link">
    <inertial>
      <origin
        xyz="0 -0.0050341 -1.3878E-17"
        rpy="0 0 0" />
      <mass
        value="0.23011" />
      <inertia
        ixx="0.00015836"
        ixy="-1.5945E-20"
        ixz="-2.1232E-20"
        iyy="0.00028331"
        iyz="-1.752E-21"
        izz="0.00015836" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/Wheel_RB_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/Wheel_RB_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="Wheel_RB_joint"
    type="continuous">
    <origin
      xyz="-0.11 -0.138 0.025"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="Wheel_RB_link" />
    <axis
      xyz="0 1 0" />
  </joint>
  <link
    name="lr_Link">
    <inertial>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <mass
        value="0" />
      <inertia
        ixx="0"
        ixy="0"
        ixz="0"
        iyy="0"
        iyz="0"
        izz="0" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/lr_Link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://car_sim/meshes/lr_Link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="lr_joint"
    type="fixed">
    <origin
      xyz="0.1 0 0.14"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="lr_Link" />
    <axis
      xyz="0 0 0" />
  </joint>
</robot>

最后运行插件生成的launch文件,gazebo.launch.即可在gazebo中加载出机器人模型。

总结

本章主要讲了如何把solidworks中的模型利用ros提供的插件,导成urdf文件,并在gazebo中加载出机器人模型,下一章将介绍,将urdf文件转成xacro,并给小车添加控制器,控制小车运动,以及添加雷达。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值