<robot name="my_car1" xmlns:xacro="http://wiki.ros.org/xacro">
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/car_base.xacro" />
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/camera.xacro" />
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/laser.xacro" />
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/head.xacro" />
</robot>
以这个顺序启动gazebo的时候报错unknown macro name: xacro:cylinder_inertial_matrix是因为启动顺序问题导致一开始没有定义cylinder_inertial_matrix,这时只需要将<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/head.xacro" />放在顺序第一个即可。
即:
<robot name="my_car1" xmlns:xacro="http://wiki.ros.org/xacro">
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/head.xacro" />
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/car_base.xacro" />
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/camera.xacro" />
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/laser.xacro" />
<xacro:include filename="$(find urdf01_rviz)/urdf_gazebo/head.xacro" />
</robot>