ROS笔记——Xacro

目录

Xacro简介

二、基本语法

1.基本框架

2.属性和宏

3.xacro文件包含

三、launch启动Xacro

1.xacro转urdf启动

2.xacro直接启动


Xacro简介

Xacro是XML Marcros的缩写,是一种XML的宏语言,可编程,可用于建构机器人模型。

Xacro与Urdf的关系:Xacro和Urdf本质上时相同的,区别是Urdf中使用的值均为给定的,许多参数值之间有相互关系或复用,因此修改起来并不方便,而Xacro可以声明参数,使用时调用参数,修改值时十分方便,提高代码的复用率和简洁程度。

二、基本语法

1.基本框架

<robot name="robot_name" xmlns:xacro="http://wiki.ros.org/xacro">
    <!-- xacro内容 -->
</robot>

2.属性和宏

定义和调用语法:

<robot name="robot_name" xmlns:xacro="http://wiki/ros.org/xacro">
    <!-- 属性定义,其中var_1,var_2为自定义名称 -->
    <xacro:property name="var_1" value="value_1" />
    <xacro:property name="var_2" value="value_1" />
    <xacro:property name="var_2" value="${var_1+var_2}" />

    <!-- 属性调用 -->
    <myUseProperty name="${var_1}" />

    <!-- 算数运算 -->
    <myUseProperty result="{var_1-var_2}">

    <!-- 宏声明,其中macro_name为自定义名称,n1,n2为传入参数的形参 -->
    <xacro:macro name="macro_name" params="n1 n2">
        <!-- 使用传入的参数 -->
        <result value="${n1+n2}" />
    </xacro:macro>

    <!-- 宏调用 -->
    <xcaro:macro_name: n1="xxx" n2="yyy" />

</robot>

3.xacro文件包含

在一个xacro文件中包含另一个xacro文件的语法如下:

<robot name="myname" xmlns:xacro="http://wiki.ros.org/xacro">
    <xacro:include filename="xxx/xxx/xxx.xacro" />
</robot>

三、launch启动Xacro

launch启动Xacro有两种启动方式,推荐使用的是xacro直接启动。

1.xacro转urdf启动

在xacro文件路径下的终端运行命令,将xacro文件转换为urdf文件

rosrun xacro xacro xxxx.xacro  > xxxx.urdf

在launch文件中书写

<launch>
	<param name = "robot_description" textfile = "$(find 功能包名称)/xxx/xxx.urdf">
</launch>

2.xacro直接启动

launch文件如下:

<launch>
	<param name = "robot_description" command = "$(find xacro)/xacro $(find 功能包名)/xxx/xxx.xacro" />
</launch>
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值