ROS学习——机器人URDF模型优化

本文探讨了URDF建模存在的问题,如冗长代码、不便二次开发和缺乏计算功能,并介绍了URDF的进化版本——xacro模型文件。xacro通过精简代码、宏定义和文件包含等功能提供了更强大的建模能力。文中详细讲解了如何优化URDF模型,并展示了使用xacro创建小车机器人的过程及启动模型的效果。
摘要由CSDN通过智能技术生成


)

URDF建模存在哪些问题

  • 模型冗长,重复内容过多
  • 参数修改麻烦,不便于二次开发
  • 没有参数计算的功能

URDF模型的进化版本——xacro模型文件

  • 精简模型代码
    • 创建宏定义
    • 文件包含
  • 提供可编程接口
    • 常量
    • 变量
    • 数学计算
    • 条件语句

一、机器人URDF模型优化

1、常量定义

<!--name是定义的常量名,value是常量的值-->
<xacro:property name="M_PI" value="3.14159"/>

2、常量使用

<!--常量 ${
    } 在括号里使用常量 在括号里面可以进行运算-->
<origin xyz="0 0 0" rpy="${M_PI/2} 0 0"/>

3、数学计算

<!--括号里面可以进行运算-->
<origin xyz="0 ${(motor_length+wheel_length)/2} 0" rpy="0 0 0"/>

所有数学运算都会转换成浮点数进行,以保证运算精度

4、宏定义

<!--name是宏定义的名字类似函数名,params是类似函数参数,可以是字符串-->
<xacro:macro name="name" params="A B C">
   ......具体模型定义(类似函数内容)
</xacro:macro>

5、宏调用

<!--A_value,B_value,C_value是宏的名称-->
<name A="A_value" B="B_value" C="C_value" />

6、文件包含

<!--$(find+功能包)=包的具体路径-->
<xacro:include filename="$(find mbot_descripiton)/urdf/xacro/mbot_base.xacro" />

二、使用xaroc创建一个小车机器人

cd ~/catkin_ws/src/mbot_description/urdf
mkdir xacro
cd xacro
sudo gedit mbot_base.xacro

mbot_base.xacro

<!--声明xml文件及版本-->
<?xml version="1.0"?>
<robot name="mbot" xmlns:xacro="http://www.ros.org/wiki/xacro">
	<!--定义相关机器人常量-->
    <xacro:property name="M_PI" value="3.1415926"/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值