Mujoco仿真【xml文件的学习 2】

 承接上一篇的博客:Mujoco仿真【xml文件的学习 1】-CSDN博客 

我们继续来学习Mujoco仿真中的xml文件,哦豁,gogogo!


给出这次的xml文件案例【bimanual_viperx_transfer_cube.xml】:

<mujoco><include file="scene.xml"/><include file="vx300s_dependencies.xml"/><worldbody><include file="vx300s_left.xml" /><include file="vx300s_right.xml" /><body name="box" pos="0.2 0.5 0.05"><joint name="red_box_joint" type="free" frictionloss="0.01" /><inertial pos="0 0 0" mass="0.05" diaginertia="0.002 0.002 0.002" /><geom condim="4" solimp="2 1 0.01" solref="0.01 1" friction="1 0.005 0.0001" pos="0 0 0" size="0.02 0.02 0.02" type="box" name="red_box" rgba="1 0 0 1" /></body></worldbody><actuator><position ctrllimited="true" ctrlrange="-3.14158 3.14158" joint="vx300s_left/waist" kp="800"  user="1" forcelimited="true" forcerange="-150 150"/><position ctrllimited="true" ctrlrange="-1.85005 1.25664" joint="vx300s_left/shoulder" kp="1600"  user="1" forcelimited="true" forcerange="-300 300"/><position ctrllimited="true" ctrlrange="-1.76278 1.6057" joint="vx300s_left/elbow" kp="800"  user="1" forcelimited="true" forcerange="-100 100"/><position ctrllimited="true" ctrlrange="-3.14158 3.14158" joint="vx300s_left/forearm_roll" kp="10"  user="1" forcelimited="true" forcerange="-100 100"/><position ctrllimited="true" ctrlrange="-1.8675 2.23402" joint="vx300s_left/wrist_angle" kp="50"  user="1"/><position ctrllimited="true" ctrlrange="-3.14158 3.14158" joint="vx300s_left/wrist_rotate" kp="20"  user="1"/><position ctrllimited="true" ctrlrange="0.021 0.057" joint="vx300s_left/left_finger" kp="200"  user="1"/><position ctrllimited="true" ctrlrange="-0.057 -0.021" joint="vx300s_left/right_finger" kp="200"  user="1"/><position ctrllimited="true" ctrlrange="-3.14158 3.14158" joint="vx300s_right/waist" kp="800"  user="1" forcelimited="true" forcerange="-150 150"/><position ctrllimited="true" ctrlrange="-1.85005 1.25664" joint="vx300s_right/shoulder" kp="1600"  user="1" forcelimited="true" forcerange="-300 300"/><position ctrllimited="true" ctrlrange="-1.76278 1.6057" joint="vx300s_right/elbow" kp="800"  user="1" forcelimited="true" forcerange="-100 100"/><position ctrllimited="true" ctrlrange="-3.14158 3.14158" joint="vx300s_right/forearm_roll" kp="10"  user="1" forcelimited="true" forcerange="-100 100"/><position ctrllimited="true" ctrlrange="-1.8675 2.23402" joint="vx300s_right/wrist_angle" kp="50"  user="1"/><position ctrllimited="true" ctrlrange="-3.14158 3.14158" joint="vx300s_right/wrist_rotate" kp="20"  user="1"/><position ctrllimited="true" ctrlrange="0.021 0.057" joint="vx300s_right/left_finger" kp="200"  user="1"/><position ctrllimited="true" ctrlrange="-0.057 -0.021" joint="vx300s_right/right_finger" kp="200"  user="1"/></actuator><keyframe><key qpos="0 -0.96 1.16 0 -0.3 0 0.024 -0.024  0 -0.96 1.16 0 -0.3 0 0.024 -0.024  0.2 0.5 0.05 1 0 0 0"/></keyframe></mujoco>

        这段代码描述了一个 MuJoCo 模型的 XML 文件。MuJoCo 是一种物理引擎,用于模拟机器人和其他物体的动态行为。

