第二章、配置xacro文件
0.前言
上一节已经将urdf导出来了,这一节需要配置一下xacro文件。先看一下导出的功能包在gazebo以及rviz中显示的效果。
将功能包放进工作空间进行编译,source一下环境,先看gazebo:
roslaunch tianracer_description gazebo.launch
可以看到模型已经加载到gazebo中的empty_world中了,此时模型还是白板,稍后可对颜色进行配置。
再看rviz,先修改tianracer_description/launch中的 arg name="gui" default="False"改为arg name="gui" default="True"
roslaunch tianracer_description display.launch
此时左侧会出现joint_state_publisher的可视化窗口,拖动上边的动态条即可控制小车的每个关节。
1.添加传动装置
新建tianracer_description.xacro文件,将urdf文件中的代码复制过来,并对其进行修改。
<?xml version="1.0" encoding="utf-8"?>
<robot name="tianracer" xmlns:xacro="http://ros.org/wiki/xacro">
<link name="base_link">
</link>
<link name="chassis">
<inertial>
<origin
xyz="0.0623235722457065 0.0014584636628485 0.0350371599032402"
rpy="0 0 0" />
<mass
value="5" />
<inertia ixx="0.010609" ixy="0" ixz="0"
iyy="0.050409" iyz="0"
izz="0.05865" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="package://tianracer_description/meshes/base_link.STL" />
</geometry>
<material
name="">
<color
rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="package://tianracer_description/meshes/base_link.STL" />
</geometry>
</collision>
</link>
<joint name="base_link_joint" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0" />
<parent link="base_link"/>
<child link="chassis" />
</joint>
<link
name="left_steering_hinge">
<inertial>
<origin
xyz="0.00160901052986848 0.00421500740928921 0.000999991873067492"
rpy="0 0 0" />
<mass
value="0.34" />
<inertia
ixx="4E-06"
ixy="0"
ixz="0"
iyy="4E-06"
iyz="0"
izz="4E-06" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="package://tianracer_description/meshes/left_steering_hinge.STL" />
</geometry>
<material
name="">
<color
rgba="1 1 1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="package://tianracer_description/meshes/left_steering_hinge.STL" />
</geometry>
</collision>
</link>
<joint
name="left_steering_hinge_joint"
type="revolute">
<origin
xyz="0.1237 0.070647 0.0235"
rpy="0 0 0" />
<parent
link="base_link" />
<child
link="left_steering_hinge" />
<axis
xyz="0 0 1" />
<limit
lower="-0.6"
upper="0.6"
effort="10"
velocity="1000" />
</joint>
<link
name="left_front_wheel">
<inertial>
<origin
xyz="-1.16652756898539E-10 0.000722301233977055 -0.000982991824011559"
rpy="0 0 0" />
<mass
value="0.7" />
<inertia ixx="0.00026046" ixy="0" ixz="0"
iyy="0.00026046" iyz="0"
izz="0.00041226" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="package://tianracer_description/meshes/left_front_wheel.STL" />
</geometry>
<material
name="">
<color
rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="package://tianracer_description/meshes/left_front_wheel.STL" />
</geometry>
</collision>
</link>
<joint
name="left_front_wheel_joint"
type="continuous">
<origin
xyz="0 0.015649 0"
rpy="0 0 0" />
<parent
link="left_steering_hinge" />
<child
link="left_front_wheel" />
<axi