Refactors simulation an raspberry pi project

This commit is contained in:
Rune Harlyk
2024-03-04 22:27:43 +01:00
parent ebca54f2a0
commit 5449658df7
167 changed files with 771 additions and 6589 deletions
+6
View File
@@ -0,0 +1,6 @@
import os
def getDataPath():
resdir = os.path.join(os.path.dirname(__file__))
return resdir
+710
View File
@@ -0,0 +1,710 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- =================================================================================== -->
<!-- | This document was autogenerated by xacro from spot.urdf.xacro | -->
<!-- | EDITING THIS FILE BY HAND IS NOT RECOMMENDED | -->
<!-- =================================================================================== -->
<robot name="spot" xmlns:xacro="http://www.ros.org/wiki/xacro">
<material name="orange">
<color rgba="1.0 0.5 0.0 1"/>
</material>
<material name="black">
<color rgba="0.1 0.1 0.1 1"/>
</material>
<material name="grey">
<color rgba="0.6 0.6 0.6 1"/>
</material>
<!-- Left Leg: prefix is front or rear -->
<!-- <xacro:macro name="LeftLeg" params="prefix reflect">
<link name="${prefix}_Left_Leg">
<visual>
<geometry>
<box size="${leglen} 0.1 0.2"/>
</geometry>
<origin xyz="0 0 -${leglen/2}" rpy="0 ${pi/2} 0"/>
<material name="white"/>
</visual>
<collision>
<geometry>
<box size="${leglen} 0.1 0.2"/>
</geometry>
<origin xyz="0 0 -${leglen/2}" rpy="0 ${pi/2} 0"/>
</collision>
<xacro:default_inertial mass="10"/>
</link>
<joint name="base_to_${prefix}_leg" type="fixed">
<parent link="base_link"/>
<child link="${prefix}_leg"/>
<origin xyz="0 ${reflect*(width+.02)} 0.25" />
</joint>
</xacro:macro> -->
<!-- Robot description -->
<!-- STATIC Links -->
<link name="base_link">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/MAINBODY.stl" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 0"/>
<geometry>
<box size="0.114 0.2 0.1"/>
</geometry>
</collision>
<inertial>
<mass value="0.6"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.0025" ixy="0" ixz="0" iyx="0" iyy="0.0011498" iyz="0" izx="0" izy="0" izz="0.0026498"/>
</inertial>
</link>
<!-- m to mm -->
<link name="battery">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.15 0.035 -0.022"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/Battery.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 0"/>
<geometry>
<box size="0.048 0.145 0.026"/>
</geometry>
</collision>
<inertial>
<mass value="0.4"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000723366666667" ixy="0" ixz="0" iyx="0" iyy="9.93333333333e-05" iyz="0" izx="0" izy="0" izz="0.000777633333333"/>
</inertial>
</link>
<!-- m to mm -->
<link name="chassis_left">
<visual>
<origin rpy="0 1.57079632679 -1.57079632679" xyz="0.016 0.003 0"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/Chassis_Left_Side.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 1.57079632679 -1.57079632679" xyz="0 0 0"/>
<geometry>
<box size="0.06 0.15 0.006"/>
</geometry>
</collision>
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="1.878e-05" ixy="0" ixz="0" iyx="0" iyy="3.03e-06" iyz="0" izx="0" izy="0" izz="2.175e-05"/>
</inertial>
</link>
<!-- m to mm -->
<link name="chassis_right">
<visual>
<origin rpy="0 1.57079632679 1.57079632679" xyz="-0.016 -0.003 0"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/Chassis_Right_Side.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 1.57079632679 1.57079632679" xyz="0 0 0"/>
<geometry>
<box size="0.06 0.15 0.006"/>
</geometry>
</collision>
<inertial>
<mass value="0.01"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="1.878e-05" ixy="0" ixz="0" iyx="0" iyy="3.03e-06" iyz="0" izx="0" izy="0" izz="2.175e-05"/>
</inertial>
</link>
<!-- m to mm -->
<link name="front">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/Front.stl" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.16 0 0.006"/>
<geometry>
<box size="0.114 0.045 0.085"/>
</geometry>
</collision>
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="7.70833333333e-05" ixy="0" ixz="0" iyx="0" iyy="0.000168508333333" iyz="0" izx="0" izy="0" izz="0.000125175"/>
</inertial>
</link>
<!-- m to mm -->
<link name="back">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/Back.stl" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0 0.006"/>
<geometry>
<box size="0.114 0.075 0.085"/>
</geometry>
</collision>
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000107083333333" ixy="0" ixz="0" iyx="0" iyy="0.000168508333333" iyz="0" izx="0" izy="0" izz="0.000155175"/>
</inertial>
</link>
<!-- m to mm -->
<link name="front_bracket">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/Front_Bracket.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.1 0 0"/>
<geometry>
<box size="0.025 0.075 0.085"/>
</geometry>
</collision>
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000107083333333" ixy="0" ixz="0" iyx="0" iyy="6.54166666667e-05" iyz="0" izx="0" izy="0" izz="5.20833333333e-05"/>
</inertial>
</link>
<!-- m to mm -->
<link name="back_bracket">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/Back_Bracket.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.1 0 0"/>
<geometry>
<box size="0.025 0.075 0.085"/>
</geometry>
</collision>
<inertial>
<mass value="0.1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000107083333333" ixy="0" ixz="0" iyx="0" iyy="6.54166666667e-05" iyz="0" izx="0" izy="0" izz="5.20833333333e-05"/>
</inertial>
</link>
<!-- m to mm -->
<link name="front_left_hip">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.25 -0.0044 -0.067"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_HIP.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.015 0.01 -0.01"/>
<geometry>
<box size="0.05 0.065 0.065"/>
</geometry>
</collision>
<inertial>
<mass value="0.2"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000140833333333" ixy="0" ixz="0" iyx="0" iyy="0.000112083333333" iyz="0" izx="0" izy="0" izz="0.000112083333333"/>
</inertial>
</link>
<joint name="motor_front_left_hip" type="revolute">
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="0.0915 0.0394 0.022"/>
<parent link="front_bracket"/>
<child link="front_left_hip"/>
<limit effort="1000.0" lower="-1.04" upper="1.04" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="front_left_upper_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.252 -0.05 -0.055"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_UPPER_LEG.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0.02 -0.05"/>
<geometry>
<box size="0.035 0.035 0.11"/>
</geometry>
</collision>
<inertial>
<mass value="0.13"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000144354166667" ixy="0" ixz="0" iyx="0" iyy="0.000144354166667" iyz="0" izx="0" izy="0" izz="2.65416666667e-05"/>
</inertial>
</link>
<joint name="motor_front_left_upper_leg" type="revolute">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0.0015 0.045 -0.0087"/>
<parent link="front_left_hip"/>
<child link="front_left_upper_leg"/>
<limit effort="1000.0" lower="-1.57079632679" upper="2.59" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="front_left_lower_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.0535"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_LOWER_LEG.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 -0.06"/>
<geometry>
<box size="0.035 0.035 0.12"/>
</geometry>
</collision>
<inertial>
<mass value="0.05"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="6.51041666667e-05" ixy="0" ixz="0" iyx="0" iyy="6.51041666667e-05" iyz="0" izx="0" izy="0" izz="1.02083333333e-05"/>
</inertial>
</link>
<joint name="motor_front_left_lower_leg" type="revolute">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="-0.005 0.018 -0.109"/>
<parent link="front_left_upper_leg"/>
<child link="front_left_lower_leg"/>
<limit effort="1000.0" lower="-2.9" upper="1.57079632679" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="front_left_foot">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.18"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_FOOT.stl" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.18"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_FOOT.stl" scale="1 1 1"/>
</geometry>
<contact_coefficients mu="10.1"/>
</collision>
<inertial>
<mass value="0.005"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="3.52083333333e-06" ixy="0" ixz="0" iyx="0" iyy="2.80208333333e-06" iyz="0" izx="0" izy="0" izz="2.80208333333e-06"/>
</inertial>
</link>
<joint name="front_left_leg_foot" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.1265"/>
<parent link="front_left_lower_leg"/>
<child link="front_left_foot"/>
</joint>
<link name="back_left_hip">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.25 -0.0044 -0.067"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_HIP.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.015 0.01 -0.01"/>
<geometry>
<box size="0.05 0.065 0.065"/>
</geometry>
</collision>
<inertial>
<mass value="0.2"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000140833333333" ixy="0" ixz="0" iyx="0" iyy="0.000112083333333" iyz="0" izx="0" izy="0" izz="0.000112083333333"/>
</inertial>
</link>
<joint name="motor_back_left_hip" type="revolute">
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="-0.1365 0.0394 0.022"/>
<parent link="back_bracket"/>
<child link="back_left_hip"/>
<limit effort="1000.0" lower="-1.04" upper="1.04" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="back_left_upper_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.252 -0.05 -0.055"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_UPPER_LEG.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0.02 -0.05"/>
<geometry>
<box size="0.035 0.035 0.11"/>
</geometry>
</collision>
<inertial>
<mass value="0.13"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000144354166667" ixy="0" ixz="0" iyx="0" iyy="0.000144354166667" iyz="0" izx="0" izy="0" izz="2.65416666667e-05"/>
</inertial>
</link>
<joint name="motor_back_left_upper_leg" type="revolute">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0.0015 0.045 -0.0087"/>
<parent link="back_left_hip"/>
<child link="back_left_upper_leg"/>
<limit effort="1000.0" lower="-1.57079632679" upper="2.59" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="back_left_lower_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.0535"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_LOWER_LEG.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 -0.06"/>
<geometry>
<box size="0.035 0.035 0.12"/>
</geometry>
</collision>
<inertial>
<mass value="0.05"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="6.51041666667e-05" ixy="0" ixz="0" iyx="0" iyy="6.51041666667e-05" iyz="0" izx="0" izy="0" izz="1.02083333333e-05"/>
</inertial>
</link>
<joint name="motor_back_left_lower_leg" type="revolute">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="-0.005 0.018 -0.109"/>
<parent link="back_left_upper_leg"/>
<child link="back_left_lower_leg"/>
<limit effort="1000.0" lower="-2.9" upper="1.57079632679" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="back_left_foot">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.18"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_FOOT.stl" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.18"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/LEFT_FOOT.stl" scale="1 1 1"/>
</geometry>
<contact_coefficients mu="10.1"/>
</collision>
<inertial>
<mass value="0.005"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="3.52083333333e-06" ixy="0" ixz="0" iyx="0" iyy="2.80208333333e-06" iyz="0" izx="0" izy="0" izz="2.80208333333e-06"/>
</inertial>
</link>
<joint name="back_left_leg_foot" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.1265"/>
<parent link="back_left_lower_leg"/>
<child link="back_left_foot"/>
</joint>
<link name="front_right_hip">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.25 0.074 -0.067"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_HIP.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.015 -0.01 -0.01"/>
<geometry>
<box size="0.05 0.065 0.065"/>
</geometry>
</collision>
<inertial>
<mass value="0.2"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000140833333333" ixy="0" ixz="0" iyx="0" iyy="0.000112083333333" iyz="0" izx="0" izy="0" izz="0.000112083333333"/>
</inertial>
</link>
<joint name="motor_front_right_hip" type="revolute">
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="0.0915 -0.0394 0.022"/>
<parent link="front_bracket"/>
<child link="front_right_hip"/>
<limit effort="1000.0" lower="-1.04" upper="1.04" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="front_right_upper_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.252 0.12 -0.055"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_UPPER_LEG.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 -0.02 -0.05"/>
<geometry>
<box size="0.035 0.035 0.11"/>
</geometry>
</collision>
<inertial>
<mass value="0.13"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000144354166667" ixy="0" ixz="0" iyx="0" iyy="0.000144354166667" iyz="0" izx="0" izy="0" izz="2.65416666667e-05"/>
</inertial>
</link>
<joint name="motor_front_right_upper_leg" type="revolute">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0.0015 -0.045 -0.0087"/>
<parent link="front_right_hip"/>
<child link="front_right_upper_leg"/>
<limit effort="1000.0" lower="-1.57079632679" upper="2.59" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="front_right_lower_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.0535"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_LOWER_LEG.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 -0.06"/>
<geometry>
<box size="0.035 0.035 0.12"/>
</geometry>
</collision>
<inertial>
<mass value="0.05"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="6.51041666667e-05" ixy="0" ixz="0" iyx="0" iyy="6.51041666667e-05" iyz="0" izx="0" izy="0" izz="1.02083333333e-05"/>
</inertial>
</link>
<joint name="motor_front_right_lower_leg" type="revolute">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="-0.005 -0.018 -0.109"/>
<parent link="front_right_upper_leg"/>
<child link="front_right_lower_leg"/>
<limit effort="1000.0" lower="-2.9" upper="1.57079632679" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="front_right_foot">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.18"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_FOOT.stl" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.18"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_FOOT.stl" scale="1 1 1"/>
</geometry>
<contact_coefficients mu="10.1"/>
</collision>
<inertial>
<mass value="0.005"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="3.52083333333e-06" ixy="0" ixz="0" iyx="0" iyy="2.80208333333e-06" iyz="0" izx="0" izy="0" izz="2.80208333333e-06"/>
</inertial>
</link>
<joint name="front_right_leg_foot" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.1265"/>
<parent link="front_right_lower_leg"/>
<child link="front_right_foot"/>
</joint>
<link name="back_right_hip">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.25 0.074 -0.067"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_HIP.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.015 -0.01 -0.01"/>
<geometry>
<box size="0.05 0.065 0.065"/>
</geometry>
</collision>
<inertial>
<mass value="0.2"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000140833333333" ixy="0" ixz="0" iyx="0" iyy="0.000112083333333" iyz="0" izx="0" izy="0" izz="0.000112083333333"/>
</inertial>
</link>
<joint name="motor_back_right_hip" type="revolute">
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="-0.1365 -0.0394 0.022"/>
<parent link="back_bracket"/>
<child link="back_right_hip"/>
<limit effort="1000.0" lower="-1.04" upper="1.04" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="back_right_upper_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.252 0.12 -0.055"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_UPPER_LEG.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 -0.02 -0.05"/>
<geometry>
<box size="0.035 0.035 0.11"/>
</geometry>
</collision>
<inertial>
<mass value="0.13"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="0.000144354166667" ixy="0" ixz="0" iyx="0" iyy="0.000144354166667" iyz="0" izx="0" izy="0" izz="2.65416666667e-05"/>
</inertial>
</link>
<joint name="motor_back_right_upper_leg" type="revolute">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0.0015 -0.045 -0.0087"/>
<parent link="back_right_hip"/>
<child link="back_right_upper_leg"/>
<limit effort="1000.0" lower="-1.57079632679" upper="2.59" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="back_right_lower_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.0535"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_LOWER_LEG.stl" scale="1 1 1"/>
</geometry>
<material name="black"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 -0.06"/>
<geometry>
<box size="0.035 0.035 0.12"/>
</geometry>
</collision>
<inertial>
<mass value="0.05"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="6.51041666667e-05" ixy="0" ixz="0" iyx="0" iyy="6.51041666667e-05" iyz="0" izx="0" izy="0" izz="1.02083333333e-05"/>
</inertial>
</link>
<joint name="motor_back_right_lower_leg" type="revolute">
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="-0.005 -0.018 -0.109"/>
<parent link="back_right_upper_leg"/>
<child link="back_right_lower_leg"/>
<limit effort="1000.0" lower="-2.9" upper="1.57079632679" velocity="0.7"/>
<joint_properties damping="0.0" friction="0.0"/>
</joint>
<link name="back_right_foot">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.18"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_FOOT.stl" scale="1 1 1"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.18"/>
<geometry>
<mesh filename="package://mini_ros/stl/OpenQuadruped/RIGHT_FOOT.stl" scale="1 1 1"/>
</geometry>
<contact_coefficients mu="10.1"/>
</collision>
<inertial>
<mass value="0.005"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!-- Inertial Axes -->
<inertia ixx="3.52083333333e-06" ixy="0" ixz="0" iyx="0" iyy="2.80208333333e-06" iyz="0" izx="0" izy="0" izz="2.80208333333e-06"/>
</inertial>
</link>
<joint name="back_right_leg_foot" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.1265"/>
<parent link="back_right_lower_leg"/>
<child link="back_right_foot"/>
</joint>
<joint name="base_battery" type="fixed">
<origin rpy="0 0 0" xyz="-0.01 0 -0.0225"/>
<parent link="base_link"/>
<child link="battery"/>
</joint>
<joint name="base_left" type="fixed">
<origin rpy="0 0 0" xyz="0.00 0.052 0"/>
<parent link="base_link"/>
<child link="chassis_left"/>
</joint>
<joint name="base_right" type="fixed">
<origin rpy="0 0 0" xyz="0.00 -0.052 0"/>
<parent link="base_link"/>
<child link="chassis_right"/>
</joint>
<joint name="base_front" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="base_link"/>
<child link="front"/>
</joint>
<joint name="base_back" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="base_link"/>
<child link="back"/>
</joint>
<joint name="base_front_bracket" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="base_link"/>
<child link="front_bracket"/>
</joint>
<joint name="base_back_bracket" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="base_link"/>
<child link="back_bracket"/>
</joint>
</robot>
@@ -0,0 +1,3 @@
Spotmicro - robot dog (http://www.thingiverse.com/thing:3445283) by KDY0523 is licensed under the Creative Commons - Attribution license.
http://creativecommons.org/licenses/by/3.0/
@@ -0,0 +1,92 @@
.: :,
,:::::::: ::` ::: :::
,:::::::: ::` ::: :::
.,,:::,,, ::`.:, ... .. .:, .:. ..`... ..` .. .:, .. :: .::, .:,`
,:: ::::::: ::, ::::::: `:::::::.,:: ::: ::: .:::::: ::::: :::::: .::::::
,:: :::::::: ::, :::::::: ::::::::.,:: ::: ::: :::,:::, ::::: ::::::, ::::::::
,:: ::: ::: ::, ::: :::`::. :::.,:: ::,`::`::: ::: ::: `::,` ::: :::
,:: ::. ::: ::, ::` :::.:: ::.,:: :::::: ::::::::: ::` :::::: :::::::::
,:: ::. ::: ::, ::` :::.:: ::.,:: .::::: ::::::::: ::` :::::::::::::::
,:: ::. ::: ::, ::` ::: ::: `:::.,:: :::: :::` ,,, ::` .:: :::.::. ,,,
,:: ::. ::: ::, ::` ::: ::::::::.,:: :::: :::::::` ::` ::::::: :::::::.
,:: ::. ::: ::, ::` ::: :::::::`,:: ::. :::::` ::` :::::: :::::.
::, ,:: ``
::::::::
::::::
`,,`
http://www.thingiverse.com/thing:3445283
Spotmicro - robot dog by KDY0523 is licensed under the Creative Commons - Attribution license.
http://creativecommons.org/licenses/by/3.0/
# Summary
I designed Spotmicro inspired by the Spotmini of Boston Dynamics.
It works on the basis of the Arduino mega, and if you use a different board, you have to redesign the 'plate' file yourself and print the non-mega file instead of the regular file.
The ultra sonic sensor can be used for mapping or obstacle avoidance.
When you attach the servo horn to the 3D printed parts, you must use the HOTGLUE.
THERE IS NO CODE YET, SO YOU HAVE TO WRITE IT YOURSELF.
Assembly video part 1 : https://youtu.be/03RR-mz2hwA
Assembly video part 2 : https://youtu.be/LV5vvmhwtxM
Instagram : https://www.instagram.com/kim.d.yeon/
To make this, you need the following...
_Electronics_
12 × MG 996 R servo motor
1 × Arduino Mega
2 × HC-SR04 Ultrasonic sensor
1 × HC-06 Bluetooth module
1 × MPU-6050 Gyro sensor
1 × I2C 16x2 LCD Module
1 × Rleil rocker switch RL3-4
7.4v Battery
_Screws, Nuts and Bearings_
8 × 'M5×15'
40 × 'M4×20'
8 × 'M4×15'
48 × 'M4 nut'
4 × 'M3×20'
28 × 'M3×10'
16 × 'M3 nut'
8 × 'F625zz Flange ball bearing'
Made by Deok-yeon Kim
# Print Settings
Printer Brand: Creality
Printer: Ender 3
Infill: 10~20%
Filament_brand: .
Filament_color: Yellow, Black, Gray
Filament_material: PLA, Flexible
# Post-Printing
![Alt text](https://cdn.thingiverse.com/assets/5d/9f/90/dd/a9/complete_1.jpg)
![Alt text](https://cdn.thingiverse.com/assets/e0/6f/f7/86/7d/complete_4.jpg)
![Alt text](https://cdn.thingiverse.com/assets/3d/1a/c2/52/17/complete_front.jpg)
![Alt text](https://cdn.thingiverse.com/assets/fc/ee/68/ac/75/complete_back.jpg)
![Alt text](https://cdn.thingiverse.com/assets/67/d1/49/80/50/complete_top.jpg)
![Alt text](https://cdn.thingiverse.com/assets/13/bf/32/0e/d4/complete_bottom.jpg)
![Alt text](https://cdn.thingiverse.com/assets/93/fc/7f/81/17/frame_3.jpg)
![Alt text](https://cdn.thingiverse.com/assets/4e/0b/38/9c/80/frame-1.jpg)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+15
View File
@@ -0,0 +1,15 @@
newmtl Material
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.0000 0.0000 0.0000
Kd 0.5880 0.5880 0.5880
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Ka cube.tga
map_Kd checker_blue.png
+18
View File
@@ -0,0 +1,18 @@
# Blender v2.66 (sub 1) OBJ File: ''
# www.blender.org
mtllib plane.mtl
o Plane
v 15.000000 -15.000000 0.000000
v 15.000000 15.000000 0.000000
v -15.000000 15.000000 0.000000
v -15.000000 -15.000000 0.000000
vt 15.000000 0.000000
vt 15.000000 15.000000
vt 0.000000 15.000000
vt 0.000000 0.000000
usemtl Material
s off
f 1/1 2/2 3/3
f 1/1 3/3 4/4
+29
View File
@@ -0,0 +1,29 @@
<?xml version="0.0" ?>
<robot name="plane">
<link name="planeLink">
<contact>
<lateral_friction value="1"/>
</contact>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value=".0"/>
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="plane.obj" scale="1 1 1"/>
</geometry>
<material name="white">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 -5"/>
<geometry>
<box size="30 30 10"/>
</geometry>
</collision>
</link>
</robot>
+22
View File
@@ -0,0 +1,22 @@
# Blender v2.66 (sub 1) OBJ File: ''
# www.blender.org
mtllib plane.mtl
o Plane
v 100.000000 -100.000000 0.000000
v 100.000000 100.000000 0.000000
v -100.000000 100.000000 0.000000
v -100.000000 -100.000000 0.000000
vt 100.000000 0.000000
vt 100.000000 100.000000
vt 0.000000 100.000000
vt 0.000000 0.000000
usemtl Material
s off
f 1/1 2/2 3/3
f 1/1 3/3 4/4
+26
View File
@@ -0,0 +1,26 @@
<?xml version="0.0" ?>
<robot name="floor">
<link name="floor">
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value=".0"/>
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="plane100.obj" scale="1 1 1"/>
</geometry>
<material name="white">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="200 200 0.001"/>
</geometry>
</collision>
</link>
</robot>
@@ -0,0 +1,31 @@
<?xml version="1.0" ?>
<robot name="plane">
<link name="planeLink">
<contact>
<lateral_friction value="0.9"/>
</contact>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value=".0"/>
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="plane100.obj" scale="1 1 1"/>
</geometry>
<material name="white">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<!--<origin rpy="0 0 0" xyz="0 0 -5"/>-->
<geometry>
<plane normal="0 0 1"/>
<!--<box size="100 100 10"/>-->
</geometry>
</collision>
</link>
</robot>
@@ -0,0 +1,44 @@
<sdf version='1.6'>
<world name='default'>
<gravity>0 0 -9.8</gravity>
<model name='floor_obj'>
<static>1</static>
<pose frame=''>0 0 0 0 0 0</pose>
<link name='floor'>
<inertial>
<mass>0</mass>
<inertia>
<ixx>0.166667</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>0.166667</iyy>
<iyz>0</iyz>
<izz>0.166667</izz>
</inertia>
</inertial>
<collision name='collision_1'>
<geometry>
<plane>
<normal>0 0 1</normal>
<size>100 100</size>
</plane>
</geometry>
</collision>
<visual name='visual'>
<geometry>
<mesh>
<scale>1 1 1</scale>
<uri>plane100.obj</uri>
</mesh>
</geometry>
<material>
<ambient>1 1 1 1</ambient>
<diffuse>1 1 1 1</diffuse>
<specular>.5 .5 .5 1</specular>
<emissive>0 0 0 0</emissive>
</material>
</visual>
</link>
</model>
</world>
</sdf>
@@ -0,0 +1,14 @@
newmtl Material
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.0000 0.0000 0.0000
Kd 0.5880 0.5880 0.5880
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Kd checker_blue.png
@@ -0,0 +1,18 @@
# Blender v2.66 (sub 1) OBJ File: ''
# www.blender.org
mtllib plane_transparent.mtl
o Plane
v 15.000000 -15.000000 0.000000
v 15.000000 15.000000 0.000000
v -15.000000 15.000000 0.000000
v -15.000000 -15.000000 0.000000
vt 15.000000 0.000000
vt 15.000000 15.000000
vt 0.000000 15.000000
vt 0.000000 0.000000
usemtl Material
s off
f 1/1 2/2 3/3
f 1/1 3/3 4/4
@@ -0,0 +1,29 @@
<?xml version="1.0" ?>
<robot name="plane">
<link name="planeLink">
<contact>
<lateral_friction value="1"/>
</contact>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0"/>
<mass value=".0"/>
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="plane_transparent.obj" scale="1 1 1"/>
</geometry>
<material name="white">
<color rgba="1 1 1 .7"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 -5"/>
<geometry>
<box size="30 30 10"/>
</geometry>
</collision>
</link>
</robot>
+736
View File
@@ -0,0 +1,736 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- =================================================================================== -->
<!-- | This document was autogenerated by xacro from spot.urdf.xacro | -->
<!-- | EDITING THIS FILE BY HAND IS NOT RECOMMENDED | -->
<!-- =================================================================================== -->
<robot name="spot" xmlns:xacro="http://www.ros.org/wiki/xacro">
<material name="orange">
<color rgba="1.0 0.5 0.0 1" />
</material>
<material name="black">
<color rgba="0.1 0.1 0.1 1" />
</material>
<material name="grey">
<color rgba="0.6 0.6 0.6 1" />
</material>
<!-- Left Leg: prefix is front or rear -->
<!-- <xacro:macro name="LeftLeg" params="prefix reflect">
<link name="${prefix}_Left_Leg">
<visual>
<geometry>
<box size="${leglen} 0.1 0.2"/>
</geometry>
<origin xyz="0 0 -${leglen/2}" rpy="0 ${pi/2} 0"/>
<material name="white"/>
</visual>
<collision>
<geometry>
<box size="${leglen} 0.1 0.2"/>
</geometry>
<origin xyz="0 0 -${leglen/2}" rpy="0 ${pi/2} 0"/>
</collision>
<xacro:default_inertial mass="10"/>
</link>
<joint name="base_to_${prefix}_leg" type="fixed">
<parent link="base_link"/>
<child link="${prefix}_leg"/>
<origin xyz="0 ${reflect*(width+.02)} 0.25" />
</joint>
</xacro:macro> -->
<!-- Robot description -->
<!-- STATIC Links -->
<link name="base_link">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/MAINBODY.stl" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 0" />
<geometry>
<box size="0.114 0.2 0.1" />
</geometry>
</collision>
<inertial>
<mass value="0.6" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.0025" ixy="0" ixz="0" iyx="0" iyy="0.0011498" iyz="0" izx="0" izy="0"
izz="0.0026498" />
</inertial>
</link>
<!-- m to mm -->
<link name="battery">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.15 0.035 -0.022" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/Battery.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 0" />
<geometry>
<box size="0.048 0.145 0.026" />
</geometry>
</collision>
<inertial>
<mass value="0.4" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000723366666667" ixy="0" ixz="0" iyx="0" iyy="9.93333333333e-05" iyz="0"
izx="0" izy="0" izz="0.000777633333333" />
</inertial>
</link>
<!-- m to mm -->
<link name="chassis_left">
<visual>
<origin rpy="0 1.57079632679 -1.57079632679" xyz="0.016 0.003 0" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/Chassis_Left_Side.stl"
scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 1.57079632679 -1.57079632679" xyz="0 0 0" />
<geometry>
<box size="0.06 0.15 0.006" />
</geometry>
</collision>
<inertial>
<mass value="0.01" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="1.878e-05" ixy="0" ixz="0" iyx="0" iyy="3.03e-06" iyz="0" izx="0" izy="0"
izz="2.175e-05" />
</inertial>
</link>
<!-- m to mm -->
<link name="chassis_right">
<visual>
<origin rpy="0 1.57079632679 1.57079632679" xyz="-0.016 -0.003 0" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/Chassis_Right_Side.stl"
scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 1.57079632679 1.57079632679" xyz="0 0 0" />
<geometry>
<box size="0.06 0.15 0.006" />
</geometry>
</collision>
<inertial>
<mass value="0.01" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="1.878e-05" ixy="0" ixz="0" iyx="0" iyy="3.03e-06" iyz="0" izx="0" izy="0"
izz="2.175e-05" />
</inertial>
</link>
<!-- m to mm -->
<link name="front">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/Front.stl" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.16 0 0.006" />
<geometry>
<box size="0.114 0.045 0.085" />
</geometry>
</collision>
<inertial>
<mass value="0.1" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="7.70833333333e-05" ixy="0" ixz="0" iyx="0" iyy="0.000168508333333" iyz="0"
izx="0" izy="0" izz="0.000125175" />
</inertial>
</link>
<!-- m to mm -->
<link name="back">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/Back.stl" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0 0.006" />
<geometry>
<box size="0.114 0.075 0.085" />
</geometry>
</collision>
<inertial>
<mass value="0.1" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000107083333333" ixy="0" ixz="0" iyx="0" iyy="0.000168508333333" iyz="0"
izx="0" izy="0" izz="0.000155175" />
</inertial>
</link>
<!-- m to mm -->
<link name="front_bracket">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/Front_Bracket.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.1 0 0" />
<geometry>
<box size="0.025 0.075 0.085" />
</geometry>
</collision>
<inertial>
<mass value="0.1" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000107083333333" ixy="0" ixz="0" iyx="0" iyy="6.54166666667e-05" iyz="0"
izx="0" izy="0" izz="5.20833333333e-05" />
</inertial>
</link>
<!-- m to mm -->
<link name="back_bracket">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.16 0.035 -0.045" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/Back_Bracket.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.1 0 0" />
<geometry>
<box size="0.025 0.075 0.085" />
</geometry>
</collision>
<inertial>
<mass value="0.1" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000107083333333" ixy="0" ixz="0" iyx="0" iyy="6.54166666667e-05" iyz="0"
izx="0" izy="0" izz="5.20833333333e-05" />
</inertial>
</link>
<!-- m to mm -->
<link name="front_left_hip">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.25 -0.0044 -0.067" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_HIP.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.015 0.01 -0.01" />
<geometry>
<box size="0.05 0.065 0.065" />
</geometry>
</collision>
<inertial>
<mass value="0.2" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000140833333333" ixy="0" ixz="0" iyx="0" iyy="0.000112083333333" iyz="0"
izx="0" izy="0" izz="0.000112083333333" />
</inertial>
</link>
<joint name="motor_front_left_hip" type="revolute">
<axis xyz="1 0 0" />
<origin rpy="0 0 0" xyz="0.0915 0.0394 0.022" />
<parent link="front_bracket" />
<child link="front_left_hip" />
<limit effort="1000.0" lower="-1.04" upper="1.04" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="front_left_upper_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.252 -0.05 -0.055" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_UPPER_LEG.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0.02 -0.05" />
<geometry>
<box size="0.035 0.035 0.11" />
</geometry>
</collision>
<inertial>
<mass value="0.13" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000144354166667" ixy="0" ixz="0" iyx="0" iyy="0.000144354166667" iyz="0"
izx="0" izy="0" izz="2.65416666667e-05" />
</inertial>
</link>
<joint name="motor_front_left_upper_leg" type="revolute">
<axis xyz="0 1 0" />
<origin rpy="0 0 0" xyz="0.0015 0.045 -0.0087" />
<parent link="front_left_hip" />
<child link="front_left_upper_leg" />
<limit effort="1000.0" lower="-1.57079632679" upper="2.59" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="front_left_lower_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.0535" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_LOWER_LEG.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 -0.06" />
<geometry>
<box size="0.035 0.035 0.12" />
</geometry>
</collision>
<inertial>
<mass value="0.05" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="6.51041666667e-05" ixy="0" ixz="0" iyx="0" iyy="6.51041666667e-05" iyz="0"
izx="0" izy="0" izz="1.02083333333e-05" />
</inertial>
</link>
<joint name="motor_front_left_lower_leg" type="revolute">
<axis xyz="0 1 0" />
<origin rpy="0 0 0" xyz="-0.005 0.018 -0.109" />
<parent link="front_left_upper_leg" />
<child link="front_left_lower_leg" />
<limit effort="1000.0" lower="-2.9" upper="1.57079632679" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="front_left_foot">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.18" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_FOOT.stl" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.18" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_FOOT.stl" scale="1 1 1" />
</geometry>
<contact_coefficients mu="10.1" />
</collision>
<inertial>
<mass value="0.005" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="3.52083333333e-06" ixy="0" ixz="0" iyx="0" iyy="2.80208333333e-06" iyz="0"
izx="0" izy="0" izz="2.80208333333e-06" />
</inertial>
</link>
<joint name="front_left_leg_foot" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.1265" />
<parent link="front_left_lower_leg" />
<child link="front_left_foot" />
</joint>
<link name="back_left_hip">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.25 -0.0044 -0.067" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_HIP.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.015 0.01 -0.01" />
<geometry>
<box size="0.05 0.065 0.065" />
</geometry>
</collision>
<inertial>
<mass value="0.2" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000140833333333" ixy="0" ixz="0" iyx="0" iyy="0.000112083333333" iyz="0"
izx="0" izy="0" izz="0.000112083333333" />
</inertial>
</link>
<joint name="motor_back_left_hip" type="revolute">
<axis xyz="1 0 0" />
<origin rpy="0 0 0" xyz="-0.1365 0.0394 0.022" />
<parent link="back_bracket" />
<child link="back_left_hip" />
<limit effort="1000.0" lower="-1.04" upper="1.04" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="back_left_upper_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.252 -0.05 -0.055" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_UPPER_LEG.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0.02 -0.05" />
<geometry>
<box size="0.035 0.035 0.11" />
</geometry>
</collision>
<inertial>
<mass value="0.13" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000144354166667" ixy="0" ixz="0" iyx="0" iyy="0.000144354166667" iyz="0"
izx="0" izy="0" izz="2.65416666667e-05" />
</inertial>
</link>
<joint name="motor_back_left_upper_leg" type="revolute">
<axis xyz="0 1 0" />
<origin rpy="0 0 0" xyz="0.0015 0.045 -0.0087" />
<parent link="back_left_hip" />
<child link="back_left_upper_leg" />
<limit effort="1000.0" lower="-1.57079632679" upper="2.59" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="back_left_lower_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.0535" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_LOWER_LEG.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 -0.06" />
<geometry>
<box size="0.035 0.035 0.12" />
</geometry>
</collision>
<inertial>
<mass value="0.05" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="6.51041666667e-05" ixy="0" ixz="0" iyx="0" iyy="6.51041666667e-05" iyz="0"
izx="0" izy="0" izz="1.02083333333e-05" />
</inertial>
</link>
<joint name="motor_back_left_lower_leg" type="revolute">
<axis xyz="0 1 0" />
<origin rpy="0 0 0" xyz="-0.005 0.018 -0.109" />
<parent link="back_left_upper_leg" />
<child link="back_left_lower_leg" />
<limit effort="1000.0" lower="-2.9" upper="1.57079632679" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="back_left_foot">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.18" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_FOOT.stl" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.247 -0.068 0.18" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/LEFT_FOOT.stl" scale="1 1 1" />
</geometry>
<contact_coefficients mu="10.1" />
</collision>
<inertial>
<mass value="0.005" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="3.52083333333e-06" ixy="0" ixz="0" iyx="0" iyy="2.80208333333e-06" iyz="0"
izx="0" izy="0" izz="2.80208333333e-06" />
</inertial>
</link>
<joint name="back_left_leg_foot" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.1265" />
<parent link="back_left_lower_leg" />
<child link="back_left_foot" />
</joint>
<link name="front_right_hip">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.25 0.074 -0.067" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_HIP.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.015 -0.01 -0.01" />
<geometry>
<box size="0.05 0.065 0.065" />
</geometry>
</collision>
<inertial>
<mass value="0.2" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000140833333333" ixy="0" ixz="0" iyx="0" iyy="0.000112083333333" iyz="0"
izx="0" izy="0" izz="0.000112083333333" />
</inertial>
</link>
<joint name="motor_front_right_hip" type="revolute">
<axis xyz="1 0 0" />
<origin rpy="0 0 0" xyz="0.0915 -0.0394 0.022" />
<parent link="front_bracket" />
<child link="front_right_hip" />
<limit effort="1000.0" lower="-1.04" upper="1.04" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="front_right_upper_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.252 0.12 -0.055" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_UPPER_LEG.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 -0.02 -0.05" />
<geometry>
<box size="0.035 0.035 0.11" />
</geometry>
</collision>
<inertial>
<mass value="0.13" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000144354166667" ixy="0" ixz="0" iyx="0" iyy="0.000144354166667" iyz="0"
izx="0" izy="0" izz="2.65416666667e-05" />
</inertial>
</link>
<joint name="motor_front_right_upper_leg" type="revolute">
<axis xyz="0 1 0" />
<origin rpy="0 0 0" xyz="0.0015 -0.045 -0.0087" />
<parent link="front_right_hip" />
<child link="front_right_upper_leg" />
<limit effort="1000.0" lower="-1.57079632679" upper="2.59" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="front_right_lower_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.0535" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_LOWER_LEG.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 -0.06" />
<geometry>
<box size="0.035 0.035 0.12" />
</geometry>
</collision>
<inertial>
<mass value="0.05" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="6.51041666667e-05" ixy="0" ixz="0" iyx="0" iyy="6.51041666667e-05" iyz="0"
izx="0" izy="0" izz="1.02083333333e-05" />
</inertial>
</link>
<joint name="motor_front_right_lower_leg" type="revolute">
<axis xyz="0 1 0" />
<origin rpy="0 0 0" xyz="-0.005 -0.018 -0.109" />
<parent link="front_right_upper_leg" />
<child link="front_right_lower_leg" />
<limit effort="1000.0" lower="-2.9" upper="1.57079632679" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="front_right_foot">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.18" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_FOOT.stl" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.18" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_FOOT.stl" scale="1 1 1" />
</geometry>
<contact_coefficients mu="10.1" />
</collision>
<inertial>
<mass value="0.005" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="3.52083333333e-06" ixy="0" ixz="0" iyx="0" iyy="2.80208333333e-06" iyz="0"
izx="0" izy="0" izz="2.80208333333e-06" />
</inertial>
</link>
<joint name="front_right_leg_foot" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.1265" />
<parent link="front_right_lower_leg" />
<child link="front_right_foot" />
</joint>
<link name="back_right_hip">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.25 0.074 -0.067" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_HIP.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0.015 -0.01 -0.01" />
<geometry>
<box size="0.05 0.065 0.065" />
</geometry>
</collision>
<inertial>
<mass value="0.2" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000140833333333" ixy="0" ixz="0" iyx="0" iyy="0.000112083333333" iyz="0"
izx="0" izy="0" izz="0.000112083333333" />
</inertial>
</link>
<joint name="motor_back_right_hip" type="revolute">
<axis xyz="1 0 0" />
<origin rpy="0 0 0" xyz="-0.1365 -0.0394 0.022" />
<parent link="back_bracket" />
<child link="back_right_hip" />
<limit effort="1000.0" lower="-1.04" upper="1.04" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="back_right_upper_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.252 0.12 -0.055" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_UPPER_LEG.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 -0.02 -0.05" />
<geometry>
<box size="0.035 0.035 0.11" />
</geometry>
</collision>
<inertial>
<mass value="0.13" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="0.000144354166667" ixy="0" ixz="0" iyx="0" iyy="0.000144354166667" iyz="0"
izx="0" izy="0" izz="2.65416666667e-05" />
</inertial>
</link>
<joint name="motor_back_right_upper_leg" type="revolute">
<axis xyz="0 1 0" />
<origin rpy="0 0 0" xyz="0.0015 -0.045 -0.0087" />
<parent link="back_right_hip" />
<child link="back_right_upper_leg" />
<limit effort="1000.0" lower="-1.57079632679" upper="2.59" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="back_right_lower_leg">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.0535" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_LOWER_LEG.stl" scale="1 1 1" />
</geometry>
<material name="black" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="0 0 -0.06" />
<geometry>
<box size="0.035 0.035 0.12" />
</geometry>
</collision>
<inertial>
<mass value="0.05" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="6.51041666667e-05" ixy="0" ixz="0" iyx="0" iyy="6.51041666667e-05" iyz="0"
izx="0" izy="0" izz="1.02083333333e-05" />
</inertial>
</link>
<joint name="motor_back_right_lower_leg" type="revolute">
<axis xyz="0 1 0" />
<origin rpy="0 0 0" xyz="-0.005 -0.018 -0.109" />
<parent link="back_right_upper_leg" />
<child link="back_right_lower_leg" />
<limit effort="1000.0" lower="-2.9" upper="1.57079632679" velocity="0.7" />
<joint_properties damping="0.0" friction="0.0" />
</joint>
<link name="back_right_foot">
<visual>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.18" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_FOOT.stl" scale="1 1 1" />
</geometry>
<material name="orange" />
</visual>
<collision>
<origin rpy="0 0 1.57079632679" xyz="-0.247 0.138 0.18" />
<geometry>
<mesh filename="package://model/stl/OpenQuadruped/RIGHT_FOOT.stl" scale="1 1 1" />
</geometry>
<contact_coefficients mu="10.1" />
</collision>
<inertial>
<mass value="0.005" />
<origin rpy="0 0 0" xyz="0 0 0" />
<!-- Inertial Axes -->
<inertia ixx="3.52083333333e-06" ixy="0" ixz="0" iyx="0" iyy="2.80208333333e-06" iyz="0"
izx="0" izy="0" izz="2.80208333333e-06" />
</inertial>
</link>
<joint name="back_right_leg_foot" type="fixed">
<origin rpy="0 0 0" xyz="0 0 -0.1265" />
<parent link="back_right_lower_leg" />
<child link="back_right_foot" />
</joint>
<joint name="base_battery" type="fixed">
<origin rpy="0 0 0" xyz="-0.01 0 -0.0225" />
<parent link="base_link" />
<child link="battery" />
</joint>
<joint name="base_left" type="fixed">
<origin rpy="0 0 0" xyz="0.00 0.052 0" />
<parent link="base_link" />
<child link="chassis_left" />
</joint>
<joint name="base_right" type="fixed">
<origin rpy="0 0 0" xyz="0.00 -0.052 0" />
<parent link="base_link" />
<child link="chassis_right" />
</joint>
<joint name="base_front" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0" />
<parent link="base_link" />
<child link="front" />
</joint>
<joint name="base_back" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0" />
<parent link="base_link" />
<child link="back" />
</joint>
<joint name="base_front_bracket" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0" />
<parent link="base_link" />
<child link="front_bracket" />
</joint>
<joint name="base_back_bracket" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0" />
<parent link="base_link" />
<child link="back_bracket" />
</joint>
</robot>