
1.link可以理解为机器人的一个骨骼部分为实物。在link中我们可以定义3个东西样式碰撞体惯性参数样式visual:在仿真/可视化中看到的形状、颜色、位置碰撞体collision:用于物理引擎计算碰撞惯性参数inertial其中包括物体的质量和描述这个部件旋转时的“惯性”影响物理仿真的真实感。!-- 红色正方体 -- link namecube1 visual geometry box size0.3 0.3 0.3/ /geometry material namecube_red/ /visual collision geometry box size0.3 0.3 0.3/ /geometry /collision inertial mass value0.5/ inertia ixx0.01 ixy0 ixz0 iyy0.01 iyz0 izz0.01/ /inertial /link2.joint:关节joint就是连接两个link的约束它定义了父 link 和子 link 之间的相对位置和运动方式。joint name关节名字 type关节怎么动其中name是关键的唯一标识方便在控制器、话题、调试中引用。type告诉关键应该怎么动一般包括以下五类类型含义fixed完全固定不能动continuous无限旋转360°无限制revolute有限旋转-90° 到 90°prismatic直线滑动前后伸缩planar平面运动x-y 平面在joint中以下是定义与作用parent link固定的那一端child link会动的那一端origin:child link 相对于parent link 的位置xyz和旋转rpyaxis:对于旋转类关节指定绕哪个轴旋转limit:运动限制其中包括lower最小角度,upper最大角度,effort最大力度,velocity(最快速度)joint namecube_joint typecontinuous parent linkbase_link/ child linkcube/ origin xyz0 0 0.25 rpy0 0 0/ axis xyz0 1 0/ limit effort10.0 velocity2.0/ /joint以下是完整代码和效果实现?xml version1.0? robot namesimple_cube !-- 1. 定义颜色 -- material namered color rgba1 0 0 1/ /material material namegray color rgba0.5 0.5 0.5 1/ /material !-- 2. 世界根节点 -- link nameworld/ !-- 3. 底座 link -- link namebase_link visual geometry box size0.8 0.8 0.1/ /geometry material namegray/ /visual collision geometry box size0.8 0.8 0.1/ /geometry /collision inertial mass value1.0/ inertia ixx0.1 ixy0 ixz0 iyy0.1 iyz0 izz0.1/ /inertial /link !-- 4. 底座固定到世界 -- joint nameworld_joint typefixed parent linkworld/ child linkbase_link/ origin xyz0 0 0.05 rpy0 0 0/ /joint !-- 5. 红色方块 link -- link namecube visual geometry box size0.3 0.3 0.3/ /geometry material namered/ /visual collision geometry box size0.3 0.3 0.3/ /geometry /collision inertial mass value0.5/ inertia ixx0.01 ixy0 ixz0 iyy0.01 iyz0 izz0.01/ /inertial /link !-- 6. 方块连接到底座绕 Y 轴旋转 -- joint namecube_joint typecontinuous parent linkbase_link/ child linkcube/ origin xyz0 0 0.25 rpy0 0 0/ axis xyz0 1 0/ limit effort10.0 velocity2.0/ /joint /robot用的直接可以看的网站Robot Viewer不需要先放在ros中先编译部署。