<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[6.2.3使用Xacro简化URDF运行RVIZ之后为什么不显示机器本体？可以显示坐标]]></title><description><![CDATA[<p dir="auto"><img src="/forum/assets/uploads/files/1764142099722-9bb75ffc-e65a-48f6-ac3f-6b5e721d38e5-image-resized.png" alt="9bb75ffc-e65a-48f6-ac3f-6b5e721d38e5-image.png" class=" img-fluid img-markdown" /> <img src="/forum/assets/uploads/files/1764142141538-a1739072-c8f5-4440-ba2d-db03d39003ba-image-resized.png" alt="a1739072-c8f5-4440-ba2d-db03d39003ba-image.png" class=" img-fluid img-markdown" /><br />
&lt;?xml version="1.0"?&gt;<br />
&lt;robot xmlns:xacro="<a href="http://www.ros.org/wiki/xacro" target="_blank" rel="noopener noreferrer nofollow ugc">http://www.ros.org/wiki/xacro</a>" name="first_robot"&gt;<br />
&lt;!-- 声明 base 模块 --&gt;<br />
&lt;xacro:macro name="base_link" params="length radius"&gt;<br />
&lt;link name="base_link"&gt;<br />
&lt;visual&gt;<br />
&lt;origin xyz="0 0 0" rpy="0 0 0" /&gt;<br />
&lt;geometry&gt;<br />
&lt;cylinder length="${length}" radius="${radius}" /&gt;<br />
&lt;/geometry&gt;<br />
&lt;material name="blue"&gt;<br />
&lt;color rgba="0.1 0.1 1.0 0.5" /&gt;<br />
&lt;/material&gt;<br />
&lt;/visual&gt;<br />
&lt;/link&gt;<br />
&lt;/xacro:macro&gt;<br />
&lt;!-- 声明 IMU 模块 --&gt;<br />
&lt;xacro:macro name="imu_link" params="imu_name xyz"&gt;<br />
&lt;link name="${imu_name}_link"&gt;<br />
&lt;visual&gt;<br />
&lt;origin xyz="0 0 0" rpy="0 0 0" /&gt;<br />
&lt;geometry&gt;<br />
&lt;box size="0.02 0.02 0.02" /&gt;<br />
&lt;/geometry&gt;<br />
&lt;/visual&gt;<br />
&lt;material name="black"&gt;<br />
&lt;color rgba="0 0 0 0.5" /&gt;<br />
&lt;/material&gt;<br />
&lt;/link&gt;<br />
&lt;joint name="${imu_name}_joint" type="fixed"&gt;<br />
&lt;parent link="base_link" /&gt;<br />
&lt;child link="${imu_name}_link" /&gt;<br />
&lt;origin xyz="${xyz}" /&gt;<br />
&lt;/joint&gt;<br />
&lt;/xacro:macro&gt;<br />
&lt;!-- 传递参数调用 base_link 模块 --&gt;<br />
&lt;xacro:base_link length="0.12" radius="0.1" /&gt;<br />
&lt;!-- 传递参数调用 imu 模块 --&gt;<br />
&lt;xacro:imu_link imu_name="imu_up" xyz="0 0 0.1" /&gt;<br />
&lt;xacro:imu_link imu_name="imu_down" xyz="0 0 -0.1" /&gt;</p>
<p dir="auto">&lt;/robot&gt;</p>
<p dir="auto">import launch<br />
import launch_ros<br />
from ament_index_python.packages import get_package_share_directory<br />
import os<br />
import launch_ros.parameter_descriptions</p>
<p dir="auto">def generate_launch_description():<br />
#获取urdf路径<br />
urdf_package_path = get_package_share_directory('fishbot_description')<br />
default_urdf_path = os.path.join(urdf_package_path,'urdf','first_robot.xacro')<br />
#声明一个urdf目录的参数,方便修改<br />
action_declare_arg_mode_path = launch.actions.DeclareLaunchArgument(<br />
name='model',<br />
default_value=str(default_urdf_path),<br />
description='加载的模型文件路径'<br />
)<br />
#通过文件路径，获取内容，并转换为参数值对象，以供传入robot_state_publisher<br />
substitutions_command_result = launch.substitutions.Command(['xacro ',launch.substitutions.LaunchConfiguration('model')])<br />
robot_description_value = launch_ros.parameter_descriptions.ParameterValue(<br />
substitutions_command_result, value_type=str<br />
)</p>
<pre><code>#读取urdf文件中的内容
action_robot_state_publisher = launch_ros.actions.Node(
    package='robot_state_publisher' ,#可执行文件包的名字
    executable='robot_state_publisher' ,#可执行文件的名字
    parameters=[{'robot_description':robot_description_value}]
)

action_joint_state_publisher = launch_ros.actions.Node(
    package='joint_state_publisher' ,#可执行文件包的名字
    executable='joint_state_publisher' ,#可执行文件的名字
)

action_rviz_node = launch_ros.actions.Node(
    package='rviz2',
    executable='rviz2'
)

return launch.LaunchDescription([
    action_declare_arg_mode_path,
    action_robot_state_publisher,
    action_joint_state_publisher,
    action_rviz_node,
</code></pre>
<p dir="auto">])</p>
]]></description><link>https://fishros.org.cn/forum/topic/4655/6-2-3使用xacro简化urdf运行rviz之后为什么不显示机器本体-可以显示坐标</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 19:23:57 GMT</lastBuildDate><atom:link href="https://fishros.org.cn/forum/topic/4655.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Nov 2025 07:31:52 GMT</pubDate><ttl>60</ttl></channel></rss>