下面解释一下这个 XML 文件的结构和内容:

    <mujoco> 标签是整个 MuJoCo 模型的根标签。
    <include> 标签用于包含其他 XML 文件这里包含了 scene.xml vx300s_dependencies.xml以及vx300s_left.xmlvx300s_right.xml
    <worldbody> 标签包含了模拟世界中的物体和关节。
        <body> 标签定义了一个名为 "box" 的物体,位于三维空间中的位置 (0.2, 0.5, 0.05),代表一个红色的方块。
            在 <body> 标签内部,定义了一个自由关节 (<joint>) 名为 "red_box_joint",其类型为 "free",具有摩擦损耗 0.01。
            <inertial> 标签定义了惯性参数,这里的质量为 0.05,惯性矩阵为对角线为 (0.002, 0.002, 0.002) 的矩阵。
            <geom> 标签定义了物体的几何形状,这里是一个红色的长方体,大小为 0.02 x 0.02 x 0.02,摩擦系数为 1。
    <actuator> 标签定义了执行器控制模型的关节
        每个 <position> 标签定义了一个关节的位置控制器,包括关节名称、控制范围、控制参数等。
    <keyframe> 标签定义了关键帧即模型在模拟中的一个状态
        <key> 标签包含了关节位置 (qpos) 的值,以及相关信息。

        这个 XML 文件描述了一个包含两个机器人手臂的模型,以及一个红色的方块。每个机器人手臂都有多个关节,通过执行器来控制这些关节的位置。


给出scene.xml文件的内容与解释:

<mujocoinclude>
<!--    <option timestep='0.0025' iterations="50" tolerance="1e-10" solver="Newton" jacobian="dense" cone="elliptic"/>--><asset><mesh file="tabletop.stl" name="tabletop" scale="0.001 0.001 0.001"/></asset><visual><map fogstart="1.5" fogend="5" force="0.1" znear="0.1"/><quality shadowsize="4096" offsamples="4"/><headlight ambient="0.4 0.4 0.4"/></visual><worldbody><light castshadow="false" directional='true' diffuse='.3 .3 .3' specular='0.3 0.3 0.3' pos='-1 -1 1'dir='1 1 -1'/><light directional='true' diffuse='.3 .3 .3' specular='0.3 0.3 0.3' pos='1 -1 1' dir='-1 1 -1'/><light castshadow="false" directional='true' diffuse='.3 .3 .3' specular='0.3 0.3 0.3' pos='0 1 1'dir='0 -1 -1'/><body name="table" pos="0 .6 0"><geom group="1" mesh="tabletop" pos="0 0 0" type="mesh" conaffinity="1" contype="1" name="table" rgba="0.2 0.2 0.2 1" /></body><body name="midair" pos="0 .6 0.2"><site pos="0 0 0" size="0.01" type="sphere" name="midair" rgba="1 0 0 0"/></body><camera name="left_pillar" pos="-0.5 0.2 0.6" fovy="78" mode="targetbody" target="table"/><camera name="right_pillar" pos="0.5 0.2 0.6" fovy="78" mode="targetbody" target="table"/><camera name="top" pos="0 0.6 0.8" fovy="78" mode="targetbody" target="table"/><camera name="angle" pos="0 0 0.6" fovy="78" mode="targetbody" target="table"/><camera name="front_close" pos="0 0.2 0.4" fovy="78" mode="targetbody" target="vx300s_left/camera_focus"/></worldbody></mujocoinclude>

        这段代码是一个 MuJoCo 模型的 XML 包含文件,它包含了一些场景的描述和相机设置。

下面逐一解释其中的内容:

    <mujocoinclude> 标签定义了一个 MuJoCo 模型的包含文件
    <asset> 标签定义了资源,这里包含了一个名为 "tabletop" 的网格模型文件 tabletop.stl,并指定了模型的缩放比例。
    <visual> 标签定义了视觉效果的参数,包括雾效、阴影质量和头灯的环境光。
    <worldbody> 标签定义了模拟世界中的物体和相机。
        <light> 标签定义了灯光,包括了三个方向光,分别位于不同的位置和方向。
        <body> 标签定义了一个名为 "table" 的物体,代表一个桌子,位于世界坐标系的位置 (0, 0.6, 0)。
            在 <body> 标签内部,定义了一个网格几何体 (<geom>),使用之前定义的 "tabletop" 模型,设置了颜色为灰色。
        <body> 标签定义了一个名为 "midair" 的物体,代表空中的一个点,用于标记
            在 <body> 标签内部,定义了一个球体 (<site>),用于可视化,颜色为红色。
        <camera> 标签定义了相机设置了不同位置和方向的相机,以及其参数,如视野角度 (fovy)、模式 (mode) 和目标 (target)

        这个 XML 文件描述了一个模拟世界,包含了一个桌子、一个标记点和多个相机,用于模拟和可视化场景。


