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
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要进行ROS机器人导航仿真,你需要安装一些必要的软件包。首先,你可以使用以下命令安装turtlebot相关的软件包:sudo apt-get install ros-kinetic-turtlebot-bringup ros-kinetic-turtlebot-create ros-kinetic-openni-* ros-kinetic-openni2-* ros-kinetic-freenect-* ros-kinetic-usb-cam ros-kinetic-laser-* ros-kinetic-hokuyo-node ros-kinetic-audio-common gstreamer0.10-pocketsphinx ros-kinetic-pocketsphinx ros-kinetic-slam-gmapping ros-kinetic-joystick-drivers python-rosinstall ros-kinetic-orocos-kdl ros-kinetic-python-orocos-kdl python-setuptools ros-kinetic-dynamixel-motor libopencv-dev python-opencv ros-kinetic-vision-opencv ros-kinetic-depthimage-to-laserscan ros-kinetic-arbotix-* ros-kinetic-turtlebot-teleop ros-kinetic-move-base ros-kinetic-map-server ros-kinetic-fake-localization ros-kinetic-amcl。\[1\] 接下来,在安装好ROS kinetic版本的Ubuntu系统中,你可以打开一个终端窗口,并输入以下命令来安装turtlebot包:sudo apt-get install ros-kinetic-turtlebot-*。\[2\] 安装完成后,你可以使用以下命令启动仿真环境并进行自主导航roslaunch racecar_gazebo racecar_runway_navigation.launch roslaunch racecar_gazebo racecar_rviz.launch。\[3\] 这样,你就可以开始进行ROS机器人导航仿真了。 #### 引用[.reference_title] - *1* *2* [ROS机器人导航仿真(kinetic版本)](https://blog.csdn.net/sinolover/article/details/90721486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ROS机器人定位导航仿真(包括智能车、无人机飞行的仿真)](https://blog.csdn.net/weixin_43749019/article/details/107284304)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值