🦴 Adds Simulator from OpenQuadruped/spot_mini_mini

This commit is contained in:
Rune Harlyk
2024-03-04 15:55:45 +01:00
parent e673a50fa2
commit 1753e539db
162 changed files with 11940 additions and 1 deletions
@@ -0,0 +1,6 @@
import os
def getDataPath():
resdir = os.path.join(os.path.dirname(__file__))
return resdir
@@ -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,594 @@
<?xml version="1.0" encoding="utf-8"?>
<robot name="rex" xmlns:xacro="http://www.ros.org/wiki/xacro">
<material name="yellow">
<color rgba="0.92 0.83 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>
<!-- Params -->
<!-- Macros -->
<!-- Robot Body -->
<link name="base_link">
<visual>
<geometry>
<mesh filename="stl/mainbody.stl" scale="0.001 0.001 0.001"/>
</geometry>
<material name="black"/>
<origin rpy="0 0 0" xyz="-0.045 -0.060 -0.015"/>
</visual>
<collision>
<geometry>
<box size="0.14 0.11 0.07"/>
</geometry>
<origin rpy="0 0 0" xyz="0 0 0"/>
</collision>
<inertial>
<mass value="1.20"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<!-- @TODO add lidar sensor-->
<!-- Lidar Backpack -->
<!-- <link name="lidar_link">-->
<!-- <visual>-->
<!-- <geometry>-->
<!-- <mesh filename="stl/rplidar_main.STL" scale="0.001 0.001 0.001"/>-->
<!-- </geometry>-->
<!-- <material name="black"/>-->
<!-- <origin rpy="1.57075 0 0" xyz="-0.06425 0.02885 0"/>-->
<!-- </visual>-->
<!-- <collision>-->
<!-- <geometry>-->
<!-- <box size="0.0985 0.0577 0.07"/>-->
<!-- </geometry>-->
<!-- <origin rpy="0 0 0" xyz="0 0 0"/>-->
<!-- </collision>-->
<!-- <inertial>-->
<!-- <mass value="0.50"/>-->
<!-- <inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>-->
<!-- </inertial>-->
<!-- </link>-->
<!-- <joint name="base_lidar" type="fixed">-->
<!-- <parent link="base_link"/>-->
<!-- <child link="lidar_link"/>-->
<!-- <origin xyz="0 0 0.035"/>-->
<!-- </joint>-->
<!-- create head & tail -->
<link name="chassis_front_link">
<visual>
<geometry>
<mesh filename="stl/frontpart.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.040 -0.060 -0.0140"/>
<material name="yellow"/>
</visual>
<collision>
<geometry>
<box size="0.058 0.11 0.07"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.145 0 0"/>
</collision>
<inertial>
<mass value="0.05"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<joint name="chassis_base_front" type="fixed">
<parent link="base_link"/>
<child link="chassis_front_link"/>
</joint>
<link name="chassis_rear_link">
<visual>
<geometry>
<mesh filename="stl/backpart.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.040 -0.060 -0.0140"/>
<material name="yellow"/>
</visual>
<collision>
<geometry>
<box size="0.04 0.11 0.07"/>
</geometry>
<origin rpy="0 0 0" xyz="0.135 0 0"/>
</collision>
<inertial>
<mass value="0.05"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<joint name="chassis_base_rear" type="fixed">
<parent link="base_link"/>
<child link="chassis_rear_link"/>
</joint>
<!-- create Legs -->
<link name="front_left_shoulder_link">
<visual>
<geometry>
<mesh filename="stl/lshoulder.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.135 -0.02 -0.01"/>
<material name="black"/>
</visual>
<collision>
<geometry>
<box size="0.044 0.038 0.07"/>
</geometry>
<origin rpy="0 0 0" xyz="0 0 0"/>
</collision>
<inertial>
<mass value="0.10"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="front_left_leg_link_cover">
<visual>
<geometry>
<mesh filename="stl/larm_cover.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.125 0.04 -0.02"/>
<material name="yellow"/>
</visual>
</link>
<link name="front_left_leg_link">
<visual>
<geometry>
<mesh filename="stl/larm.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.125 0.04 -0.02"/>
<material name="black"/>
</visual>
<collision>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.050"/>
<geometry>
<box size="0.028 0.036 0.12"/>
</geometry>
</collision>
<inertial>
<mass value="0.1"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="front_left_foot_link">
<visual>
<geometry>
<mesh filename="stl/lfoot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.120 0.04 0.1"/>
<material name="black"/>
</visual>
<collision>
<geometry>
<box size="0.026 0.020 0.115"/>
</geometry>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.050"/>
</collision>
<inertial>
<mass value="0.1"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="front_left_toe_link">
<visual>
<geometry>
<mesh filename="stl/foot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 -0.40010 0" xyz="0 -0.01 0"/>
<material name="grey"/>
</visual>
<collision>
<geometry>
<mesh filename="stl/foot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 -0.40010 0" xyz="0 -0.01 0"/>
<contact_coefficients mu="100.0"/>
</collision>
<inertial>
<mass value="0.005"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<joint name="motor_front_left_shoulder" type="revolute">
<parent link="base_link"/>
<child link="front_left_shoulder_link"/>
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="-0.093 -0.036 0"/>
<limit effort="100.0" lower="-1.0" upper="1.0" velocity="0.7"/>
<dynamics damping="0.0" friction="0.5"/>
</joint>
<joint name="motor_front_left_leg" type="revolute">
<parent link="front_left_shoulder_link"/>
<child link="front_left_leg_link"/>
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0 -0.052 0"/>
<limit effort="100.0" lower="-2.17" upper="0.97" velocity="0.5"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<joint name="front_left_leg_cover_joint" type="fixed">
<parent link="front_left_leg_link"/>
<child link="front_left_leg_link_cover"/>
<origin xyz="0 0 0"/>
</joint>
<joint name="foot_motor_front_left" type="revolute">
<parent link="front_left_leg_link"/>
<child link="front_left_foot_link"/>
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="-0.01 0 -0.12"/>
<limit effort="100.0" lower="-0.1" upper="2.59" velocity="0.5"/>
<dynamics damping="0.0" friction="0.5"/>
</joint>
<joint name="front_left_toe" type="fixed">
<parent link="front_left_foot_link"/>
<child link="front_left_toe_link"/>
<origin xyz="0 0 -0.115"/>
</joint>
<link name="front_right_shoulder_link">
<visual>
<geometry>
<mesh filename="stl/rshoulder.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.135 -0.09 -0.01"/>
<material name="black"/>
</visual>
<collision>
<geometry>
<box size="0.044 0.038 0.07"/>
</geometry>
<origin rpy="0 0 0" xyz="0 0 0"/>
</collision>
<inertial>
<mass value="0.10"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="front_right_leg_link_cover">
<visual>
<geometry>
<mesh filename="stl/rarm_cover.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.125 -0.15 -0.02"/>
<material name="yellow"/>
</visual>
</link>
<link name="front_right_leg_link">
<visual>
<geometry>
<mesh filename="stl/rarm.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.125 -0.15 -0.02"/>
<material name="black"/>
</visual>
<collision>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.050"/>
<geometry>
<box size="0.028 0.036 0.12"/>
</geometry>
</collision>
<inertial>
<mass value="0.1"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="front_right_foot_link">
<visual>
<geometry>
<mesh filename="stl/rfoot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.120 -0.15 0.1"/>
<material name="black"/>
</visual>
<collision>
<geometry>
<box size="0.026 0.020 0.115"/>
</geometry>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.050"/>
</collision>
<inertial>
<mass value="0.1"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="front_right_toe_link">
<visual>
<geometry>
<mesh filename="stl/foot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 -0.40010 0" xyz="0 -0.01 0"/>
<material name="grey"/>
</visual>
<collision>
<geometry>
<mesh filename="stl/foot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 -0.40010 0" xyz="0 -0.01 0"/>
<contact_coefficients mu="100.0"/>
</collision>
<inertial>
<mass value="0.005"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<joint name="motor_front_right_shoulder" type="revolute">
<parent link="base_link"/>
<child link="front_right_shoulder_link"/>
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="-0.093 0.036 0"/>
<limit effort="100.0" lower="-1.0" upper="1.0" velocity="0.7"/>
<dynamics damping="0.0" friction="0.5"/>
</joint>
<joint name="motor_front_right_leg" type="revolute">
<parent link="front_right_shoulder_link"/>
<child link="front_right_leg_link"/>
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0 0.052 0"/>
<limit effort="100.0" lower="-2.17" upper="0.97" velocity="0.5"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<joint name="front_right_leg_cover_joint" type="fixed">
<parent link="front_right_leg_link"/>
<child link="front_right_leg_link_cover"/>
<origin xyz="0 0 0"/>
</joint>
<joint name="foot_motor_front_right" type="revolute">
<parent link="front_right_leg_link"/>
<child link="front_right_foot_link"/>
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="-0.01 0 -0.12"/>
<limit effort="100.0" lower="-0.1" upper="2.59" velocity="0.5"/>
<dynamics damping="0.0" friction="0.5"/>
</joint>
<joint name="front_right_toe" type="fixed">
<parent link="front_right_foot_link"/>
<child link="front_right_toe_link"/>
<origin xyz="0 0 -0.115"/>
</joint>
<link name="rear_left_shoulder_link">
<visual>
<geometry>
<mesh filename="stl/lshoulder.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.135 -0.02 -0.01"/>
<material name="black"/>
</visual>
<collision>
<geometry>
<box size="0.044 0.038 0.07"/>
</geometry>
<origin rpy="0 0 0" xyz="0 0 0"/>
</collision>
<inertial>
<mass value="0.10"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="rear_left_leg_link_cover">
<visual>
<geometry>
<mesh filename="stl/larm_cover.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.125 0.04 -0.02"/>
<material name="yellow"/>
</visual>
</link>
<link name="rear_left_leg_link">
<visual>
<geometry>
<mesh filename="stl/larm.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.125 0.04 -0.02"/>
<material name="black"/>
</visual>
<collision>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.050"/>
<geometry>
<box size="0.028 0.036 0.12"/>
</geometry>
</collision>
<inertial>
<mass value="0.10"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="rear_left_foot_link">
<visual>
<geometry>
<mesh filename="stl/lfoot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.120 0.04 0.1"/>
<material name="black"/>
</visual>
<collision>
<geometry>
<box size="0.026 0.020 0.115"/>
</geometry>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.050"/>
</collision>
<inertial>
<mass value="0.1"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="rear_left_toe_link">
<visual>
<geometry>
<mesh filename="stl/foot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 -0.40010 0" xyz="0 -0.01 0"/>
<material name="grey"/>
</visual>
<collision>
<geometry>
<mesh filename="stl/foot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 -0.40010 0" xyz="0 -0.01 0"/>
<contact_coefficients mu="100.0"/>
</collision>
<inertial>
<mass value="0.005"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<joint name="motor_rear_left_shoulder" type="revolute">
<parent link="base_link"/>
<child link="rear_left_shoulder_link"/>
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="0.093 -0.036 0"/>
<limit effort="100.0" lower="-1.0" upper="1.0" velocity="0.7"/>
<dynamics damping="0.0" friction="0.5"/>
</joint>
<joint name="motor_rear_left_leg" type="revolute">
<parent link="rear_left_shoulder_link"/>
<child link="rear_left_leg_link"/>
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0 -0.052 0"/>
<limit effort="100.0" lower="-2.17" upper="0.97" velocity="0.5"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<joint name="rear_left_leg_cover_joint" type="fixed">
<parent link="rear_left_leg_link"/>
<child link="rear_left_leg_link_cover"/>
<origin xyz="0 0 0"/>
</joint>
<joint name="foot_motor_rear_left" type="revolute">
<parent link="rear_left_leg_link"/>
<child link="rear_left_foot_link"/>
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="-0.01 0 -0.12"/>
<limit effort="100.0" lower="-0.1" upper="2.59" velocity="0.5"/>
<dynamics damping="0.0" friction="0.5"/>
</joint>
<joint name="rear_left_toe" type="fixed">
<parent link="rear_left_foot_link"/>
<child link="rear_left_toe_link"/>
<origin xyz="0 0 -0.115"/>
</joint>
<link name="rear_right_shoulder_link">
<visual>
<geometry>
<mesh filename="stl/rshoulder.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.135 -0.09 -0.01"/>
<material name="black"/>
</visual>
<collision>
<geometry>
<box size="0.044 0.038 0.07"/>
</geometry>
<origin rpy="0 0 0" xyz="0 0 0"/>
</collision>
<inertial>
<mass value="0.10"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="rear_right_leg_link_cover">
<visual>
<geometry>
<mesh filename="stl/rarm_cover.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.125 -0.15 -0.02"/>
<material name="yellow"/>
</visual>
</link>
<link name="rear_right_leg_link">
<visual>
<geometry>
<mesh filename="stl/rarm.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.125 -0.15 -0.02"/>
<material name="black"/>
</visual>
<collision>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.050"/>
<geometry>
<box size="0.028 0.036 0.12"/>
</geometry>
</collision>
<inertial>
<mass value="0.10"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="rear_right_foot_link">
<visual>
<geometry>
<mesh filename="stl/rfoot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="-0.120 -0.15 0.1"/>
<material name="black"/>
</visual>
<collision>
<geometry>
<box size="0.026 0.020 0.115"/>
</geometry>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.050"/>
</collision>
<inertial>
<mass value="0.1"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<link name="rear_right_toe_link">
<visual>
<geometry>
<mesh filename="stl/foot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 -0.40010 0" xyz="0 -0.01 0"/>
<material name="grey"/>
</visual>
<collision>
<geometry>
<mesh filename="stl/foot.stl" scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 -0.40010 0" xyz="0 -0.01 0"/>
<contact_coefficients mu="100.0"/>
</collision>
<inertial>
<mass value="0.005"/>
<inertia ixx="100" ixy="0" ixz="0" iyy="100" iyz="0" izz="100"/>
</inertial>
</link>
<joint name="motor_rear_right_shoulder" type="revolute">
<parent link="base_link"/>
<child link="rear_right_shoulder_link"/>
<axis xyz="1 0 0"/>
<origin rpy="0 0 0" xyz="0.093 0.036 0"/>
<limit effort="100.0" lower="-1.0" upper="1.0" velocity="0.7"/>
<dynamics damping="0.0" friction="0.5"/>
</joint>
<joint name="motor_rear_right_leg" type="revolute">
<parent link="rear_right_shoulder_link"/>
<child link="rear_right_leg_link"/>
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="0 0.052 0"/>
<limit effort="100.0" lower="-2.17" upper="0.97" velocity="0.5"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<joint name="rear_right_leg_cover_joint" type="fixed">
<parent link="rear_right_leg_link"/>
<child link="rear_right_leg_link_cover"/>
<origin xyz="0 0 0"/>
</joint>
<joint name="foot_motor_rear_right" type="revolute">
<parent link="rear_right_leg_link"/>
<child link="rear_right_foot_link"/>
<axis xyz="0 1 0"/>
<origin rpy="0 0 0" xyz="-0.01 0 -0.12"/>
<limit effort="100.0" lower="-0.1" upper="2.59" velocity="0.5"/>
<dynamics damping="0.0" friction="0.5"/>
</joint>
<joint name="rear_right_toe" type="fixed">
<parent link="rear_right_foot_link"/>
<child link="rear_right_toe_link"/>
<origin xyz="0 0 -0.115"/>
</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)
File diff suppressed because one or more lines are too long
@@ -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
@@ -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
@@ -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>
@@ -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
@@ -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>