给出vx300s_dependencies.xml文件的内容与解释:

<mujocoinclude><compiler angle="radian" inertiafromgeom="auto" inertiagrouprange="4 5"/><asset><mesh name="vx300s_1_base" file="vx300s_1_base.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_2_shoulder" file="vx300s_2_shoulder.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_3_upper_arm" file="vx300s_3_upper_arm.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_4_upper_forearm" file="vx300s_4_upper_forearm.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_5_lower_forearm" file="vx300s_5_lower_forearm.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_6_wrist" file="vx300s_6_wrist.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_7_gripper" file="vx300s_7_gripper.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_8_gripper_prop" file="vx300s_8_gripper_prop.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_9_gripper_bar" file="vx300s_9_gripper_bar.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_10_gripper_finger_left" file="vx300s_10_custom_finger_left.stl" scale="0.001 0.001 0.001" /><mesh name="vx300s_10_gripper_finger_right" file="vx300s_10_custom_finger_right.stl" scale="0.001 0.001 0.001" /></asset></mujocoinclude>

        这段代码是一个 MuJoCo 模型的 XML 包含文件,它主要包含了一系列的网格模型文件以及编译器的设置。

下面逐一解释其中的内容:

    <mujocoinclude> 标签定义了一个 MuJoCo 模型的包含文件。
    <compiler> 标签定义了编译器的参数,包括角度单位 (angle) 和惯性计算方式 (inertiafromgeom)。
    <asset> 标签定义了资源,这里包含了多个网格模型文件。
        每个 <mesh> 标签定义了一个网格模型文件的路径 (file)、名称 (name) 和缩放比例 (scale)。

        这些模型文件看起来是机器人手臂的各个部件,包括底座、肩部、上臂、下臂、手腕、夹爪等。这些模型文件将被用于构建机器人手臂的模拟环境。


给出vx300s_left.xml文件的内容与解释:


