update anymal

This commit is contained in:
Brian Delhaisse
2019-07-31 03:05:22 +02:00
parent e81926cadc
commit 9dde9f9d0f
15 changed files with 618251 additions and 3 deletions
+28 -3
View File
@@ -28,6 +28,9 @@ class ANYmal(QuadrupedRobot):
- [2] "Learning agile and dynamic motor skills for legged robots", Hwangbo et al., 2019
- [3] www.rsl.ethz.ch/robots-media/anymal.html
- [4] www.anybotics.com/anymal
- [5] raisimLib: https://github.com/leggedrobotics/raisimLib
- [6] raisimOgre - Visualizer for raisim: https://github.com/leggedrobotics/raisimOgre
- [7] raisimGym - RL examples using raisim: https://github.com/leggedrobotics/raisimGym
"""
def __init__(self, simulator, position=(0, 0, .6), orientation=(0, 0, 0, 1), fixed_base=False, scale=1.,
@@ -62,13 +65,34 @@ class ANYmal(QuadrupedRobot):
['LH_HIP', 'LH_THIGH', 'LH_SHANK'],
['RH_HIP', 'RH_THIGH', 'RH_SHANK']]]
self.feet = [self.get_link_ids(link) for link in ['LF_FOOT_MOUNT', 'RF_FOOT_MOUNT', 'LH_FOOT_MOUNT',
'RH_FOOT_MOUNT'] if link in self.link_names]
# self.feet = [self.get_link_ids(link) for link in ['LF_FOOT_MOUNT', 'RF_FOOT_MOUNT', 'LH_FOOT_MOUNT',
# 'RH_FOOT_MOUNT'] if link in self.link_names]
self.feet = [self.get_link_ids(link) for link in ['LF_FOOT', 'RF_FOOT', 'LH_FOOT', 'RH_FOOT']
if link in self.link_names]
# taken from "Learning agile and dynamic motor skills for legged robots", Hwangbo et al., 2019
self.kp = 50. * np.ones(12)
self.kd = 0.1 * np.ones(12)
# taken from "raisimGym/raisim_gym/env/env/ANYmal/Environment.hpp"
self.kp = 40. * np.ones(12)
self.kd = 1. * np.ones(12)
# init configuration
self.reset_joint_states(q=[0.03, 0.4, -0.8, -0.03, 0.4, -0.8, 0.03, -0.4, 0.8, -0.03, -0.4, 0.8])
# some values are taken from "raisimGym/raisim_gym/env/env/ANYmal/Environment.hpp"
self.base_height = 0.54
self.avg_height = 0.44
def get_home_joint_positions(self):
"""Return the joint positions for the home position."""
return np.array([0.03, 0.4, -0.8, -0.03, 0.4, -0.8, 0.03, -0.4, 0.8, -0.03, -0.4, 0.8])
def get_joint_configurations(self, name=None):
if name == 'home' or name == 'init':
return np.array([0.03, 0.4, -0.8, -0.03, 0.4, -0.8, 0.03, -0.4, 0.8, -0.03, -0.4, 0.8])
# Test
if __name__ == "__main__":
@@ -87,11 +111,12 @@ if __name__ == "__main__":
# print information about the robot
robot.print_info()
print("BASE HEIGHT: {}".format(robot.base_height))
# Position control using sliders
# robot.add_joint_slider(robot.left_front_leg)
# run simulator
for _ in count():
# robot.update_joint_slider()
print("BASE HEIGHT: {}".format(robot.get_base_position()[2]))
world.step(sleep_dt=1./240)
+29
View File
@@ -0,0 +1,29 @@
Copyright 2019, ANYbotics AG.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+606
View File
@@ -0,0 +1,606 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- =================================================================================== -->
<!-- Copyright 2019 ANYbotics, https://www.anybotics.com -->
<!-- =================================================================================== -->
<!-- This file contains the description of the ANYmal B robot. -->
<!-- <?xml version="1.0" ?> -->
<robot name="anymal">
<!--
Material colors
-->
<!-- Basic colors -->
<material name="black">
<color rgba="0.0 0.0 0.0 1.0"/>
</material>
<material name="blue">
<color rgba="0.0 0.0 0.8 1.0"/>
</material>
<material name="green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>
<material name="grey">
<color rgba="0.2 0.2 0.2 1.0"/>
</material>
<material name="light_grey">
<color rgba="0.4 0.4 0.4 1.0"/>
</material>
<material name="red">
<color rgba="0.8 0.0 0.0 1.0"/>
</material>
<material name="white">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
<!-- Material for the visual primitives -->
<material name="anymal_material">
<!-- <color rgba="0.7 0.7 0.7 1.0"/> -->
<color rgba="0.1 0.1 0.1 1.0"/>
</material>
<!--
Base
-->
<!-- KDL cannot have inertia on the base link so you might add a dummy inertia link -->
<!-- Base link -->
<link name="base">
<inertial>
<origin rpy="0 0 0" xyz="-0.001960558279 -0.001413217745 0.050207125344"/>
<mass value="16.793507758"/>
<inertia ixx="0.217391101503" ixy="-0.00132873239126" ixz="-0.00228200226173" iyy="0.639432546734" iyz="-0.00138078263145" izz="0.62414077654"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_base.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<!-- Main Body -->
<collision>
<origin rpy="0 0 0" xyz="0 0 0.08"/>
<geometry>
<box size="0.531 0.27 0.24"/>
</geometry>
</collision>
</link>
<!--
Left-Fore leg
-->
<!-- high link -->
<link name="LF_HIP">
<visual>
<origin rpy="0 0 0.0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_hip_l.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="0.064516258147 -0.003787101702 -0.000152184388"/>
<mass value="1.42462064"/>
<inertia ixx="0.00243023349564" ixy="-1.53023971e-05" ixz="-2.1819095354e-05" iyy="0.00230257239103" iyz="2.6473021273e-05" izz="0.0019806759227"/>
</inertial>
</link>
<!-- Hip joint -->
<joint name="LF_HAA" type="revolute">
<parent link="base"/>
<child link="LF_HIP"/>
<origin xyz="0.277 0.116 0.0"/>
<axis xyz="1 0 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Thigh link -->
<link name="LF_THIGH">
<visual>
<origin rpy="0 0 0.0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_thigh_l.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<collision>
<!-- KFE actuator -->
<origin rpy="1.57079632679 0 0" xyz="0.0 0.07205 -0.25"/>
<geometry>
<cylinder length="0.11" radius="0.06"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.003897968082 0.054226618537 -0.214583373795"/>
<mass value="1.634976467"/>
<inertia ixx="0.0120367944369" ixy="6.762065206e-05" ixz="0.000287806340448" iyy="0.0120643637939" iyz="-0.00140610131218" izz="0.00249422574881"/>
</inertial>
</link>
<!-- Thigh joint -->
<joint name="LF_HFE" type="revolute">
<parent link="LF_HIP"/>
<child link="LF_THIGH"/>
<origin xyz="0.0635 0.041 0.0"/>
<axis xyz="0 1 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Shank link -->
<link name="LF_SHANK">
<visual>
<origin rpy="0 0 0.0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_shank_l.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="0.030816858139 -0.004617229294 0.000893125713"/>
<mass value="0.207204302"/>
<inertia ixx="0.0002104880248" ixy="-5.6750980345e-05" ixz="1.0127699391e-05" iyy="0.000676270210023" iyz="-8.22869024e-07" izz="0.000545032674924"/>
</inertial>
</link>
<!-- Shank joint -->
<joint name="LF_KFE" type="revolute">
<parent link="LF_THIGH"/>
<child link="LF_SHANK"/>
<origin xyz="0.0 0.109 -0.25"/>
<axis xyz="0 1 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Shank to Adapter joint -->
<joint name="LF_SHANK_TO_ADAPTER" type="fixed">
<parent link="LF_SHANK"/>
<child link="LF_ADAPTER"/>
<origin rpy="0.0 0.0 0.0" xyz="0.1 -0.02 0.0"/>
</joint>
<!-- Adapter link -->
<link name="LF_ADAPTER">
<visual>
<origin rpy="0 0 0.0" xyz="0 0 0.032"/>
<geometry>
<mesh filename="meshes/anymal_foot.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 -0.160625"/>
<geometry>
<cylinder length="0.22125" radius="0.015"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-8.66e-10 -1.472e-09 -0.244345749188"/>
<mass value="0.140170767"/>
<inertia ixx="0.00159938741862" ixy="-9.32e-13" ixz="1.039e-11" iyy="0.00159938741932" iyz="1.7563e-11" izz="5.4423177329e-05"/>
</inertial>
</link>
<!-- Adapter to Foot joint -->
<joint name="LF_ADAPTER_TO_FOOT" type="fixed">
<parent link="LF_ADAPTER"/>
<child link="LF_FOOT"/>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.32125"/>
</joint>
<!-- Foot link -->
<link name="LF_FOOT">
<inertial>
<mass value="0.001"/>
<inertia ixx="4.90e-07" ixy="0.0" ixz="0.0" iyy="4.90e-07" iyz="0.0" izz="4.90e-07"/> <!-- for a sphere: 2/5 m * r**2 -->
</inertial>
<collision>
<origin xyz="0 0 0.02325"/>
<geometry>
<sphere radius="0.035"/>
</geometry>
</collision>
</link>
<!--
Right-Fore leg
-->
<!-- Hip link -->
<link name="RF_HIP">
<visual>
<origin rpy="0 0 0.0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_hip_r.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="0.064516258147 0.003787101702 -0.000152184388"/>
<mass value="1.42462064"/>
<inertia ixx="0.00243023349564" ixy="1.53023971e-05" ixz="-2.1819095354e-05" iyy="0.00230257239103" iyz="-2.6473021273e-05" izz="0.0019806759227"/>
</inertial>
</link>
<!-- Hip joint -->
<joint name="RF_HAA" type="revolute">
<parent link="base"/>
<child link="RF_HIP"/>
<origin xyz="0.277 -0.116 0.0"/>
<axis xyz="1 0 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Thigh link -->
<link name="RF_THIGH">
<visual>
<origin rpy="0 0 0.0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_thigh_r.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<collision>
<!-- KFE actuator -->
<origin rpy="1.57079632679 0 0" xyz="0.0 -0.07205 -0.25"/>
<geometry>
<cylinder length="0.11" radius="0.06"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.003897968082 -0.054226618537 -0.214583373795"/>
<mass value="1.634976467"/>
<inertia ixx="0.0120367944369" ixy="-6.762065206e-05" ixz="0.000287806340448" iyy="0.0120643637939" iyz="0.00140610131218" izz="0.00249422574881"/>
</inertial>
</link>
<!-- Thigh joint -->
<joint name="RF_HFE" type="revolute">
<parent link="RF_HIP"/>
<child link="RF_THIGH"/>
<origin xyz="0.0635 -0.041 0.0"/>
<axis xyz="0 1 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Shank link -->
<link name="RF_SHANK">
<visual>
<origin rpy="0 0 0.0" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_shank_r.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="0.030816858139 0.004617229294 0.000893125713"/>
<mass value="0.207204302"/>
<inertia ixx="0.0002104880248" ixy="5.6750980345e-05" ixz="1.0127699391e-05" iyy="0.000676270210023" iyz="8.22869024e-07" izz="0.000545032674924"/>
</inertial>
</link>
<!-- Shank joint -->
<joint name="RF_KFE" type="revolute">
<parent link="RF_THIGH"/>
<child link="RF_SHANK"/>
<origin xyz="0.0 -0.109 -0.25"/>
<axis xyz="0 1 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Shank to Adapter joint -->
<joint name="RF_SHANK_TO_ADAPTER" type="fixed">
<parent link="RF_SHANK"/>
<child link="RF_ADAPTER"/>
<origin rpy="-0.0 0.0 -0.0" xyz="0.1 0.02 0.0"/>
</joint>
<!-- Adapter link -->
<link name="RF_ADAPTER">
<visual>
<origin rpy="0 0 0.0" xyz="0 0 0.032"/>
<geometry>
<mesh filename="meshes/anymal_foot.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 -0.160625"/>
<geometry>
<cylinder length="0.22125" radius="0.015"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-8.66e-10 -1.472e-09 -0.244345749188"/>
<mass value="0.140170767"/>
<inertia ixx="0.00159938741862" ixy="-9.32e-13" ixz="1.039e-11" iyy="0.00159938741932" iyz="1.7563e-11" izz="5.4423177329e-05"/>
</inertial>
</link>
<!-- Adapter to Foot joint -->
<joint name="RF_ADAPTER_TO_FOOT" type="fixed">
<parent link="RF_ADAPTER"/>
<child link="RF_FOOT"/>
<origin rpy="-0.0 0.0 -0.0" xyz="0.0 -0.0 -0.32125"/>
</joint>
<!-- Foot link -->
<link name="RF_FOOT">
<inertial>
<mass value="0.001"/>
<inertia ixx="4.90e-07" ixy="0.0" ixz="0.0" iyy="4.90e-07" iyz="0.0" izz="4.90e-07"/> <!-- for a sphere: 2/5 m * r**2 -->
</inertial>
<collision>
<origin xyz="0 0 0.02325"/>
<geometry>
<sphere radius="0.035"/>
</geometry>
</collision>
</link>
<!--
Left-Hind leg
-->
<!-- Hip link -->
<link name="LH_HIP">
<visual>
<origin rpy="0 0 -3.14159265359" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_hip_r.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="-0.064516258147 -0.003787101702 -0.000152184388"/>
<mass value="1.42462064"/>
<inertia ixx="0.00243023349564" ixy="1.53023971e-05" ixz="2.1819095354e-05" iyy="0.00230257239103" iyz="2.6473021273e-05" izz="0.0019806759227"/>
</inertial>
</link>
<!-- Hip joint -->
<joint name="LH_HAA" type="revolute">
<parent link="base"/>
<child link="LH_HIP"/>
<origin xyz="-0.277 0.116 0.0"/>
<axis xyz="1 0 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Thigh link -->
<link name="LH_THIGH">
<visual>
<origin rpy="0 0 -3.14159265359" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_thigh_r.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<collision>
<!-- KFE actuator -->
<origin rpy="1.57079632679 0 0" xyz="0.0 0.07205 -0.25"/>
<geometry>
<cylinder length="0.11" radius="0.06"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.003897968082 0.054226618537 -0.214583373795"/>
<mass value="1.634976467"/>
<inertia ixx="0.0120367944369" ixy="-6.762065206e-05" ixz="-0.000287806340448" iyy="0.0120643637939" iyz="-0.00140610131218" izz="0.00249422574881"/>
</inertial>
</link>
<!-- Thigh joint -->
<joint name="LH_HFE" type="revolute">
<parent link="LH_HIP"/>
<child link="LH_THIGH"/>
<origin xyz="-0.0635 0.041 0.0"/>
<axis xyz="0 1 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Shank link -->
<link name="LH_SHANK">
<visual>
<origin rpy="0 0 -3.14159265359" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_shank_r.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="-0.030816858139 -0.004617229294 0.000893125713"/>
<mass value="0.207204302"/>
<inertia ixx="0.0002104880248" ixy="5.6750980345e-05" ixz="-1.0127699391e-05" iyy="0.000676270210023" iyz="-8.22869024e-07" izz="0.000545032674924"/>
</inertial>
</link>
<!-- Shank joint -->
<joint name="LH_KFE" type="revolute">
<parent link="LH_THIGH"/>
<child link="LH_SHANK"/>
<origin xyz="-0.0 0.109 -0.25"/>
<axis xyz="0 1 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Shank to Adapter joint -->
<joint name="LH_SHANK_TO_ADAPTER" type="fixed">
<parent link="LH_SHANK"/>
<child link="LH_ADAPTER"/>
<origin rpy="0.0 -0.0 -0.0" xyz="-0.1 -0.02 0.0"/>
</joint>
<!-- Adapter link -->
<link name="LH_ADAPTER">
<visual>
<origin rpy="0 0 -3.14159265359" xyz="0 0 0.032"/>
<geometry>
<mesh filename="meshes/anymal_foot.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 -0.160625"/>
<geometry>
<cylinder length="0.22125" radius="0.015"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-8.66e-10 -1.472e-09 -0.244345749188"/>
<mass value="0.140170767"/>
<inertia ixx="0.00159938741862" ixy="-9.32e-13" ixz="1.039e-11" iyy="0.00159938741932" iyz="1.7563e-11" izz="5.4423177329e-05"/>
</inertial>
</link>
<!-- Adapter to Foot joint -->
<joint name="LH_ADAPTER_TO_FOOT" type="fixed">
<parent link="LH_ADAPTER"/>
<child link="LH_FOOT"/>
<origin rpy="0.0 -0.0 -0.0" xyz="-0.0 0.0 -0.32125"/>
</joint>
<!-- Foot link -->
<link name="LH_FOOT">
<inertial>
<mass value="0.001"/>
<inertia ixx="4.90e-07" ixy="0.0" ixz="0.0" iyy="4.90e-07" iyz="0.0" izz="4.90e-07"/> <!-- for a sphere: 2/5 m * r**2 -->
</inertial>
<collision>
<origin xyz="0 0 0.02325"/>
<geometry>
<sphere radius="0.035"/>
</geometry>
</collision>
</link>
<!--
Right-Hind leg
-->
<!-- Hip link -->
<link name="RH_HIP">
<visual>
<origin rpy="0 0 -3.14159265359" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_hip_l.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="-0.064516258147 0.003787101702 -0.000152184388"/>
<mass value="1.42462064"/>
<inertia ixx="0.00243023349564" ixy="-1.53023971e-05" ixz="2.1819095354e-05" iyy="0.00230257239103" iyz="-2.6473021273e-05" izz="0.0019806759227"/>
</inertial>
</link>
<!-- Hip joint -->
<joint name="RH_HAA" type="revolute">
<parent link="base"/>
<child link="RH_HIP"/>
<origin xyz="-0.277 -0.116 0.0"/>
<axis xyz="1 0 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Thigh link -->
<link name="RH_THIGH">
<visual>
<origin rpy="0 0 -3.14159265359" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_thigh_l.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<collision>
<!-- KFE actuator -->
<origin rpy="1.57079632679 0 0" xyz="0.0 -0.07205 -0.25"/>
<geometry>
<cylinder length="0.11" radius="0.06"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.003897968082 -0.054226618537 -0.214583373795"/>
<mass value="1.634976467"/>
<inertia ixx="0.0120367944369" ixy="6.762065206e-05" ixz="-0.000287806340448" iyy="0.0120643637939" iyz="0.00140610131218" izz="0.00249422574881"/>
</inertial>
</link>
<!-- Thigh joint -->
<joint name="RH_HFE" type="revolute">
<parent link="RH_HIP"/>
<child link="RH_THIGH"/>
<origin xyz="-0.0635 -0.041 0.0"/>
<axis xyz="0 1 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Shank link -->
<link name="RH_SHANK">
<visual>
<origin rpy="0 0 -3.14159265359" xyz="0 0 0"/>
<geometry>
<mesh filename="meshes/anymal_shank_l.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="-0.030816858139 0.004617229294 0.000893125713"/>
<mass value="0.207204302"/>
<inertia ixx="0.0002104880248" ixy="-5.6750980345e-05" ixz="-1.0127699391e-05" iyy="0.000676270210023" iyz="8.22869024e-07" izz="0.000545032674924"/>
</inertial>
</link>
<!-- Shank joint -->
<joint name="RH_KFE" type="revolute">
<parent link="RH_THIGH"/>
<child link="RH_SHANK"/>
<origin xyz="-0.0 -0.109 -0.25"/>
<axis xyz="0 1 0"/>
<limit effort="80" lower="-6.28" upper="6.28" velocity="15"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<!-- Shank to Adapter joint -->
<joint name="RH_SHANK_TO_ADAPTER" type="fixed">
<parent link="RH_SHANK"/>
<child link="RH_ADAPTER"/>
<origin rpy="-0.0 -0.0 0.0" xyz="-0.1 0.02 0.0"/>
</joint>
<!-- Adapter link -->
<link name="RH_ADAPTER">
<visual>
<origin rpy="0 0 -3.14159265359" xyz="0 0 0.032"/>
<geometry>
<mesh filename="meshes/anymal_foot.obj" scale="0.001 0.001 0.001"/>
</geometry>
<material name="anymal_material"/>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 -0.160625"/>
<geometry>
<cylinder length="0.22125" radius="0.015"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-8.66e-10 -1.472e-09 -0.244345749188"/>
<mass value="0.140170767"/>
<inertia ixx="0.00159938741862" ixy="-9.32e-13" ixz="1.039e-11" iyy="0.00159938741932" iyz="1.7563e-11" izz="5.4423177329e-05"/>
</inertial>
</link>
<!-- Adapter to Foot joint -->
<joint name="RH_ADAPTER_TO_FOOT" type="fixed">
<parent link="RH_ADAPTER"/>
<child link="RH_FOOT"/>
<origin rpy="-0.0 -0.0 0.0" xyz="-0.0 -0.0 -0.32125"/>
</joint>
<!-- Foot link -->
<link name="RH_FOOT">
<inertial>
<mass value="0.001"/>
<inertia ixx="4.90e-07" ixy="0.0" ixz="0.0" iyy="4.90e-07" iyz="0.0" izz="4.90e-07"/> <!-- for a sphere: 2/5 m * r**2 -->
</inertial>
<collision>
<origin xyz="0 0 0.02325"/>
<geometry>
<sphere radius="0.035"/>
</geometry>
</collision>
</link>
</robot>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,14 @@
#
# Wavefront material file
# Converted by Meshlab Group
#
newmtl material_0
Ka 0.200000 0.200000 0.200000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
Tr 1.000000
illum 2
Ns 0.000000
map_Kd base_uv_texture.png
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,14 @@
#
# Wavefront material file
# Converted by Meshlab Group
#
newmtl material_0
Ka 0.200000 0.200000 0.200000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
Tr 1.000000
illum 2
Ns 0.000000
map_Kd carbon_uv_texture.png
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB