<mujoco model="aubo">
    <!-- Robot Type: Aubo i5. -->
    <actuator>
        <!-- Physical limits of the actuator. -->
        <!-- Values taken from http://aubo-robotics.cn/Content/415656.html -->
        <motor name="torq_shoulder" ctrllimited="true" ctrlrange="-150.0 150.0" joint="shoulder_joint" group="0"/>
        <motor name="torq_upperArm" ctrllimited="true" ctrlrange="-150.0 150.0" joint="upperArm_joint" group="0"/>
        <motor name="torq_foreArm" ctrllimited="true" ctrlrange="-150.0 150.0" joint="foreArm_joint" group="0"/>
        <motor name="torq_wrist1" ctrllimited="true" ctrlrange="-28.0 28.0" joint="wrist1_joint" group="0"/>
        <motor name="torq_wrist2" ctrllimited="true" ctrlrange="-28.0 28.0" joint="wrist2_joint" group="0"/>
        <motor name="torq_wrist3" ctrllimited="true" ctrlrange="-28.0 28.0" joint="wrist3_joint" group="0"/>
    </actuator>

    <asset>
        <mesh name="base_Link_vis" file="meshes/base_Link_vis.stl"/>
        <mesh name="shoulder_Link_vis" file="meshes/shoulder_Link_vis.stl"/>
        <mesh name="upperArm_Link_vis" file="meshes/upperArm_Link_vis.stl"/>
        <mesh name="foreArm_Link_vis" file="meshes/foreArm_Link_vis.stl"/>
        <mesh name="wrist1_Link_vis" file="meshes/wrist1_Link._vis.stl"/>
        <mesh name="wrist2_Link_vis" file="meshes/wrist2_Link_vis.stl"/>
        <mesh name="wrist3_Link_vis" file="meshes/wrist3_Link_vis.stl"/>
        <mesh name="base_Link" file="meshes/base_Link.STL"/>
        <mesh name="shoulder_Link" file="meshes/shoulder_Link.STL"/>
        <mesh name="upperArm_Link" file="meshes/upperArm_Link.STL"/>
        <mesh name="foreArm_Link" file="meshes/foreArm_Link.STL"/>
        <mesh name="wrist1_Link" file="meshes/wrist1_Link.STL"/>
        <mesh name="wrist2_Link" file="meshes/wrist2_Link.STL"/>
        <mesh name="wrist3_Link" file="meshes/wrist3_Link.STL"/>
    </asset>

    <worldbody>
        <body name="base" pos="0 0 0" quat="1 0 0 0">
            <!-- This sites was added for visualization. -->
            <site name="base_origin" pos="0 0 0" size="0.01 0.01 0.01" rgba="1 1 0 1" type="sphere" group="1"/>
            <site name="base_x" pos="0 0 0" size="0.004 0.25" quat="0.707105 0 0.707108 0" rgba="1 0 0 1" type="cylinder" group="1"/>
            <site name="base_y" pos="0 0 0" size="0.004 0.25" quat="0.707105 0.707108 0 0" rgba="0 1 0 1" type="cylinder" group="1"/>
            <site name="base_z" pos="0 0 0" size="0.004 0.25" quat="0.707105 0 0 0.707108" rgba="0 0 1 1" type="cylinder" group="1"/>
            <!-- robot view -->
            <camera name="robot_view" mode="fixed" pos="0.6 0 1" quat="0.653000 0.271000 0.271000 0.653000"/>
            <inertial pos="0 0 0" quat="1 0 0 0" diaginertia="0.01 0.01 0.01" mass="3"/>
            <!-- mount attached here -->
            <geom type="mesh" contype="0" conaffinity="0" group="2" rgba="1 1 1 1" mesh="base_Link_vis" name="base_visual"/>
            <geom type="mesh" contype="0" group="0" rgba="1 1 1 1" mesh="base_Link" name="base_collision"/>
            <body name="shoulder_Link" pos="0 0 0.122" quat="-3.67321e-06 0 0 1">
                <inertial pos="3.25089e-07 0.00534955 -0.00883689" quat="0.99587 -0.0907855 0 0" mass="1.57658" diaginertia="0.00406404 0.00395808 0.00305754" />
                <joint name="shoulder_joint" pos="0 0 0" axis="0 0 1" limited="true" range="-3.05 3.05" group="1" damping="50"/>
                <geom type="mesh" contype="0" conaffinity="0" group="2" rgba="1 1 1 1" mesh="shoulder_Link_vis" name="shoulder_visual"/>
                <geom type="mesh" contype="0" group="0" rgba="1 1 1 1" mesh="shoulder_Link" name="shoulder_collision"/>
                <body name="upperArm_Link" pos="0 0.1215 0" quat="0.499998 -0.5 -0.5 -0.500002">
                    <inertial pos="0.203997 2.01305e-10 0.0127642" quat="0.5 0.5 0.5 0.5" mass="4.04176" diaginertia="0.144994 0.142607 0.00965399" />
                    <joint name="upperArm_joint" pos="0 0 0" axis="0 0 1" limited="true" range="-3.05 3.05" group="1" damping="50"/>
                    <geom type="mesh" contype="0" conaffinity="0" group="2" rgba="1 1 1 1" mesh="upperArm_Link_vis" name="upperArm_visual"/>
                    <geom type="mesh" contype="0" group="0" rgba="1 1 1 1" mesh="upperArm_Link" name="upperArm_collision"/>
                    <body name="foreArm_Link" pos="0.408 0 0" quat="-3.67321e-06 -1 0 0">
                        <inertial pos="0.188922 6.78882e-07 0.0981027" quat="0.504333 0.495629 0.495629 0.504333" mass="2.27146" diaginertia="0.0443926 0.0441401 0.00213049" />
                        <joint name="foreArm_joint" pos="0 0 0" axis="0 0 1" limited="true" range="-3.05 3.05" group="1" damping="50"/>
                        <geom type="mesh" contype="0" conaffinity="0" group="2" rgba="1 1 1 1" mesh="foreArm_Link_vis" name="foreArm_visual"/>
                        <geom type="mesh" contype="0" group="0" rgba="1 1 1 1" mesh="foreArm_Link" name="foreArm_collision"/>
                        <body name="wrist1_Link" pos="0.376 0 0" quat="-2.59734e-06 0.707105 0.707108 -2.59735e-06">
                            <inertial pos="7.54205e-07 0.00624813 -0.00392367" quat="0.677608 0.735423 0 0" mass="0.500478" diaginertia="0.000711946 0.000687466 0.000403991" />
                            <joint name="wrist1_joint" pos="0 0 0" axis="0 0 1" limited="true" range="-3.05 3.05" group="1" damping="50"/>
                            <geom type="mesh" contype="0" conaffinity="0" group="2" rgba="1 1 1 1" mesh="wrist1_Link_vis" name="wrist1_visual"/>
                            <geom type="mesh" contype="0" group="0" rgba="1 1 1 1" mesh="wrist1_Link" name="wrist1_collision"/>
                            <body name="wrist2_Link" pos="0 0.1025 0" quat="0.707105 -0.707108 0 0">
                                <inertial pos="-7.54208e-07 -0.00624813 -0.00392367" quat="0.735423 0.677608 0 0" mass="0.500478" diaginertia="0.000711946 0.000687466 0.000403991" />
                                <joint name="wrist2_joint" pos="0 0 0" axis="0 0 1" limited="true" range="-3.05 3.05" group="1" damping="50"/>
                                <geom type="mesh" contype="0" conaffinity="0" group="2" rgba="1 1 1 1" mesh="wrist2_Link_vis" name="wrist2_visual"/>
                                <geom type="mesh" contype="0" group="0" rgba="1 1 1 1" mesh="wrist2_Link" name="wrist2_collision"/>
                                <body name="wrist3_Link" pos="0 -0.094 0" quat="0.707105 0.707108 0 0">
                                    <inertial pos="3.92049e-10 0.000175788 -0.0213294" quat="0.5 0.5 -0.5 0.5" mass="0.15831" diaginertia="0.000108772 7.31376e-05 7.19528e-05" />
                                    <joint name="wrist3_joint" pos="0 0 0" axis="0 0 1" limited="true" range="-3.05 3.05" group="1" damping="50"/>
                                    <geom type="mesh" contype="0" conaffinity="0" group="2" rgba="1 1 1 1" mesh="wrist3_Link_vis" name="wrist3_visual"/>
                                    <geom type="mesh" contype="0" group="0" rgba="1 1 1 1" mesh="wrist3_Link" name="wrist3_collision"/>
                                    <body name="right_hand" pos="0 0 0" quat="1 0 0 0">
                                        <!-- This sites were added for visualization. They are all standardized between models -->
                                        <!-- Position mimics the end effector attachment point -->
                                        <!-- Y-axis should be perpendicular to grasping motion, and Z-axis should point out of the robot eef -->
                                        <site name="ee_origin" pos="0 0 0" size="0.01 0.01 0.01" rgba="1 1 0 1" type="sphere" group="1"/>
                                        <site name="ee_x" pos="0 0 0" size="0.004 0.08" quat="0.707105 0 0.707108 0" rgba="1 0 0 1" type="cylinder" group="1"/>
                                        <site name="ee_y" pos="0 0 0" size="0.004 0.08" quat="0.707105 0.707108 0 0" rgba="0 1 0 1" type="cylinder" group="1"/>
                                        <site name="ee_z" pos="0 0 0" size="0.004 0.08" quat="0.707105 0 0 0.707108" rgba="0 0 1 1" type="cylinder" group="1"/>
                                        <!-- This camera points out from the eef. -->
                                        <camera name="eye_in_hand" mode="fixed" pos="0.06 0 0" quat="0.383 -0.924 0 0" fovy="75"/>
                                        <!-- to add gripper -->
                                    </body>
                                </body>
                            </body>
                        </body>
                    </body>
                </body>
            </body>
        </body>
    </worldbody>
</mujoco>