<mujocoinclude><body name="vx300s_left" pos="-0.469 0.5 0"><geom quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_1_base" name="vx300s_left/1_base" contype="0" conaffinity="0"/><body name="vx300s_left/shoulder_link" pos="0 0 0.079"><inertial pos="0.000259233 -3.3552e-06 0.0116129" quat="-0.476119 0.476083 0.52279 0.522826" mass="0.798614" diaginertia="0.00120156 0.00113744 0.0009388" /><joint name="vx300s_left/waist" pos="0 0 0" axis="0 0 1" limited="true" range="-3.14158 3.14158" frictionloss="50" /><geom pos="0 0 -0.003" quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_2_shoulder" name="vx300s_left/2_shoulder" /><body name="vx300s_left/upper_arm_link" pos="0 0 0.04805"><inertial pos="0.0206949 4e-10 0.226459" quat="0 0.0728458 0 0.997343" mass="0.792592" diaginertia="0.00911338 0.008925 0.000759317" /><joint name="vx300s_left/shoulder" pos="0 0 0" axis="0 1 0" limited="true" range="-1.85005 1.25664" frictionloss="60" /><geom quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_3_upper_arm" name="vx300s_left/3_upper_arm"/><body name="vx300s_left/upper_forearm_link" pos="0.05955 0 0.3"><inertial pos="0.105723 0 0" quat="-0.000621631 0.704724 0.0105292 0.709403" mass="0.322228" diaginertia="0.00144107 0.00134228 0.000152047" /><joint name="vx300s_left/elbow" pos="0 0 0" axis="0 1 0" limited="true" range="-1.76278 1.6057" frictionloss="60" /><geom type="mesh" mesh="vx300s_4_upper_forearm" name="vx300s_left/4_upper_forearm" /><body name="vx300s_left/lower_forearm_link" pos="0.2 0 0"><inertial pos="0.0513477 0.00680462 0" quat="-0.702604 -0.0796724 -0.702604 0.0796724" mass="0.414823" diaginertia="0.0005911 0.000546493 0.000155707" /><joint name="vx300s_left/forearm_roll" pos="0 0 0" axis="1 0 0" limited="true" range="-3.14158 3.14158" frictionloss="30" /><geom quat="0 1 0 0" type="mesh" mesh="vx300s_5_lower_forearm" name="vx300s_left/5_lower_forearm"/><body name="vx300s_left/wrist_link" pos="0.1 0 0"><inertial pos="0.046743 -7.6652e-06 0.010565" quat="-0.00100191 0.544586 0.0026583 0.8387" mass="0.115395" diaginertia="5.45707e-05 4.63101e-05 4.32692e-05" /><joint name="vx300s_left/wrist_angle" pos="0 0 0" axis="0 1 0" limited="true" range="-1.8675 2.23402" frictionloss="30" /><geom quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_6_wrist" name="vx300s_left/6_wrist" /><body name="vx300s_left/gripper_link" pos="0.069744 0 0"><body name="vx300s_left/camera_focus" pos="0.15 0 0.01"><site pos="0 0 0" size="0.01" type="sphere" name="left_cam_focus" rgba="0 0 1 0"/></body><site pos="0.15 0 0" size="0.003 0.003 0.03" type="box" name="cali_left_site1" rgba="0 0 1 0"/><site pos="0.15 0 0" size="0.003 0.03 0.003" type="box" name="cali_left_site2" rgba="0 0 1 0"/><site pos="0.15 0 0" size="0.03 0.003 0.003" type="box" name="cali_left_site3" rgba="0 0 1 0"/><camera name="left_wrist" pos="-0.1 0 0.16" fovy="20" mode="targetbody" target="vx300s_left/camera_focus"/><inertial pos="0.0395662 -2.56311e-07 0.00400649" quat="0.62033 0.619916 -0.339682 0.339869" mass="0.251652" diaginertia="0.000689546 0.000650316 0.000468142" /><joint name="vx300s_left/wrist_rotate" pos="0 0 0" axis="1 0 0" limited="true" range="-3.14158 3.14158" frictionloss="30" /><geom pos="-0.02 0 0" quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_7_gripper" name="vx300s_left/7_gripper" /><geom pos="-0.020175 0 0" quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_9_gripper_bar" name="vx300s_left/9_gripper_bar" /><body name="vx300s_left/gripper_prop_link" pos="0.0485 0 0"><inertial pos="0.002378 2.85e-08 0" quat="0 0 0.897698 0.440611" mass="0.008009" diaginertia="4.2979e-06 2.8868e-06 1.5314e-06" />
<!--                                    <joint name="vx300s_left/gripper" pos="0 0 0" axis="1 0 0" frictionloss="30" />--><geom pos="-0.0685 0 0" quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_8_gripper_prop" name="vx300s_left/8_gripper_prop" /></body><body name="vx300s_left/left_finger_link" pos="0.0687 0 0"><inertial pos="0.017344 -0.0060692 0" quat="0.449364 0.449364 -0.54596 -0.54596" mass="0.034796" diaginertia="2.48003e-05 1.417e-05 1.20797e-05" /><joint name="vx300s_left/left_finger" pos="0 0 0" axis="0 1 0" type="slide" limited="true" range="0.021 0.057" frictionloss="30" /><geom condim="4" solimp="2 1 0.01" solref="0.01 1" friction="1 0.005 0.0001" pos="0.005 -0.052 0" euler="3.14 1.57 0" type="mesh" mesh="vx300s_10_gripper_finger_left" name="vx300s_left/10_left_gripper_finger"/></body><body name="vx300s_left/right_finger_link" pos="0.0687 0 0"><inertial pos="0.017344 0.0060692 0" quat="0.44937 -0.44937 0.545955 -0.545955" mass="0.034796" diaginertia="2.48002e-05 1.417e-05 1.20798e-05" /><joint name="vx300s_left/right_finger" pos="0 0 0" axis="0 1 0" type="slide" limited="true" range="-0.057 -0.021" frictionloss="30" /><geom condim="4" solimp="2 1 0.01" solref="0.01 1" friction="1 0.005 0.0001" pos="0.005 0.052 0" euler="3.14 1.57 0" type="mesh" mesh="vx300s_10_gripper_finger_right" name="vx300s_left/10_right_gripper_finger"/></body></body></body></body></body></body></body></body>
</mujocoinclude>

        这段代码描述了一个 MuJoCo 模型中左臂机器人的结构,包括了多个关节和连接部件的定义。

