ROS环境下机器人建模(XACRO)及常见问题解决

本文介绍了在ROS环境中,如何使用XACRO进行四自由度机械手的建模,相较于直接使用URDF,XACRO提供更简洁灵活的建模方式。在建模过程中,通过XACRO编写程序,然后转换为URDF文件。在模型完成后,通过launch文件在RViz中查看模型时,可能会遇到'No tf data.'错误,解决方法是在固定的第一链接上添加一个虚拟Joint,使父链接和子链接相同。
摘要由CSDN通过智能技术生成

在ROS环境下进行机器人建模最常用的方法就是使用URDF文件对机器人进行描述,URDF文件形成通常有三种途径:

1.直接使用URDF的XML tag进行文件编写。

2.使用XACRO建模后转换成URDF文件(更简洁灵活,利于程序复用)。

3.使用三维软件Solidworks进行三维绘图后使用SW2URDF 插件转换成URDF文件(插件对不同的SW兼容性不好,不易安装成功)。

本次建模使用上述的第二种方法。模型为一个四自由度机械手,具体的建模程序如下:

-------------------------------------------------------分割线---------------------------------------

<?xml version="1.0"?>
<robot name="dobot_arm" xmlns:xacro="http://www.ros.org/wiki/xacro">

  <!-- Include materials -->

    <material name="Black">
        <color rgba="0.0 0.0 0.0 1.0"/>
    </material>

    <material name="Red">
        <color rgba="0.8 0.0 0.0 1.0"/>
    </material>

    <material name="White">
        <color rgba="1.0 1.0 1.0 1.0"/>
    </material>

  <!-- Constants -->
  <property name="deg_to_rad" value="0.01745329251994329577"/>
  <property name="M_PI" value="3.14159"/>
  <property name="x" value="0.0125"/>

  <!-- base link properties -->
  <property name="base_len" value="0.168" />
  <property name="base_width" value="0.168" />
  <property name="base_height" value="0.055" />

  <!-- shoulder link properties -->
  <property name="shoulder_radius" value="0.06" />
  <property name="shoulder_len" value="0.085" />

  <!-- bigarm link properties -->
  <property name="bigarm_radius" value="0.03" />
  <property name="bigarm_len" value="0.135" />

  <!-- forearm link properties -->
  <property name="forearm_radius" value="0.03" />
  <property name="forearm_len" value="0.147" />

  <!-- chuck link properties -->
  <property name="chuck_len" value="0.08" />
  <property name="chuck_width" value="0.03" />
  <property name="chuck_height" value="0.03" />

  <!-- inertial matrix macro definition -->
   <xacro:macro name="inertial_matrix" pa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值