Adds Simulator from OpenQuadruped/spot_mini_mini

This commit is contained in:
Rune Harlyk
2024-03-04 15:55:45 +01:00
parent 02871591fd
commit 6a981b64fa
162 changed files with 11940 additions and 1 deletions
@@ -0,0 +1,57 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:include filename="$(find hector_sensors_description)/urdf/hokuyo_utm30lx.urdf.xacro" />
<xacro:include filename="$(find hector_sensors_description)/urdf/asus_camera.urdf.xacro" />
<xacro:hokuyo_utm30lx
name="hokuyo"
parent="base_link"
ros_topic="scan"
update_rate="30"
ray_count="1040"
min_angle="130"
max_angle="-130" >
<origin xyz="0.0 0.0 0.1" rpy="0 0 0"/>
</xacro:hokuyo_utm30lx>
<gazebo reference="hokuyo_frame">
<material>Gazebo/FlatBlack</material>
</gazebo>
<!-- <xacro:asus_camera
parent="base_link"
name="camera">
<origin xyz="0.2 0.0 0.05" rpy="0 0 0"/>
</xacro:asus_camera> -->
<gazebo>
<plugin name="imu_controller" filename="libhector_gazebo_ros_imu.so">
<updateRate>50.0</updateRate>
<bodyName>imu_link</bodyName>
<topicName>imu/data</topicName>
<accelDrift>0.005 0.005 0.005</accelDrift>
<accelGaussianNoise>0.005 0.005 0.005</accelGaussianNoise>
<rateDrift>0.005 0.005 0.005 </rateDrift>
<rateGaussianNoise>0.005 0.005 0.005 </rateGaussianNoise>
<headingDrift>0.005</headingDrift>
<headingGaussianNoise>0.005</headingGaussianNoise>
</plugin>
</gazebo>
<link name="imu_link">
<inertial>
<mass value="0.001"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-09" ixy="0.0" ixz="0.0" iyy="1e-09" iyz="0.0" izz="1e-09"/>
</inertial>
</link>
<joint name="imu_joint" type="fixed">
<parent link="base_link" />
<child link="imu_link" />
</joint>
<!-- <xacro:include filename="$(find champ_arm_description)/urdf/champ_arm.urdf.xacro" />
<xacro:champ_arm parent="base_link">
<origin xyz="0.07 0.0 ${base_z_length / 2}" rpy="0 0 0"/>
</xacro:champ_arm> -->
</robot>
+938
View File
@@ -0,0 +1,938 @@
<?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">
<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> -->
<!-- <xacro:include filename="$(find mini_ros)/urdf/accessories.urdf.xacro" /> -->
<!-- Robot description -->
<!-- STATIC Links -->
<link name="base_link"/>
<link name="base_inertia">
<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>
<gazebo reference="base_inertia">
<material>Gazebo/Orange</material>
</gazebo>
<!-- 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>
<gazebo reference="battery">
<material>Gazebo/Black</material>
</gazebo>
<!-- 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>
<gazebo reference="chassis_left">
<material>Gazebo/Black</material>
</gazebo>
<!-- 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>
<gazebo reference="chassis_right">
<material>Gazebo/Black</material>
</gazebo>
<!-- 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>
<gazebo reference="front">
<material>Gazebo/Orange</material>
</gazebo>
<!-- 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>
<gazebo reference="back">
<material>Gazebo/Orange</material>
</gazebo>
<!-- 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>
<gazebo reference="front_bracket">
<material>Gazebo/Black</material>
</gazebo>
<!-- 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>
<gazebo reference="back_bracket">
<material>Gazebo/Black</material>
</gazebo>
<!-- 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.075 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>
<gazebo reference="front_left_hip">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-1.04" upper="1.04" velocity="4.0"/>
<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.005 0.0175 -0.055"/>
<!-- 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>
<gazebo reference="front_left_upper_leg">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-1.57079632679" upper="2.59" velocity="4.0"/>
<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.01 0 -0.06"/>
<!-- 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>
<gazebo reference="front_left_lower_leg">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-2.9" upper="1.57079632679" velocity="4.0"/>
<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>
<gazebo reference="front_left_foot">
<kp>1000000.0</kp>
<kd>1.0</kd>
<mu1>0.8</mu1>
<mu2>0.8</mu2>
<maxVel>0.0</maxVel>
<minDepth>0.001</minDepth>
<material>Gazebo/Orange</material>
</gazebo>
<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.075 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>
<gazebo reference="back_left_hip">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-1.04" upper="1.04" velocity="4.0"/>
<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.005 0.0175 -0.055"/>
<!-- 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>
<gazebo reference="back_left_upper_leg">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-1.57079632679" upper="2.59" velocity="4.0"/>
<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.01 0 -0.06"/>
<!-- 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>
<gazebo reference="back_left_lower_leg">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-2.9" upper="1.57079632679" velocity="4.0"/>
<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>
<gazebo reference="back_left_foot">
<kp>1000000.0</kp>
<kd>1.0</kd>
<mu1>0.8</mu1>
<mu2>0.8</mu2>
<maxVel>0.0</maxVel>
<minDepth>0.001</minDepth>
<material>Gazebo/Orange</material>
</gazebo>
<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.075 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>
<gazebo reference="front_right_hip">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-1.04" upper="1.04" velocity="4.0"/>
<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.005 -0.0175 -0.055"/>
<!-- 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>
<gazebo reference="front_right_upper_leg">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-1.57079632679" upper="2.59" velocity="4.0"/>
<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.01 0 -0.06"/>
<!-- 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>
<gazebo reference="front_right_lower_leg">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-2.9" upper="1.57079632679" velocity="4.0"/>
<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>
<gazebo reference="front_right_foot">
<kp>1000000.0</kp>
<kd>1.0</kd>
<mu1>0.8</mu1>
<mu2>0.8</mu2>
<maxVel>0.0</maxVel>
<minDepth>0.001</minDepth>
<material>Gazebo/Orange</material>
</gazebo>
<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.075 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>
<gazebo reference="back_right_hip">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-1.04" upper="1.04" velocity="4.0"/>
<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.005 -0.0175 -0.055"/>
<!-- 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>
<gazebo reference="back_right_upper_leg">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-1.57079632679" upper="2.59" velocity="4.0"/>
<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.01 0 -0.06"/>
<!-- 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>
<gazebo reference="back_right_lower_leg">
<material>Gazebo/Black</material>
</gazebo>
<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="4.0" lower="-2.9" upper="1.57079632679" velocity="4.0"/>
<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>
<gazebo reference="back_right_foot">
<kp>1000000.0</kp>
<kd>1.0</kd>
<mu1>0.8</mu1>
<mu2>0.8</mu2>
<maxVel>0.0</maxVel>
<minDepth>0.001</minDepth>
<material>Gazebo/Orange</material>
</gazebo>
<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_base" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0"/>
<parent link="base_link"/>
<child link="base_inertia"/>
</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>
<transmission name="front_left_hip_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_front_left_hip">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="front_left_hip_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="front_left_upper_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_front_left_lower_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="front_left_upper_leg_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="front_left_lower_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_front_left_upper_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="front_left_lower_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="front_right_hip_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_front_right_hip">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="front_right_hip_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="front_right_upper_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_front_right_lower_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="front_right_upper_leg_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="front_right_lower_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_front_right_upper_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="front_right_lower_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="back_left_hip_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_back_left_hip">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="back_left_hip_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="back_left_upper_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_back_left_lower_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="back_left_upper_leg_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="back_left_lower_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_back_left_upper_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="back_left_lower_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="back_right_hip_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_back_right_hip">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="back_right_hip_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="back_right_upper_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_back_right_lower_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="back_right_upper_leg_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="back_right_lower_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_back_right_upper_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="back_right_lower_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<gazebo>
<plugin filename="libgazebo_ros_control.so" name="gazebo_ros_control">
<legacyModeNS>true</legacyModeNS>
</plugin>
</gazebo>
</robot>
@@ -0,0 +1,489 @@
<?xml version="1.0"?>
<robot name="spot" xmlns:xacro="http://www.ros.org/wiki/xacro">
<!-- Include Macros -->
<xacro:include filename="$(find mini_ros)/urdf/spot_macro.xacro" />
<xacro:include filename="$(find mini_ros)/urdf/transmissions.xacro" />
<!-- <xacro:include filename="$(find mini_ros)/urdf/accessories.urdf.xacro" /> -->
<!-- Robot description -->
<!-- STATIC Links -->
<link name="base_link"/>
<!-- MAIN BODY -->
<xacro:mesh_link name="base_inertia"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.16 0.035 -0.045"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.6"
c_xyz="0 0 0"
length="0.114"
width="0.2"
height="0.1"
matname="orange"
meshfile="package://mini_ros/stl/OpenQuadruped/MAINBODY.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<!-- BATTERY -->
<xacro:mesh_link name="battery"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.15 0.035 -0.022"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.4"
c_xyz="0 0 0"
length="0.048"
width="0.145"
height="0.026"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/Battery.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<!-- CHASSIS LEFT -->
<xacro:mesh_link name="chassis_left"
origin_rpy="0 ${pi/2} -${pi/2}" origin_xyz="0.016 0.003 0"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.01"
c_xyz="0 0 0"
length="0.06"
width="0.15"
height="0.006"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/Chassis_Left_Side.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<!-- CHASSIS Right -->
<xacro:mesh_link name="chassis_right"
origin_rpy="0 ${pi/2} ${pi/2}" origin_xyz="-0.016 -0.003 0"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.01"
c_xyz="0 0 0"
length="0.06"
width="0.15"
height="0.006"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/Chassis_Right_Side.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<!-- FRONT -->
<xacro:mesh_link name="front"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.16 0.035 -0.045"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.1"
c_xyz="0.16 0 0.006"
length="0.114"
width="0.045"
height="0.085"
matname="orange"
meshfile="package://mini_ros/stl/OpenQuadruped/Front.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<!-- BACK -->
<xacro:mesh_link name="back"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.16 0.035 -0.045"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.1"
c_xyz="-0.16 0 0.006"
length="0.114"
width="0.075"
height="0.085"
matname="orange"
meshfile="package://mini_ros/stl/OpenQuadruped/Back.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<!-- FRONT BRACKET -->
<xacro:mesh_link name="front_bracket"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.16 0.035 -0.045"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.1"
c_xyz="0.1 0 0"
length="0.025"
width="0.075"
height="0.085"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/Front_Bracket.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<!-- BACK BRACKET -->
<xacro:mesh_link name="back_bracket"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.16 0.035 -0.045"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.1"
c_xyz="-0.1 0 0"
length="0.025"
width="0.075"
height="0.085"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/Back_Bracket.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<!-- DYNAMIC LINKS (Joints Included) -->
<!-- FRONT LEFT LEG -->
<!-- HIP -->
<xacro:mesh_link name="front_left_hip"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.25 -0.0044 -0.067"
i_rpy="0 0 0" i_xyz="0 0.075 0"
mass="0.2"
c_xyz="0.015 0.01 -0.01"
length="0.05"
width="0.065"
height="0.065"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/LEFT_HIP.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_front_left_hip" type="revolute"
axis_xyz="1 0 0"
origin_rpy="0 0 0" origin_xyz="${0.2515-0.16} ${0.0044+0.035} ${0.067-0.045}"
parent="front_bracket" child="front_left_hip"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="-1.04"
upper="1.04"/>
<!-- UPPER LEG -->
<xacro:mesh_link name="front_left_upper_leg"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.252} ${-0.05} ${-0.055}"
i_rpy="0 0 0" i_xyz="-0.005 0.0175 -0.055"
mass="0.13"
c_xyz="0 0.02 -0.05"
length="0.035"
width="0.035"
height="0.11"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/LEFT_UPPER_LEG.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_front_left_upper_leg" type="revolute"
axis_xyz="0 1 0"
origin_rpy="0 0 0" origin_xyz="0.0015 0.045 -0.0087"
parent="front_left_hip" child="front_left_upper_leg"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="${-pi/2}"
upper="2.59"/>
<!-- LOWER LEG -->
<xacro:mesh_link name="front_left_lower_leg"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.247} ${-0.068} ${0.0535}"
i_rpy="0 0 0" i_xyz="-0.01 0 -0.06"
mass="0.05"
c_xyz="0 0 -0.06"
length="0.035"
width="0.035"
height="0.12"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/LEFT_LOWER_LEG.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_front_left_lower_leg" type="revolute"
axis_xyz="0 1 0"
origin_rpy="0 0 0" origin_xyz="-0.005 0.018 -0.109"
parent="front_left_upper_leg" child="front_left_lower_leg"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="-2.9"
upper="${pi/2}"/>
<!-- FOOT -->
<xacro:mesh_link_sphere name="front_left_foot"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.247} ${-0.068} ${0.18}"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.005"
c_xyz="${-0.247} ${-0.068} ${0.18}"
length="0.05"
width="0.065"
height="0.065"
radius="0.02"
matname="orange"
meshfile="package://mini_ros/stl/OpenQuadruped/LEFT_FOOT.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:frame_joint name="front_left_leg_foot" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 -0.1265"
parent="front_left_lower_leg" child="front_left_foot"/>
<!-- BACK LEFT LEG -->
<!-- HIP -->
<xacro:mesh_link name="back_left_hip"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.25 -0.0044 -0.067"
i_rpy="0 0 0" i_xyz="0 0.075 0"
mass="0.2"
c_xyz="0.015 0.01 -0.01"
length="0.05"
width="0.065"
height="0.065"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/LEFT_HIP.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_back_left_hip" type="revolute"
axis_xyz="1 0 0"
origin_rpy="0 0 0" origin_xyz="${-0.2515+0.115} ${0.0044+0.035} ${0.067-0.045}"
parent="back_bracket" child="back_left_hip"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="-1.04"
upper="1.04"/>
<!-- UPPER LEG -->
<xacro:mesh_link name="back_left_upper_leg"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.252} ${-0.05} ${-0.055}"
i_rpy="0 0 0" i_xyz="-0.005 0.0175 -0.055"
mass="0.13"
c_xyz="0 0.02 -0.05"
length="0.035"
width="0.035"
height="0.11"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/LEFT_UPPER_LEG.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_back_left_upper_leg" type="revolute"
axis_xyz="0 1 0"
origin_rpy="0 0 0" origin_xyz="0.0015 0.045 -0.0087"
parent="back_left_hip" child="back_left_upper_leg"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="${-pi/2}"
upper="2.59"/>
<!-- LOWER LEG -->
<xacro:mesh_link name="back_left_lower_leg"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.247} ${-0.068} ${0.0535}"
i_rpy="0 0 0" i_xyz="-0.01 0 -0.06"
mass="0.05"
c_xyz="0 0 -0.06"
length="0.035"
width="0.035"
height="0.12"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/LEFT_LOWER_LEG.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_back_left_lower_leg" type="revolute"
axis_xyz="0 1 0"
origin_rpy="0 0 0" origin_xyz="-0.005 0.018 -0.109"
parent="back_left_upper_leg" child="back_left_lower_leg"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="-2.9"
upper="${pi/2}"/>
<!-- FOOT -->
<xacro:mesh_link_sphere name="back_left_foot"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.247} ${-0.068} ${0.18}"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.005"
c_xyz="${-0.247} ${-0.068} ${0.18}"
length="0.05"
width="0.065"
height="0.065"
radius="0.02"
matname="orange"
meshfile="package://mini_ros/stl/OpenQuadruped/LEFT_FOOT.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:frame_joint name="back_left_leg_foot" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 -0.1265"
parent="back_left_lower_leg" child="back_left_foot"/>
<!-- FRONT RIGHT LEG -->
<!-- HIP -->
<xacro:mesh_link name="front_right_hip"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.25 0.074 -0.067"
i_rpy="0 0 0" i_xyz="0 -0.075 0"
mass="0.2"
c_xyz="0.015 ${-0.01} -0.01"
length="0.05"
width="0.065"
height="0.065"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/RIGHT_HIP.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_front_right_hip" type="revolute"
axis_xyz="1 0 0"
origin_rpy="0 0 0" origin_xyz="${0.2515-0.16} ${-(0.0044+0.035)} ${0.067-0.045}"
parent="front_bracket" child="front_right_hip"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="-1.04"
upper="1.04"/>
<!-- UPPER LEG -->
<xacro:mesh_link name="front_right_upper_leg"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.252} ${0.12} ${-0.055}"
i_rpy="0 0 0" i_xyz="-0.005 -0.0175 -0.055"
mass="0.13"
c_xyz="0 ${-0.02} -0.05"
length="0.035"
width="0.035"
height="0.11"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/RIGHT_UPPER_LEG.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_front_right_upper_leg" type="revolute"
axis_xyz="0 1 0"
origin_rpy="0 0 0" origin_xyz="0.0015 -0.045 -0.0087"
parent="front_right_hip" child="front_right_upper_leg"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="${-pi/2}"
upper="2.59"/>
<!-- LOWER LEG -->
<xacro:mesh_link name="front_right_lower_leg"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.247} ${0.138} ${0.0535}"
i_rpy="0 0 0" i_xyz="-0.01 0 -0.06"
mass="0.05"
c_xyz="0 0 -0.06"
length="0.035"
width="0.035"
height="0.12"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/RIGHT_LOWER_LEG.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_front_right_lower_leg" type="revolute"
axis_xyz="0 1 0"
origin_rpy="0 0 0" origin_xyz="-0.005 -0.018 -0.109"
parent="front_right_upper_leg" child="front_right_lower_leg"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="-2.9"
upper="${pi/2}"/>
<!-- FOOT -->
<xacro:mesh_link_sphere name="front_right_foot"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.247} ${0.138} ${0.18}"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.005"
c_xyz="${-0.247} ${0.138} ${0.18}"
length="0.05"
width="0.065"
height="0.065"
radius="0.02"
matname="orange"
meshfile="package://mini_ros/stl/OpenQuadruped/RIGHT_FOOT.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:frame_joint name="front_right_leg_foot" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 -0.1265"
parent="front_right_lower_leg" child="front_right_foot"/>
<!-- BACK RIGHT LEG -->
<!-- HIP -->
<xacro:mesh_link name="back_right_hip"
origin_rpy="0 0 ${pi/2}" origin_xyz="-0.25 0.074 -0.067"
i_rpy="0 0 0" i_xyz="0 -0.075 0"
mass="0.2"
c_xyz="0.015 ${-0.01} -0.01"
length="0.05"
width="0.065"
height="0.065"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/RIGHT_HIP.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_back_right_hip" type="revolute"
axis_xyz="1 0 0"
origin_rpy="0 0 0" origin_xyz="${-0.2515+0.115} ${-(0.0044+0.035)} ${0.067-0.045}"
parent="back_bracket" child="back_right_hip"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="-1.04"
upper="1.04"/>
<!-- UPPER LEG -->
<xacro:mesh_link name="back_right_upper_leg"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.252} ${0.12} ${-0.055}"
i_rpy="0 0 0" i_xyz="-0.005 -0.0175 -0.055"
mass="0.13"
c_xyz="0 ${-0.02} -0.05"
length="0.035"
width="0.035"
height="0.11"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/RIGHT_UPPER_LEG.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_back_right_upper_leg" type="revolute"
axis_xyz="0 1 0"
origin_rpy="0 0 0" origin_xyz="0.0015 -0.045 -0.0087"
parent="back_right_hip" child="back_right_upper_leg"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="${-pi/2}"
upper="2.59"/>
<!-- LOWER LEG -->
<xacro:mesh_link name="back_right_lower_leg"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.247} ${0.138} ${0.0535}"
i_rpy="0 0 0" i_xyz="-0.01 0 -0.06"
mass="0.05"
c_xyz="0 0 -0.06"
length="0.035"
width="0.035"
height="0.12"
matname="black"
meshfile="package://mini_ros/stl/OpenQuadruped/RIGHT_LOWER_LEG.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:rev_joint name="motor_back_right_lower_leg" type="revolute"
axis_xyz="0 1 0"
origin_rpy="0 0 0" origin_xyz="-0.005 -0.018 -0.109"
parent="back_right_upper_leg" child="back_right_lower_leg"
effort="4.0" velocity="4.0"
damping="0.0"
friction="0.0"
lower="-2.9"
upper="${pi/2}"/>
<!-- FOOT -->
<xacro:mesh_link_sphere name="back_right_foot"
origin_rpy="0 0 ${pi/2}" origin_xyz="${-0.247} ${0.138} ${0.18}"
i_rpy="0 0 0" i_xyz="0 0 0"
mass="0.005"
c_xyz="${-0.247} ${0.138} ${0.18}"
length="0.05"
width="0.065"
height="0.065"
radius="0.02"
matname="orange"
meshfile="package://mini_ros/stl/OpenQuadruped/RIGHT_FOOT.stl"
meshscale="1 1 1" /> <!-- m to mm -->
<xacro:frame_joint name="back_right_leg_foot" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 -0.1265"
parent="back_right_lower_leg" child="back_right_foot"/>
<!-- STATIC Joints -->
<!-- FOOTPRINT TO MAIN BODY-->
<xacro:frame_joint name="base_base" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 0"
parent="base_link" child="base_inertia"/>
<!-- MAIN BODY TO BATTERY -->
<xacro:frame_joint name="base_battery" type="fixed"
origin_rpy="0 0 0" origin_xyz="-0.01 0 -0.0225"
parent="base_link" child="battery"/>
<!-- MAIN BODY TO CHASSIS LEFT -->
<xacro:frame_joint name="base_left" type="fixed"
origin_rpy="0 0 0" origin_xyz="0.00 0.052 0"
parent="base_link" child="chassis_left"/>
<!-- MAIN BODY TO CHASSIS RIGHT -->
<xacro:frame_joint name="base_right" type="fixed"
origin_rpy="0 0 0" origin_xyz="0.00 -0.052 0"
parent="base_link" child="chassis_right"/>
<!-- MAIN BODY TO FRONT -->
<xacro:frame_joint name="base_front" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 0"
parent="base_link" child="front"/>
<!-- MAIN BODY TO BACK -->
<xacro:frame_joint name="base_back" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 0"
parent="base_link" child="back"/>
<!-- MAIN BODY TO FRONT BRACKET -->
<xacro:frame_joint name="base_front_bracket" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 0"
parent="base_link" child="front_bracket"/>
<!-- MAIN BODY TO BACK BRACKET -->
<xacro:frame_joint name="base_back_bracket" type="fixed"
origin_rpy="0 0 0" origin_xyz="0 0 0"
parent="base_link" child="back_bracket"/>
<xacro:quadruped_transmission leg="front_left"/>
<xacro:quadruped_transmission leg="front_right"/>
<xacro:quadruped_transmission leg="back_left"/>
<xacro:quadruped_transmission leg="back_right"/>
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
<robotNamespace>/spot</robotNamespace>
</plugin>
</gazebo>
</robot>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,129 @@
<?xml version="1.0" ?>
<robot 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>
<xacro:macro name="rev_joint" params="name type axis_xyz origin_rpy origin_xyz parent child effort velocity damping friction upper lower">
<joint name="${name}" type="${type}">
<axis xyz="${axis_xyz}" />
<origin rpy="${origin_rpy}" xyz="${origin_xyz}" />
<parent link="${parent}" />
<child link="${child}" />
<limit effort="${effort}" velocity="${velocity}" lower="${lower}" upper="${upper}"/>
<joint_properties damping="${damping}" friction="${friction}" />
</joint>
</xacro:macro>
<xacro:macro name="frame_joint" params="name type origin_rpy origin_xyz parent child">
<joint name="${name}" type="${type}">
<origin rpy="${origin_rpy}" xyz="${origin_xyz}" />
<parent link="${parent}" />
<child link="${child}" />
</joint>
</xacro:macro>
<xacro:macro name="mesh_link" params="name origin_xyz origin_rpy meshfile meshscale c_xyz matname mass i_xyz i_rpy length width height">
<link name="${name}">
<visual>
<origin rpy="${origin_rpy}" xyz="${origin_xyz}" />
<geometry>
<mesh filename="${meshfile}" scale="${meshscale}"/>
</geometry>
<material name="${matname}"/>
</visual>
<collision>
<origin rpy="${origin_rpy}" xyz="${c_xyz}" />
<geometry>
<box size="${length} ${width} ${height}" />
</geometry>
</collision>
<inertial>
<mass value="${mass}" />
<origin rpy="${i_rpy}" xyz="${i_xyz}" /> <!-- Inertial Axes -->
<inertia ixx="${mass * (width * width + height * height)/12.0}" ixy="${0}" ixz="${0}" iyx="${0}" iyy="${mass * (length * length + height * height)/12.0}" iyz="${0}" izx="${0}" izy="${0}" izz="${mass * (length * length + width * width)/12.0}" />
</inertial>
</link>
<gazebo reference="${name}">
<xacro:if value="${matname == 'black'}">
<material>Gazebo/Black</material>
</xacro:if>
<xacro:if value="${matname == 'orange'}">
<material>Gazebo/Orange</material>
</xacro:if>
</gazebo>
</xacro:macro>
<xacro:macro name="mesh_link_sphere" params="name origin_xyz origin_rpy meshfile meshscale c_xyz matname mass i_xyz i_rpy length width height radius">
<link name="${name}">
<visual>
<origin rpy="${origin_rpy}" xyz="${origin_xyz}" />
<geometry>
<mesh filename="${meshfile}" scale="${meshscale}"/>
</geometry>
<material name="${matname}"/>
</visual>
<collision>
<origin rpy="${origin_rpy}" xyz="${c_xyz}" />
<geometry>
<mesh filename="${meshfile}" scale="${meshscale}"/>
</geometry>
<contact_coefficients mu="10.1"/>
</collision>
<inertial>
<mass value="${mass}" />
<origin rpy="${i_rpy}" xyz="${i_xyz}" /> <!-- Inertial Axes -->
<inertia ixx="${mass * (width * width + height * height)/12.0}" ixy="${0}" ixz="${0}" iyx="${0}" iyy="${mass * (length * length + height * height)/12.0}" iyz="${0}" izx="${0}" izy="${0}" izz="${mass * (length * length + width * width)/12.0}" />
</inertial>
</link>
<gazebo reference="${name}">
<kp>1000000.0</kp>
<kd>1.0</kd>
<mu1>0.8</mu1>
<mu2>0.8</mu2>
<maxVel>0.0</maxVel>
<minDepth>0.001</minDepth>
<material>Gazebo/Orange</material>
</gazebo>
</xacro:macro>
<!-- 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>
@@ -0,0 +1,37 @@
<?xml version="1.0" ?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="quadruped_transmission" params="leg ">
<transmission name="${leg}_hip_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_${leg}_hip">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${leg}_hip_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="${leg}_upper_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_${leg}_lower_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${leg}_upper_leg_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="${leg}_lower_leg_joint_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="motor_${leg}_upper_leg">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${leg}_lower_joint_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
</xacro:macro>
</robot>