URDF Primer/h2>
What is URDF?/h3>
What’s in a URDF File?/h3>
与其他类型的XML文件一样,URDF文件包括各种XML元素,例如code class="literal"><机器人>/code>那code class="literal"><链接>/code>那code class="literal"><联合>/code>,嵌套在称为XML树的分层结构中。例如code class="literal"><链接>/code>andcode class="literal"><联合>/code>elements are said to be children of thecode class="literal"><机器人>/code>元素和互相,code class="literal"><机器人>/code>element the parent of thecode class="literal"><链接>/code>andcode class="literal"><联合>/code>elements./p>
<机器人> <链接> ... link> <链接> ... link> <联合> ... 联合> 机器人>/pre>
Child elements, such ascode class="literal"><链接>/code>andcode class="literal"><联合>/code>在下面code class="literal"><机器人>/code>那can in turn have child elements of their own. For example, thecode class="literal"><链接>/code>element has the child elementscode class="literal">惯性l>/code>andcode class="literal">视觉的>/code>。这code class="literal">视觉的>/code>element has the child elementscode class="literal">geometry>/code>andcode class="literal">材料>/code>。和code class="literal">材料>/code>element has the child elementcode class="literal">/code>。这种子元素链对于定义父元素的属性和行为至关重要。/p>
<机器人> <链接>/span>惯性l> ... ... /span>/link> ... /span>
In addition to child elements, the XML elements in a URDF model can have attributes. For example, thecode class="literal"><机器人>/code>那code class="literal"><链接>/code>那andcode class="literal"><联合>/code>元素都有属性code class="literal">/code>-a字符串,用于识别元素。这code class="literal">/code>元素的属性code class="literal">RGBA./code>-a数字数组,具有红色,绿色,蓝色和alpha(或不透明度)的链接颜色值。诸如这些帮助的属性完全定义模型中的元素。/p>
机器人/span>name = "linkage"/span>> 名称=“根链接”/span>> ... 惯性> ... Geometry> <颜色/span>RGBA.= "1 0 0 1"/span>/> latement> Visual> link> ... 机器人>/span>
XML Hierarchies and Kinematic Trees/h3>
URDF links connect through joints in hierarchical structures not unlike those formed by nesting XML elements in a URDF file.code class="literal"><联合>/code>元素通过以下方式执行这些层次结构code class="literal"><父母>/code>andcode class="literal">/code>将一个链接标识为父的元素和另一个链接作为孩子。父链接本身可以是儿童和子链接的父母 - 在模型中的其他链接。/p>
<父母>/code>andcode class="literal">/code>联合元素/strong>
<机器人名称=“链接”>/span><联合名称=“关节A ...>/span><父链路=“链接A”/> /span>联合>/span>joint name = "joint B ... >/span><父林k = "link A" /> /span>联合>/span><联合名称=“关节c ...>/span><父林k = "link C" /> /span>联合>/span>/机器人>/span>
You can visualize the connections between links using a schematic known as aem class="firstterm">connectivity graph/em>。这figure shows an example. Circles denote links and arrows denote joints. The arrow roots identify the parent nodes and the arrow tips the child nodes. The connectivity graph reveals the topology of the underlying model—here a simple kinematic tree with two branches./p>
Connectivity Graph of a Kinematic Tree/strong>
模型拓扑在URDF中很重要。模型的连接图可以仅采用运动型树,始终打开的运动链,分支或非分支。运动环,每个通过连接否则开口链的端部形成的封闭链。这种限制会影响如何code class="literal"><链接>/code>elements can connect in a URDF model./p>
这restriction translates to the following rule: nocode class="literal"><链接>/code>元素可以用作多个子节点code class="literal"><联合>/code>元素。换句话说,没有code class="literal"><链接>/code>元素可以在模型的连接图中具有多个父元素。只有根链路,即在连接图的原点,可以具有与一个(零)不同的父节点不同。模型中只允许一个根链路。/p>
运动回路URDF示例/strong>
<机器人名称=“链接”>/span><联合名称=“关节A ...>/span><父链路=“链接A”/> /span>联合>/span>joint name = "joint B ... >/span><父林k = "link A" /> /span>联合>/span><联合名称=“关节c ...>/span><父林k = "link C" /> /span>联合>/span>joint name = "joint D ... >/span><父链路=“链接B”/> /span>联合>/span>/机器人>/span>
这code declares a link,code class="literal">link D/code>那as a child node in twocode class="literal"><联合>/code>elements,code class="literal">关节C./code>andcode class="literal">联合D./code>。这code class="literal">link D/code>元素有两个父母并形成运动循环。该模型违反了URDF连接规则,无效。该图显示了模型的连接图。/p>
运动环的连接图/strong>
R.equired and Optional URDF Entities/h3>
并非需要URDF规范中列出的所有元素和属性。有些,喜欢code class="literal">惯性l>/code>在下面code class="literal"><链接>/code>那are optional. The following code shows the various elements and attributes that you can use, with those that are optional colored green./p>
内部所需的元素和属性显示为optional elements are so only if the optional elements are used. The default values of optional attributes are shown in parentheses and in italic font. Note that this code is included only as a reference and that it does not represent a valid URDF model. Ellipses (“...”) are invalid in URDF models and are used merely to break long lines of code for ease of viewing./p>
strong class="emphasis bold">机器人/strong>名称> link/strong>名称> 惯性l/span>> 起源/strong>xyzspan class="emphasis">(“0 0 0”)/em>rpyspan class="emphasis">(“0 0 0”)/em>/>strong class="emphasis bold">mass/strong>value /> 惯性/strong>ixx iyy izz ixy ixz iyz /> /strong class="emphasis bold">惯性l/strong>> 视觉的/strong>name/span>> 起源/strong>xyzspan class="emphasis">(“0 0 0”)/em>rpyspan class="emphasis">(“0 0 0”)/em>/>/span>strong class="emphasis bold">geometry/strong>> box/strong>尺寸/> 圆筒/strong>半径长度/> 领域/strong>radius /> mesh/strong>filenamespan class="green">scalespan class="emphasis">("1")/em>/>/strong class="emphasis bold">geometry/strong>> 材料/span>名称> color/strong>RGBA.span class="emphasis">("0.5 0.5 0.5 1")/em>/>span class="green">texture/strong>filename/span>/>strong class="emphasis bold">/span class="green">材料/span>> /strong class="emphasis bold">视觉的/strong>> collision/strong>name/span>> 起源/strong>xyzspan class="emphasis">(“0 0 0”)/em>rpyspan class="emphasis">(“0 0 0”)/em>/>strong class="emphasis bold">geometry/strong>> box/strong>尺寸/> 圆筒/strong>半径长度/> 领域/strong>radius /> mesh/strong>filenamespan class="green">scalespan class="emphasis">("1")/em>/>/strong class="emphasis bold">geometry/strong>> /strong class="emphasis bold">collision/strong>> link/strong>> joint/strong>name type> 起源/strong>xyzspan class="emphasis">(“0 0 0”)/em>rpyspan class="emphasis">(“0 0 0”)/em>/>strong class="emphasis bold">父母/strong>链接/> 孩子/strong>链接/> axis/strong>xyzspan class="emphasis">("1 0 0")/em>/>span class="green">校准/strong>rising/span>/>span class="green">校准/strong>falling/span>/>span class="green">dynamics/strong>减震span class="emphasis">("0")/em>frictionspan class="emphasis">("0")/em>/>strong class="emphasis bold">limitsup>†/sup>降低sup>†/sup>uppersup>†/sup>effort velocity/span>/>strong class="emphasis bold">模仿/span>jointspan class="green">multiplierspan class="emphasis">("1")/em>offsetspan class="emphasis">("0")/em>/>span class="green">safety_controller./strong>soft_lower_limitspan class="emphasis">("0")/em>。。。。。。soft_upper_limitspan class="emphasis">("0")/em>k_positionspan class="emphasis">("0")/em>k_velocity.span>("0")/em>/>/strong class="emphasis bold">joint/strong>> 机器人/strong>>/pre>
†/sup>需要code class="literal"><联合>/code>elements ofcode class="literal">type/code>prismatic/code>andcode class="literal">revolute/code>只要。/p>
Create a Simple URDF Model/h3>
As an example, create a URDF model of a double pendulum. In your text editor of choice, create a file with the code shown below and save the file ascode class="literal">double_pendulum.urdf/code>在一个方便的文件夹中。在文件名中包含文件扩展名。单独的示例显示了如何将此模型导入其中span class="entity">Simscape multibody./span>environment (seea href="//www.tatmou.com/help/physmod/sm/ug/urdf-import.html" class="a">Import a Simple URDF Model/a>)。/p>
strong class="emphasis bold">机器人/strong>name =“链接”>span class="gray">!-- links section -->>/span>strong class="emphasis bold">link/strong>name =“链接A”> 惯性l/strong>> 起源/strong>XYZ =“0 0 0”/> mass/strong>value = "0.5" /> 惯性/strong>IXX =“0.5”Iyy =“0.5”Izz =“0.5”Ixy =“0”Ixz =“0”Iyz =“0”/> 惯性l/strong>> 视觉的/strong>> 起源/strong>XYZ =“0 0 0”/> geometry/strong>> box/strong>尺寸=“0.5 0.5 0.1”/> geometry/strong>> 材料/strong>name =“灰色a”> color/strong>RGBA.= "0.1 0.1 0.1 1" /> 材料/strong>> 视觉的/strong>> link/strong>> link/strong>name = "link B"> 惯性l/strong>> 起源/strong>XYZ =“0 0 -0.5”/> mass/strong>value = "0.5" /> 惯性/strong>IXX =“0.5”Iyy =“0.5”Izz =“0.5”Ixy =“0”Ixz =“0”Iyz =“0”/> 惯性l/strong>> 视觉的/strong>> 起源/strong>XYZ =“0 0 -0.5”/> geometry/strong>> 圆筒/strong>radius = "0.05" length = "1" /> geometry/strong>> 材料/strong>name =“灰色b”> color/strong>RGBA.= "0.3 0.3 0.3 1" /> 材料/strong>> 视觉的/strong>> link/strong>> link/strong>name = "link C"> 惯性l/strong>> 起源/strong>XYZ =“0 0 -0.5”/> mass/strong>value = "0.5" /> 惯性/strong>IXX =“0.5”Iyy =“0.5”Izz =“0.5”Ixy =“0”Ixz =“0”Iyz =“0”/> 惯性l/strong>> 视觉的/strong>> 起源/strong>XYZ =“0 0 -0.5”/> geometry/strong>> 圆筒/strong>radius = "0.05" length = "1" /> geometry/strong>> 材料/strong>name = "gray C"> color/strong>RGBA.= "0.5 0.5 0.5 1" /> 材料/strong>> 视觉的/strong>> link/strong>>span class="gray">!-- joints section -->>/span>strong class="emphasis bold">joint/strong>name =“关节A”类型=“连续”> 父母/strong>link = "link A" /> 孩子/strong>link = "link B" /> 起源/strong>XYZ =“0 0 0.05”/> axis/strong>xyz = "0 1 0" /> joint/strong>> joint/strong>name =“关节b”类型=“连续”> 父母/strong>link = "link B" /> 孩子/strong>link = "link C" /> 起源/strong>XYZ =“0 0 -1”/> axis/strong>xyz = "0 1 0" /> dynamics/strong>减震="0.002" /> joint/strong>> 机器人/strong>>/pre>
关于the URDF Model/h4>
这code defines a multibody model namedcode class="literal">连锁/code>。这model contains three links, namedcode class="literal">link A/code>那code class="literal">link B/code>andcode class="literal">link C/code>那that connect via two joints, namedcode class="literal">联合A./code>andcode class="literal">联合B./code>。这code class="literal"><父母>/code>andcode class="literal">/code>elements of the joints identify how the links connect to each other:code class="literal">link A/code>connects tocode class="literal">link B/code>andcode class="literal">link B/code>connects tocode class="literal">link C/code>。code class="literal">link A/code>has no parent link—that is, it appears incode class="literal"><联合>/code>elements as a child element only—and is therefore the root link./p>
这code class="literal">惯性l>/code>element ofcode class="literal">link A/code>defines the mass and moments of inertia (code class="literal">IXX./code>那code class="literal">Iyy./code>那code class="literal">Izz./code>) of the link. The products of inertia (code class="literal">IXY/code>那code class="literal">IXZ./code>那andcode class="literal">IYZ./code>) are unspecified and have the URDF default value of zero. Thecode class="literal">视觉的/code>element ofcode class="literal">link A/code>defines the geometry type and material color for use in the model visualization. The geometry in this case is a box with width and thickness ofcode class="literal">0.5/code>m and height ofcode class="literal">0.1/code>m. Thecode class="literal">起源>/code>链接的元素code class="literal">惯性l>/code>andcode class="literal">视觉的>/code>specify the transforms from the link reference frame to the inertial and visual reference frames. Similar elements apply tocode class="literal">link B/code>andcode class="literal">link C/code>。/p>
这code class="literal">type/code>attribute of thecode class="literal"><联合>/code>elements defines the joints as continuous—a type of revolute joint without motion limits. Thecode class="literal">起源>/code>element specifies the location of the joint relative to the reference frame of the parent link element. For example, thecode class="literal">起源>/code>element ofcode class="literal">联合A./code>offsets the jointcode class="literal">0.05/code>沿着code class="literal remove_text_wrapping">-Z/code>axis relative to the origin of thecode class="literal">link A/code>reference frame. Thecode class="literal">axis/code>元素嵌入在每个内部code class="literal">joint/code>element defines the rotational axis of the joint as the Cartesian vectorcode class="literal">[0, 1, 0]/code>那orcode class="literal">+Y/code>。/p>
这figure shows the components of the model—the links and joints—and the various frames they contain.strong class="emphasis bold">R./strong>表示链接参考帧,I一个链接惯性帧,以及V一个链路视觉帧。j表示与子链路的参考帧保持一致的联合参考帧。惯性和视觉框架偏移到链路的中心和它们的下边缘的关节框架。/p>
Double-Pendulum Model Components/strong>
Obtaining URDF Models to Import/h3>
You can, but generally do not have to, manually create your own URDF files. For more complex models, it can be preferable to obtain URDF files from other sources. Robotics manufacturers and consultants often provide URDF models for their robotic systems. CAD applications such as SolidWorkssup>®/sup>和PTCsup>®/sup>Creo™ support URDF exporters that convert your CAD assemblies into URDF models. Consider these options when working with complex robotics models that may not be simple to create manually./p>
也可以看看/h2>
What is URDF?/h3>
What’s in a URDF File?/h3>
与其他类型的XML文件一样,URDF文件包括各种XML元素,例如code class="literal"><机器人>/code>那code class="literal"><链接>/code>那code class="literal"><联合>/code>,嵌套在称为XML树的分层结构中。例如code class="literal"><链接>/code>andcode class="literal"><联合>/code>elements are said to be children of thecode class="literal"><机器人>/code>元素和互相,code class="literal"><机器人>/code>element the parent of thecode class="literal"><链接>/code>andcode class="literal"><联合>/code>elements./p>
<机器人> <链接> ... link> <链接> ... link> <联合> ... 联合> 机器人>/pre>
Child elements, such ascode class="literal"><链接>/code>andcode class="literal"><联合>/code>在下面code class="literal"><机器人>/code>那can in turn have child elements of their own. For example, thecode class="literal"><链接>/code>element has the child elementscode class="literal">惯性l>/code>andcode class="literal">视觉的>/code>。这code class="literal">视觉的>/code>element has the child elementscode class="literal">geometry>/code>andcode class="literal">材料>/code>。和code class="literal">材料>/code>element has the child elementcode class="literal"> In addition to child elements, the XML elements in a URDF model can have attributes. For example, thecode class="literal"><机器人>/code>那code class="literal"><链接>/code>那andcode class="literal"><联合>/code>元素都有属性code class="literal"><机器人> <链接>/span>惯性l> ...
机器人/span>name = "linkage"/span>> 名称=“根链接”/span>>
XML Hierarchies and Kinematic Trees/h3>
URDF links connect through joints in hierarchical structures not unlike those formed by nesting XML elements in a URDF file.code class="literal"><联合>/code>元素通过以下方式执行这些层次结构code class="literal"><父母>/code>andcode class="literal"> You can visualize the connections between links using a schematic known as aem class="firstterm">connectivity graph/em>。这figure shows an example. Circles denote links and arrows denote joints. The arrow roots identify the parent nodes and the arrow tips the child nodes. The connectivity graph reveals the topology of the underlying model—here a simple kinematic tree with two branches./p>
Connectivity Graph of a Kinematic Tree/strong> 模型拓扑在URDF中很重要。模型的连接图可以仅采用运动型树,始终打开的运动链,分支或非分支。运动环,每个通过连接否则开口链的端部形成的封闭链。这种限制会影响如何code class="literal"><链接>/code>elements can connect in a URDF model./p>
这restriction translates to the following rule: nocode class="literal"><链接>/code>元素可以用作多个子节点code class="literal"><联合>/code>元素。换句话说,没有code class="literal"><链接>/code>元素可以在模型的连接图中具有多个父元素。只有根链路,即在连接图的原点,可以具有与一个(零)不同的父节点不同。模型中只允许一个根链路。/p>
运动回路URDF示例/strong> 这code declares a link,code class="literal">link D/code>那as a child node in twocode class="literal"><联合>/code>elements,code class="literal">关节C./code>andcode class="literal">联合D./code>。这code class="literal">link D/code>元素有两个父母并形成运动循环。该模型违反了URDF连接规则,无效。该图显示了模型的连接图。/p>
运动环的连接图/strong><父母>/code>andcode class="literal">
<机器人名称=“链接”>/span><联合名称=“关节A ...>/span><父链路=“链接A”/>
<机器人名称=“链接”>/span><联合名称=“关节A ...>/span><父链路=“链接A”/>
R.equired and Optional URDF Entities/h3>
并非需要URDF规范中列出的所有元素和属性。有些,喜欢code class="literal">惯性l>/code>在下面code class="literal"><链接>/code>那are optional. The following code shows the various elements and attributes that you can use, with those that are optional colored green./p>
内部所需的元素和属性显示为optional elements are so only if the optional elements are used. The default values of optional attributes are shown in parentheses and in italic font. Note that this code is included only as a reference and that it does not represent a valid URDF model. Ellipses (“...”) are invalid in URDF models and are used merely to break long lines of code for ease of viewing./p>
strong class="emphasis bold">机器人/strong>名称> link/strong>名称> 惯性l/span>> 起源/strong>xyzspan class="emphasis">(“0 0 0”)/em>rpyspan class="emphasis">(“0 0 0”)/em>/>strong class="emphasis bold">mass/strong>value /> 惯性/strong>ixx iyy izz ixy ixz iyz /> /strong class="emphasis bold">惯性l/strong>> 视觉的/strong>name/span>> 起源/strong>xyzspan class="emphasis">(“0 0 0”)/em>rpyspan class="emphasis">(“0 0 0”)/em>/>/span>strong class="emphasis bold">geometry/strong>> box/strong>尺寸/> 圆筒/strong>半径长度/> 领域/strong>radius /> mesh/strong>filenamespan class="green">scalespan class="emphasis">("1")/em>/>/strong class="emphasis bold">geometry/strong>> 材料/span>名称> color/strong>RGBA.span class="emphasis">("0.5 0.5 0.5 1")/em>/>span class="green">texture/strong>filename/span>/>strong class="emphasis bold">/span class="green">材料/span>> /strong class="emphasis bold">视觉的/strong>> collision/strong>name/span>> 起源/strong>xyzspan class="emphasis">(“0 0 0”)/em>rpyspan class="emphasis">(“0 0 0”)/em>/>strong class="emphasis bold">geometry/strong>> box/strong>尺寸/> 圆筒/strong>半径长度/> 领域/strong>radius /> mesh/strong>filenamespan class="green">scalespan class="emphasis">("1")/em>/>/strong class="emphasis bold">geometry/strong>> /strong class="emphasis bold">collision/strong>> link/strong>> joint/strong>name type> 起源/strong>xyzspan class="emphasis">(“0 0 0”)/em>rpyspan class="emphasis">(“0 0 0”)/em>/>strong class="emphasis bold">父母/strong>链接/> 孩子/strong>链接/> axis/strong>xyzspan class="emphasis">("1 0 0")/em>/>span class="green">校准/strong>rising/span>/>span class="green">校准/strong>falling/span>/>span class="green">dynamics/strong>减震span class="emphasis">("0")/em>frictionspan class="emphasis">("0")/em>/>strong class="emphasis bold">limitsup>†/sup>降低sup>†/sup>uppersup>†/sup>effort velocity/span>/>strong class="emphasis bold">模仿/span>jointspan class="green">multiplierspan class="emphasis">("1")/em>offsetspan class="emphasis">("0")/em>/>span class="green">safety_controller./strong>soft_lower_limitspan class="emphasis">("0")/em>。。。。。。soft_upper_limitspan class="emphasis">("0")/em>k_positionspan class="emphasis">("0")/em>k_velocity.span>("0")/em>/>/strong class="emphasis bold">joint/strong>> 机器人/strong>>/pre>
†/sup>需要code class="literal"><联合>/code>elements ofcode class="literal">type/code>prismatic/code>andcode class="literal">revolute/code>只要。/p>
Create a Simple URDF Model/h3>
As an example, create a URDF model of a double pendulum. In your text editor of choice, create a file with the code shown below and save the file ascode class="literal">double_pendulum.urdf/code>在一个方便的文件夹中。在文件名中包含文件扩展名。单独的示例显示了如何将此模型导入其中span class="entity">Simscape multibody./span>environment (seea href="//www.tatmou.com/help/physmod/sm/ug/urdf-import.html" class="a">Import a Simple URDF Model/a>)。/p>
strong class="emphasis bold">机器人/strong>name =“链接”>span class="gray">!-- links section -->>/span>strong class="emphasis bold">link/strong>name =“链接A”> 惯性l/strong>> 起源/strong>XYZ =“0 0 0”/> mass/strong>value = "0.5" /> 惯性/strong>IXX =“0.5”Iyy =“0.5”Izz =“0.5”Ixy =“0”Ixz =“0”Iyz =“0”/> 惯性l/strong>> 视觉的/strong>> 起源/strong>XYZ =“0 0 0”/> geometry/strong>> box/strong>尺寸=“0.5 0.5 0.1”/> geometry/strong>> 材料/strong>name =“灰色a”> color/strong>RGBA.= "0.1 0.1 0.1 1" /> 材料/strong>> 视觉的/strong>> link/strong>> link/strong>name = "link B"> 惯性l/strong>> 起源/strong>XYZ =“0 0 -0.5”/> mass/strong>value = "0.5" /> 惯性/strong>IXX =“0.5”Iyy =“0.5”Izz =“0.5”Ixy =“0”Ixz =“0”Iyz =“0”/> 惯性l/strong>> 视觉的/strong>> 起源/strong>XYZ =“0 0 -0.5”/> geometry/strong>> 圆筒/strong>radius = "0.05" length = "1" /> geometry/strong>> 材料/strong>name =“灰色b”> color/strong>RGBA.= "0.3 0.3 0.3 1" /> 材料/strong>> 视觉的/strong>> link/strong>> link/strong>name = "link C"> 惯性l/strong>> 起源/strong>XYZ =“0 0 -0.5”/> mass/strong>value = "0.5" /> 惯性/strong>IXX =“0.5”Iyy =“0.5”Izz =“0.5”Ixy =“0”Ixz =“0”Iyz =“0”/> 惯性l/strong>> 视觉的/strong>> 起源/strong>XYZ =“0 0 -0.5”/> geometry/strong>> 圆筒/strong>radius = "0.05" length = "1" /> geometry/strong>> 材料/strong>name = "gray C"> color/strong>RGBA.= "0.5 0.5 0.5 1" /> 材料/strong>> 视觉的/strong>> link/strong>>span class="gray">!-- joints section -->>/span>strong class="emphasis bold">joint/strong>name =“关节A”类型=“连续”> 父母/strong>link = "link A" /> 孩子/strong>link = "link B" /> 起源/strong>XYZ =“0 0 0.05”/> axis/strong>xyz = "0 1 0" /> joint/strong>> joint/strong>name =“关节b”类型=“连续”> 父母/strong>link = "link B" /> 孩子/strong>link = "link C" /> 起源/strong>XYZ =“0 0 -1”/> axis/strong>xyz = "0 1 0" /> dynamics/strong>减震="0.002" /> joint/strong>> 机器人/strong>>/pre>
关于the URDF Model/h4>
这code defines a multibody model namedcode class="literal">连锁/code>。这model contains three links, namedcode class="literal">link A/code>那code class="literal">link B/code>andcode class="literal">link C/code>那that connect via two joints, namedcode class="literal">联合A./code>andcode class="literal">联合B./code>。这code class="literal"><父母>/code>andcode class="literal"> 这code class="literal">惯性l>/code>element ofcode class="literal">link A/code>defines the mass and moments of inertia (code class="literal">IXX./code>那code class="literal">Iyy./code>那code class="literal">Izz./code>) of the link. The products of inertia (code class="literal">IXY/code>那code class="literal">IXZ./code>那andcode class="literal">IYZ./code>) are unspecified and have the URDF default value of zero. Thecode class="literal">视觉的/code>element ofcode class="literal">link A/code>defines the geometry type and material color for use in the model visualization. The geometry in this case is a box with width and thickness ofcode class="literal">0.5/code>m and height ofcode class="literal">0.1/code>m. Thecode class="literal">起源>/code>链接的元素code class="literal">惯性l>/code>andcode class="literal">视觉的>/code>specify the transforms from the link reference frame to the inertial and visual reference frames. Similar elements apply tocode class="literal">link B/code>andcode class="literal">link C/code>。/p>
这code class="literal">type/code>attribute of thecode class="literal"><联合>/code>elements defines the joints as continuous—a type of revolute joint without motion limits. Thecode class="literal">起源>/code>element specifies the location of the joint relative to the reference frame of the parent link element. For example, thecode class="literal">起源>/code>element ofcode class="literal">联合A./code>offsets the jointcode class="literal">0.05/code>沿着code class="literal remove_text_wrapping">-Z/code>axis relative to the origin of thecode class="literal">link A/code>reference frame. Thecode class="literal">axis/code>元素嵌入在每个内部code class="literal">joint/code>element defines the rotational axis of the joint as the Cartesian vectorcode class="literal">[0, 1, 0]/code>那orcode class="literal">+Y/code>。/p>
这figure shows the components of the model—the links and joints—and the various frames they contain.strong class="emphasis bold">R./strong>表示链接参考帧,I一个链接惯性帧,以及V一个链路视觉帧。j表示与子链路的参考帧保持一致的联合参考帧。惯性和视觉框架偏移到链路的中心和它们的下边缘的关节框架。/p>
Double-Pendulum Model Components/strong>
Obtaining URDF Models to Import/h3>
You can, but generally do not have to, manually create your own URDF files. For more complex models, it can be preferable to obtain URDF files from other sources. Robotics manufacturers and consultants often provide URDF models for their robotic systems. CAD applications such as SolidWorkssup>®/sup>和PTCsup>®/sup>Creo™ support URDF exporters that convert your CAD assemblies into URDF models. Consider these options when working with complex robotics models that may not be simple to create manually./p>