下面解释其中的主要部分:

    <mujocoinclude> 标签定义了一个 MuJoCo 模型的包含文件。
    <body> 标签定义了机器人左臂的主体,名称为 "vx300s_left",并设置了其在世界坐标系中的位置 (x=-0.469, y=0.5, z=0)。
    在 <body> 标签内部,定义了机器人左臂的各个部件,包括了底座、肩部、上臂、下臂、手腕和夹爪等。
        每个部件使用了 <body> 标签,并设置了名称、位置和姿态。
        在每个部件的内部,定义了其惯性参数 (<inertial>),关节 (<joint>),以及几何形状 (<geom>)。
        关节定义了关节的类型、位置、轴向、限制范围和摩擦损耗等。
        几何形状定义了部件的外形,使用了网格模型文件,并设置了位置、姿态和其他属性。

        这段代码描述了一个左臂机器人的结构,包括了多个关节和连接部件,用于模拟和控制机器人在环境中的运动和操作。


给出vx300s_right.xml文件的内容与解释:


<mujocoinclude><body name="vx300s_right" pos="0.469 0.5 0" euler="0 0 3.1416"><geom quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_1_base" name="vx300s_right/1_base" contype="0" conaffinity="0"/><body name="vx300s_right/shoulder_link" pos="0 0 0.079"><inertial pos="0.000259233 -3.3552e-06 0.0116129" quat="-0.476119 0.476083 0.52279 0.522826" mass="0.798614" diaginertia="0.00120156 0.00113744 0.0009388" /><joint name="vx300s_right/waist" pos="0 0 0" axis="0 0 1" limited="true" range="-3.14158 3.14158" frictionloss="50" /><geom pos="0 0 -0.003" quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_2_shoulder" name="vx300s_right/2_shoulder" /><body name="vx300s_right/upper_arm_link" pos="0 0 0.04805"><inertial pos="0.0206949 4e-10 0.226459" quat="0 0.0728458 0 0.997343" mass="0.792592" diaginertia="0.00911338 0.008925 0.000759317" /><joint name="vx300s_right/shoulder" pos="0 0 0" axis="0 1 0" limited="true" range="-1.85005 1.25664" frictionloss="60" /><geom quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_3_upper_arm" name="vx300s_right/3_upper_arm"/><body name="vx300s_right/upper_forearm_link" pos="0.05955 0 0.3"><inertial pos="0.105723 0 0" quat="-0.000621631 0.704724 0.0105292 0.709403" mass="0.322228" diaginertia="0.00144107 0.00134228 0.000152047" /><joint name="vx300s_right/elbow" pos="0 0 0" axis="0 1 0" limited="true" range="-1.76278 1.6057" frictionloss="60" /><geom type="mesh" mesh="vx300s_4_upper_forearm" name="vx300s_right/4_upper_forearm" /><body name="vx300s_right/lower_forearm_link" pos="0.2 0 0"><inertial pos="0.0513477 0.00680462 0" quat="-0.702604 -0.0796724 -0.702604 0.0796724" mass="0.414823" diaginertia="0.0005911 0.000546493 0.000155707" /><joint name="vx300s_right/forearm_roll" pos="0 0 0" axis="1 0 0" limited="true" range="-3.14158 3.14158" frictionloss="30" /><geom quat="0 1 0 0" type="mesh" mesh="vx300s_5_lower_forearm" name="vx300s_right/5_lower_forearm"/><body name="vx300s_right/wrist_link" pos="0.1 0 0"><inertial pos="0.046743 -7.6652e-06 0.010565" quat="-0.00100191 0.544586 0.0026583 0.8387" mass="0.115395" diaginertia="5.45707e-05 4.63101e-05 4.32692e-05" /><joint name="vx300s_right/wrist_angle" pos="0 0 0" axis="0 1 0" limited="true" range="-1.8675 2.23402" frictionloss="30" /><geom quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_6_wrist" name="vx300s_right/6_wrist" /><body name="vx300s_right/gripper_link" pos="0.069744 0 0"><body name="vx300s_right/camera_focus" pos="0.15 0 0.01"><site pos="0 0 0" size="0.01" type="sphere" name="right_cam_focus" rgba="0 0 1 0"/></body><site pos="0.15 0 0" size="0.003 0.003 0.03" type="box" name="cali_right_site1" rgba="0 0 1 0"/><site pos="0.15 0 0" size="0.003 0.03 0.003" type="box" name="cali_right_site2" rgba="0 0 1 0"/><site pos="0.15 0 0" size="0.03 0.003 0.003" type="box" name="cali_right_site3" rgba="0 0 1 0"/><camera name="right_wrist" pos="-0.1 0 0.16" fovy="20" mode="targetbody" target="vx300s_right/camera_focus"/><inertial pos="0.0395662 -2.56311e-07 0.00400649" quat="0.62033 0.619916 -0.339682 0.339869" mass="0.251652" diaginertia="0.000689546 0.000650316 0.000468142" /><joint name="vx300s_right/wrist_rotate" pos="0 0 0" axis="1 0 0" limited="true" range="-3.14158 3.14158" frictionloss="30" /><geom pos="-0.02 0 0" quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_7_gripper" name="vx300s_right/7_gripper" /><geom pos="-0.020175 0 0" quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_9_gripper_bar" name="vx300s_right/9_gripper_bar" /><body name="vx300s_right/gripper_prop_link" pos="0.0485 0 0"><inertial pos="0.002378 2.85e-08 0" quat="0 0 0.897698 0.440611" mass="0.008009" diaginertia="4.2979e-06 2.8868e-06 1.5314e-06" />
<!--                                    <joint name="vx300s_right/gripper" pos="0 0 0" axis="1 0 0" frictionloss="30" />--><geom pos="-0.0685 0 0" quat="0.707107 0 0 0.707107" type="mesh" mesh="vx300s_8_gripper_prop" name="vx300s_right/8_gripper_prop" /></body><body name="vx300s_right/left_finger_link" pos="0.0687 0 0"><inertial pos="0.017344 -0.0060692 0" quat="0.449364 0.449364 -0.54596 -0.54596" mass="0.034796" diaginertia="2.48003e-05 1.417e-05 1.20797e-05" /><joint name="vx300s_right/left_finger" pos="0 0 0" axis="0 1 0" type="slide" limited="true" range="0.021 0.057" frictionloss="30" /><geom condim="4" solimp="2 1 0.01" solref="0.01 1" friction="1 0.005 0.0001" pos="0.005 -0.052 0" euler="3.14 1.57 0" type="mesh" mesh="vx300s_10_gripper_finger_left" name="vx300s_right/10_left_gripper_finger"/></body><body name="vx300s_right/right_finger_link" pos="0.0687 0 0"><inertial pos="0.017344 0.0060692 0" quat="0.44937 -0.44937 0.545955 -0.545955" mass="0.034796" diaginertia="2.48002e-05 1.417e-05 1.20798e-05" /><joint name="vx300s_right/right_finger" pos="0 0 0" axis="0 1 0" type="slide" limited="true" range="-0.057 -0.021" frictionloss="30" /><geom condim="4" solimp="2 1 0.01" solref="0.01 1" friction="1 0.005 0.0001" pos="0.005 0.052 0" euler="3.14 1.57 0" type="mesh" mesh="vx300s_10_gripper_finger_right" name="vx300s_right/10_right_gripper_finger"/></body></body></body></body></body></body></body></body>
</mujocoinclude>

        这段代码描述了一个 MuJoCo 模型中右臂机器人的结构,与之前描述的左臂机器人相似,也包括了多个关节和连接部件的定义。

