《ROS机器人开发实践》学习六——使用xacro优化机器人模型

日期:2021/11/07

一、xacro概述

1、 简介
Xacro(XML Macros)Xacro是一种XML宏语言。 使用xacro,您可以通过使用宏命令构建更精悍短小但又具有更高可读性的XML文件,这种宏命令可以扩展达到更大的XML表达范围。
2、特点
xacro是一个精简版本的urdf文件,可以通过创建宏定义的方式创建常量或者复用代码,可以让模型更简洁。
xacro的语法支持一些API接口,如常量、变量、数学公式等,可以让代码更加智能有效。
3、几个使用的例子
定义常量:
<xacro:property name="PI" value="3.14159" />
调用数学公式:
<circle circumference="${2.5 * pi}" />

二、使用xacro优化urdf文件

使用xacro的几个关键点:

  1. 将机器人模型文件分为两部分,将原来的urdf文件变换为robot_body.xacro文件,可以认为是C++中的源文件;然后创建一个xacro引用文件:robot.xacro相当于C++中的include文件,它可以直接调用robot_body.xacro文件。
    例子:
<?xml version="1.0"?>
<robot name="testrobot" xmlns:xacro="http://www.ros.org/wiki/xacro">
    <xacro:include filename="$(find testrobot_description)/urdf/testrobot_body.urdf.xacro" />
    <!-- Robot机器人平台 -->
    <testrobot_body/>
</robot>
  1. xacro文件需要转换为urdf文件后才可以被解析,并显示在rviz中。
    有两种方法:
    一种为直接cd进入xacro文件所在的目录,使用以下命令:
rosrun xacro xacro.py robot.xacro >robot.urdf

另一种是在launch文件中直接调用xacro解析器,这也是更加常用的方法:

	<arg name="model" default="$(find xacro)/xacro --inorder '$(find testrobot_description)/urdf/testrobot.urdf.xacro'" />
	<param name="robot_description" command="$(arg model)" />

在完成上述配置后,既可以运行修改后的launch文件,在rviz中显示模型。
在这里插入图片描述
参考:http://wiki.ros.org/xacro

  1. 让机器人在rviz中运动
    在launch文件中,添加arbotix节点:
        <node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen">
        <rosparam file="$(find testrobot_description)/config/testrobot_arbotix.yaml" command="load" />
        <param name="sim" value="true"/>
       </node>

添加完成后,再运行该launch文件,然后再运行键盘控制节点,就可通过键盘进行控制。

在键盘控制测试完成后,写了一个直线运动的cpp对小车进行控制,并用rqt_plot工具显示启停的速度曲线,如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值