ROS kinetic xacro模型文件

xacro 是优化后的URDF模型
    精简模型代码:创建宏定义、文件包含
    提供可编程接口:常量、变量、数学计算、条件语句

常量定义
        <xacro:property name="M_PI" value="3.14159" />        常量名 M_PI,值为3.14159

常量使用
        <origin xyz="0 0 0" rpy="${M_PI/2} 0 0" />        引用常量 ${M_PI/2}

数学计算   所有数学运算都会转换成浮点数进行,以保证运算精度
        <origin xyz="0 ${(motor_length+wheel_length)/2} 0" rpy="0 0 0" />

宏定义
        <xacro:macro name="name" params="A B C">        宏的名字name
        ...
        </xacro:macro>

宏调用 
        <name A="A_value" B="B_value" C="C_value" />    对宏参数进行赋值

文件包含
        <xacro:include filename="$(find mbot_description)/urdf/xacro/mbot_base.xacro" />

将xacro文件转换为URDF文件后显示
        $ rosrun xacro xacro.py 文件名.xacro > 文件名.urdf

直接调用xacro文件解析器
        <arg name="model" default="$(find xacro)/xacro --inorder '$(find 包名)/urdf/xacro/文件名.xacro'" />

        <param name="" command="$(arg model)" />

xacro 文件转换为 urdf文件
[email protected]:~/catkin_ws/src/mbot_description/urdf/xacro$ ls
gazebo  mbot_base.xacro  mbot_with_camera.xacro  mbot.xacro  sensors
[email protected]:~/catkin_ws/src/mbot_description/urdf/xacro$ rosrun xacro xacro.py mbot.xacro > mbot.urdf
[email protected]:~/catkin_ws/src/mbot_description/urdf/xacro$ ls
gazebo  mbot_base.xacro  mbot.urdf  mbot_with_camera.xacro  mbot.xacro  sensors

1、运行程序  模型
[email protected]:~/catkin_ws/src/mbot_description/launch/xacro$ roslaunch mbot_description display_mbot_base_xacro.launch

2、运行程序  控制运动
[email protected]:~/catkin_ws/src/mbot_description/launch/xacro$ roslaunch mbot_description  arbotix_mbot_with_camera_xacro.launch 
[email protected]:~/catkin_ws/src/mbot_teleop/launch$ roslaunch mbot_teleop mbot_teleop.launch
点击: i 前进,l 旋转, q 加速。
[email protected]:~$ rostopic list 
/clicked_point
/cmd_vel
/diagnostics
/initialpose
/joint_states
/move_base_simple/goal
/odom
/rosout
/rosout_agg
/tf
/tf_static

ROS kinetic xacro模型文件