当前位置:   article > 正文

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

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
  • 2
  • 3
  • 4
  • 5
  • 6
  1. xacro文件需要转换为urdf文件后才可以被解析,并显示在rviz中。
    有两种方法:
    一种为直接cd进入xacro文件所在的目录,使用以下命令:
rosrun xacro xacro.py robot.xacro >robot.urdf
  • 1

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

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

在完成上述配置后,既可以运行修改后的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>
  • 1
  • 2
  • 3
  • 4

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/782279
推荐阅读
相关标签
  

闽ICP备14008679号