ROS(五):创建简单的机器人模型smartcar(indigo版本)

ROS 专栏收录该内容
21 篇文章 1 订阅

什么叫URDF?在rviz中是,经常会出现一个error,就是不存在URDF文件.Unified Robot Description Format,统一机器人描述格式,简称为URDF。ROS中的urdf功能包包含一个URDF的C++解析器,URDF文件使用XML格式描述机器人模型。

1.安装urdf_tutorial,可以使用其中的例子

sudo apt-get install ros-indigo-urdf-tutorial  
//安装liburdfdom-tools,提供对urdf文件的检查
sudo apt-get install liburdfdom-tools
//创建Ros包
 catkin_create_pkg smartcar_description  std_msgs rospy roscpp urdf 

2.智能车尺寸数据

这里写图片描述

3.建立urdf文件
在smartcar_description文件夹下建立urdf文件夹 $mkdir -p urdf ,创建智能车的描述文件smartcar.urdf,描述代码如下:

<?xml version="1.0"?>  

<robot name="smartcar">  
//link name 
  <link name="base_link">  

    <visual>  

      <geometry>  
    //这个上面图片的尺寸相对应
        <box size="0.25 .16 .05"/>  

    </geometry>  

    <origin rpy="0 0 1.57075" xyz="0 0 0"/>  

    <material name="blue">  
//颜色设定为0-1,这个机器人设定成蓝色,a指透明度,0就不可见了,因为指透明的状态
        <color rgba="0 0 .8 1"/>  

    </material>  

    </visual>  

</link>  


//四个轮子的具体设定
<link name="right_front_wheel">  

    <visual>  

      <geometry>  

        <cylinder length=".02" radius="0.025"/>  

      </geometry>  

      <material name="black">  

        <color rgba="0 0 0 1"/>  

      </material>  

    </visual>  

  </link>  



  <joint name="right_front_wheel_joint" type="continuous">  

    <axis xyz="0 0 1"/>  

    <parent link="base_link"/>  

    <child link="right_front_wheel"/>  

    <origin rpy="0 1.57075 0" xyz="0.08 0.1 -0.03"/>  

    <limit effort="100" velocity="100"/>  

    <joint_properties damping="0.0" friction="0.0"/>  

  </joint>  



  <link name="right_back_wheel">  

    <visual>  

      <geometry>  

        <cylinder length=".02" radius="0.025"/>  

      </geometry>  

      <material name="black">  

        <color rgba="0 0 0 1"/>  

      </material>  

    </visual>  

  </link>  



  <joint name="right_back_wheel_joint" type="continuous">  

    <axis xyz="0 0 1"/>  

    <parent link="base_link"/>  

    <child link="right_back_wheel"/>  

    <origin rpy="0 1.57075 0" xyz="0.08 -0.1 -0.03"/>  

    <limit effort="100" velocity="100"/>  

    <joint_properties damping="0.0" friction="0.0"/>  

</joint>  



<link name="left_front_wheel">  

    <visual>  

      <geometry>  

        <cylinder length=".02" radius="0.025"/>  

      </geometry>  

      <material name="black">  

        <color rgba="0 0 0 1"/>  

      </material>  

    </visual>  

  </link>  



  <joint name="left_front_wheel_joint" type="continuous">  

    <axis xyz="0 0 1"/>  

    <parent link="base_link"/>  

    <child link="left_front_wheel"/>  

    <origin rpy="0 1.57075 0" xyz="-0.08 0.1 -0.03"/>  

    <limit effort="100" velocity="100"/>  

    <joint_properties damping="0.0" friction="0.0"/>  

  </joint>  



  <link name="left_back_wheel">  

    <visual>  

      <geometry>  

        <cylinder length=".02" radius="0.025"/>  

      </geometry>  

      <material name="black">  

        <color rgba="0 0 0 1"/>  

      </material>  

    </visual>  

  </link>  



  <joint name="left_back_wheel_joint" type="continuous">  

    <axis xyz="0 0 1"/>  

    <parent link="base_link"/>  

    <child link="left_back_wheel"/>  

    <origin rpy="0 1.57075 0" xyz="-0.08 -0.1 -0.03"/>  

    <limit effort="100" velocity="100"/>  

    <joint_properties damping="0.0" friction="0.0"/>  

  </joint>  



  <link name="head">  

    <visual>  

      <geometry>  

        <box size=".02 .03 .03"/>  

      </geometry>  

      <material name="white">  

          <color rgba="1 1 1 1"/>  

      </material>  

    </visual>  

  </link>  



  <joint name="tobox" type="fixed">  

    <parent link="base_link"/>  

    <child link="head"/>  

    <origin xyz="0 0.08 0.025"/>  

  </joint>  

</robot>

4.建立launch命令文件

<launch>     

    <arg name="model" />      

    <arg name="gui" default="False" />     

    <param name="robot_description" textfile="$(find smartcar_description)/urdf/smartcar.urdf" />      

    <param name="use_gui" value="$(arg gui)"/>     

    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" >

    </node>      

    <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />      

    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find urdf_tutorial)/urdf.rviz" />  

</launch>

老版本使用的是urdf.vcg,如果报找不到.vcg文件,通常是因为版本不匹配的问题.

5.效果演示

roslaunch  smartcar_description  base.urdf.rviz.launch  gui:=true

这里写图片描述

一个简陋的小车出现啦O(∩_∩)O哈哈~
上面的代码对应显示的上图应该就很好理解了O(∩_∩)O哈哈~

参考博客:https://www.ncnynl.com/archives/201609/842.html

  • 0
    点赞
  • 5
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值