下面解释其中的主要部分:

    <mujocoinclude> 标签定义了一个 MuJoCo 模型的包含文件。
    <body> 标签定义了机器人右臂的主体,名称为 "vx300s_right",并设置了其在世界坐标系中的位置 (x=0.469, y=0.5, z=0),以及姿态为 (roll=0, pitch=0, yaw=3.1416),表示绕 Z 轴旋转 180 度。
    在 <body> 标签内部,定义了机器人右臂的各个部件,包括了底座、肩部、上臂、下臂、手腕和夹爪等,与左臂结构相似。
        每个部件使用了 <body> 标签,并设置了名称、位置和姿态。
        在每个部件的内部,定义了其惯性参数 (<inertial>),关节 (<joint>),以及几何形状 (<geom>)。
        关节定义了关节的类型、位置、轴向、限制范围和摩擦损耗等。
        几何形状定义了部件的外形,使用了网格模型文件,并设置了位置、姿态和其他属性。

        这段代码描述了一个右臂机器人的结构,包括了多个关节和连接部件,用于模拟和控制机器人在环境中的运动和操作。


下面在mujoco的bin目录中启动XML文件观看模型的效果:

在bin目录中的文件夹中开启一个终端并执行:

./simulate bimanual_viperx_transfer_cube.xml 

没错,这正是斯坦福的aloha双臂!


~~~这个xml文件的案例展示到此结束~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/13791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LitCTF

[LitCTF 2023]enbase64 base 64 里面有一个换表的函数 写代码 #include<stdio.h> #include<string.h> #include<stdlib.h> int main() {char *result; char Destination[65]; int v3[65];int j;int i; char Source[]"ABCDEFGHIJKLMNOPQRSTUVWXYZabcde…

打造高效安全新标杆:智慧楼宇视频智能管理系统的建设探索

大数据、人工智能、5G等技术在城市中的不同应用也让人们看到了数字化和智能化技术赋予城市管理的巨大潜力&#xff0c;为更多城市数字化应用场景的发展带来机遇。在新基建的大背景下&#xff0c;人工智能、物联网等先进技术与基础设施的深度融合&#xff0c;将大力推进电网、楼…

ArcGIS批量更改所有符号的格式

这期谈一下&#xff0c;如何修改所有符号的样式。 比如&#xff0c;我们需要更改下图的面符号位无轮廓的 该如何批量修改的呢&#xff1f; 视频教学吧&#xff1a; ArcGIS批量更改所有符号的格式 ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放-CSDN博客文章浏览阅…

el-input 自动获取焦点

前言&#xff1a; 需求描述&#xff1a;在 Dialog 对话框中 使用 input 组件&#xff1b;当点击按钮&#xff0c;Dialog 对话框显示&#xff0c;且里面的 input 组件要自动获取焦点。因为页面上还存在其他的 input 组件&#xff0c;所以使用 自动获取焦点属性没用&#xff01;&…

基于Java的推箱子游戏设计与实现(论文 + 源码)

【免费】关于基于JAVA的推箱子游戏.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89325018 基于Java的推箱子游戏设计与实现 摘 要 社会在进步&#xff0c;人们生活质量也在日益提高。高强度的压力也接踵而来。社会中急需出现新的有效方式来缓解人们的压力。…

Centos7离线安装RabbitMQ教程

目录 安装包准备开始安装1. 创建目录2. 上传文件3. 安装erlang语言4. 安装socat5. 安装rabbitmq6. 启动、停止rabbitmq7. 设置开机启动8. 开启web界面管理工具9. 开启防火墙(root)10. 访问页面11. 附录 安装包准备 &#xff08;1&#xff09;准备RabbitMQ的安装包&#xff08;…

IT革命浪潮:技术革新如何改变我们的生活与工作

一、技术革新与行业应用 当前的IT行业正处于前所未有的技术革新阶段。其中&#xff0c;量子计算和虚拟现实是两项引人注目的技术。 量子计算&#xff1a;量子计算以其超越传统计算的潜力&#xff0c;正在逐步从理论走向实践。在材料科学、药物研发和气候模型等复杂计算领域&a…

docker -JDK8安装

文章目录 前言docker -JDK8安装1. 新建一个 Docker 容器2. 在容器中安装和配置 JDK 8 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实…

spring cloud gateway一些相关概念

在云架构中运行着众多客户端和服务端&#xff0c;API网关的存在提供了保护和路由消息&#xff0c;隐藏服务&#xff0c;限制负载等等功能。下图是spring cloud gateway所处的位置。 它有三大概念&#xff1a; 路由&#xff1a;路由是构建网关的基本模块&#xff0c;它由ID&…

worklist配置调试日志记录

工作记录用,不拘小节&#xff01; 设备请求日志 2024-05-23 09:03:14,503 [WorkListServer: 10.87.232.253 [18]] INFO - LISTMWL Request from [gehc]: (0008,0005) CS [ISO_IR 100] # 10 Specific Character Set 1-N (0008,0020) DA [] …

如何搭建一个vue项目(完整步骤)

搭建一个新的vue项目 一、安装node环境二、搭建vue项目环境1、全局安装vue-cli2、进入你的项目目录&#xff0c;创建一个基于 webpack 模板的新项目3、进入项目&#xff1a;cd vue-demo&#xff0c;安装依赖4、npm run dev&#xff0c;启动项目 三、vue项目目录讲解四、开始我们…

go 爬虫之 colly 简单示例

1. 背景 colly 是 Go 实现的比较有名的一款爬虫框架&#xff0c;而且 Go 在高并发和分布式场景的优势也正是爬虫技术所需要的。它的主要特点是轻量、快速&#xff0c;设计非常优雅&#xff0c;并且分布式的支持也非常简单&#xff0c;易于扩展。 2. 官方文档 https://go-col…

RPC原理技术

RPC原理技术 背景介绍起源组件实现工作原理 背景 本文内容大多基于网上其他参考文章及资料整理后所得&#xff0c;并非原创&#xff0c;目的是为了需要时方便查看。 介绍 RPC&#xff0c;Remote Procedure Call&#xff0c;远程过程调用&#xff0c;允许像调用本地方法一样调…

Linux DAY 6 _systemctl

systemctl命令&#xff0c;通过这个命令控制系统操作 语法&#xff1a;systemctl start | stop | status | enable | disable 服务名 start 启动 stop 关闭 status 查看状态 enable 开启开机自启 disable 关闭开机自启 服务名&#xff1a; NetworkManager 主网络服务 net…

源网络地址转换SNAT

左上角的是访问互联网发送的数据包&#xff0c;第一个是访问&#xff0c;第二个是网页传回来的 3、4项是源端口号和目的端口号&#xff08;3是随机的&#xff08;1024-65535&#xff09;&#xff0c;那个是http的网页服务端口就是80&#xff09; 那么往回传数据的时候源和目的…

DFE_offset失调校准

1.校准原因 *制造工艺的限制&#xff1a;晶体管在制造过程中&#xff0c;由于工艺的限制&#xff0c;不可能做到完全对称&#xff0c;这导致了输入级晶体管的性能存在微小的差异。 *输入级偏置电流的不对称&#xff1a;输入级晶体管的偏置电流也会存在差异&#xff0c;这也会…

H4vdo 台湾APT-27视频投放工具

地址:https://github.com/MartinxMax/H4vdo 视频 关于 H4vdo RTMP lock 屏播放视频工具&#xff0c;可以向目标发送有效载荷&#xff0c;播放目标的屏幕内容。目标无法曹作计算机 使用方法 安装依赖 根据你的操作系统选择一个安装程序 RTMP 服务端 ./rtsp-simple-server.…

npm run dev启动element-ui,提示node_modules中webpack的版本跟package.json中webpack的版本不一致

问题一&#xff1a;修改node_modules/webpack/package.json版本为4.14.0&#xff0c;npm run dev时版本号又自动更改为 4.47.0 问题二&#xff1a;使用yarn 安装依赖&#xff0c;webpack的版本默认是4.47.0&#xff0c;为什么 求大佬们帮我解答一下以上两个问题 左侧是node_m…

数据中心大型AI模型网络需求

数据中心大型AI模型网络需求 随着Transformer的崛起和2023年ChatGPT的大规模应用&#xff0c;业界逐渐形成共识&#xff1a;遵循一定的规模效应原则&#xff0c;增加模型参数量能够显著提升模型性能。特别是在参数数量级跃升至数百亿乃至更高时&#xff0c;大型AI模型在语言理…

知识分享|非凸问题求解方法及代码示例【分类迭代】【大M法】

主要内容 之前发布了非线性问题线性化的几种方法&#xff0c;如知识分享|分段函数线性化及matlab测试&#xff0c;学习园地 | yalmip实用操作-线性化&#xff0c;非线性优化 | 非线性问题matlabyalmip求解案例&#xff0c;但是在实际建模及编程过程中&#xff0c;会遇到各种…