Skip to content

Commit

Permalink
[add]sam_bot_description.urdf
Browse files Browse the repository at this point in the history
  • Loading branch information
Ramune6110 committed Feb 27, 2024
1 parent 0e4d015 commit 7f1a767
Show file tree
Hide file tree
Showing 3 changed files with 254 additions and 1 deletion.
2 changes: 1 addition & 1 deletion launch/tutorial_publishers.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def generate_launch_description():
package_name = 'arcanain_tutorial'
rviz_file_name = "arcanain_tutorial.rviz"

file_path = os.path.expanduser('~/ros2_ws/src/arcanain_tutorial/urdf/robot_model.urdf.xml')
file_path = os.path.expanduser('~/ros2_ws/src/arcanain_tutorial/urdf/sam_bot_description.urdf')

with open(file_path, 'r') as file:
robot_description = file.read()
Expand Down
122 changes: 122 additions & 0 deletions urdf/sam_bot_description.urdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
<?xml version="1.0" ?>
<!-- =================================================================================== -->
<!-- | This document was autogenerated by xacro from sam_bot_description.urdf.xacro | -->
<!-- | EDITING THIS FILE BY HAND IS NOT RECOMMENDED | -->
<!-- =================================================================================== -->
<robot name="sam_bot">
<!-- Robot Base -->
<link name="base_link">
<visual>
<geometry>
<box size="0.42 0.31 0.18"/>
</geometry>
<material name="Cyan">
<color rgba="0 1.0 1.0 1.0"/>
</material>
</visual>
<collision>
<geometry>
<box size="0.42 0.31 0.18"/>
</geometry>
</collision>
<inertial>
<origin rpy="1.5707963267948966 0 1.5707963267948966" xyz="0 0 0"/>
<mass value="15"/>
<inertia ixx="0.261" ixy="0.0" ixz="0.0" iyy="0.34062499999999996" iyz="0.0" izz="0.16062500000000002"/>
</inertial>
</link>
<!-- Robot Footprint -->
<link name="base_footprint">
<inertial>
<origin rpy="1.5707963267948966 0 1.5707963267948966" xyz="0 0 0"/>
<mass value="0"/>
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0"/>
</inertial>
</link>
<joint name="base_joint" type="fixed">
<parent link="base_link"/>
<child link="base_footprint"/>
<origin rpy="0 0 0" xyz="0.0 0.0 -0.15000000000000002"/>
</joint>
<link name="drivewhl_l_link">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.04" radius="0.1"/>
</geometry>
<material name="Gray">
<color rgba="0.5 0.5 0.5 1.0"/>
</material>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.04" radius="0.1"/>
</geometry>
</collision>
<inertial>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<mass value="0.5"/>
<inertia ixx="0.0013166666666666667" ixy="0" ixz="0" iyy="0.0013166666666666667" iyz="0" izz="0.0025000000000000005"/>
</inertial>
</link>
<joint name="drivewhl_l_joint" type="continuous">
<parent link="base_link"/>
<child link="drivewhl_l_link"/>
<origin rpy="0 0 0" xyz="-0.12 0.18 -0.05"/>
<axis xyz="0 1 0"/>
</joint>
<link name="drivewhl_r_link">
<visual>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.04" radius="0.1"/>
</geometry>
<material name="Gray">
<color rgba="0.5 0.5 0.5 1.0"/>
</material>
</visual>
<collision>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.04" radius="0.1"/>
</geometry>
</collision>
<inertial>
<origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
<mass value="0.5"/>
<inertia ixx="0.0013166666666666667" ixy="0" ixz="0" iyy="0.0013166666666666667" iyz="0" izz="0.0025000000000000005"/>
</inertial>
</link>
<joint name="drivewhl_r_joint" type="continuous">
<parent link="base_link"/>
<child link="drivewhl_r_link"/>
<origin rpy="0 0 0" xyz="-0.12 -0.18 -0.05"/>
<axis xyz="0 1 0"/>
</joint>
<link name="front_caster">
<visual>
<geometry>
<sphere radius="0.060000000000000026"/>
</geometry>
<material name="Cyan">
<color rgba="0 1.0 1.0 1.0"/>
</material>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<sphere radius="0.060000000000000026"/>
</geometry>
</collision>
<inertial>
<mass value="0.5"/>
<inertia ixx="0.0007200000000000006" ixy="0.0" ixz="0.0" iyy="0.0007200000000000006" iyz="0.0" izz="0.0007200000000000006"/>
</inertial>
</link>
<joint name="caster_joint" type="fixed">
<parent link="base_link"/>
<child link="front_caster"/>
<origin rpy="0 0 0" xyz="0.14 0.0 -0.09"/>
</joint>
</robot>
131 changes: 131 additions & 0 deletions urdf/sam_bot_description.urdf.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
<?xml version="1.0"?>
<robot name="sam_bot" xmlns:xacro="http://ros.org/wiki/xacro">

<!-- Define robot constants -->
<xacro:property name="base_width" value="0.31"/>
<xacro:property name="base_length" value="0.42"/>
<xacro:property name="base_height" value="0.18"/>

<xacro:property name="wheel_radius" value="0.10"/>
<xacro:property name="wheel_width" value="0.04"/>
<xacro:property name="wheel_ygap" value="0.025"/>
<xacro:property name="wheel_zoff" value="0.05"/>
<xacro:property name="wheel_xoff" value="0.12"/>

<xacro:property name="caster_xoff" value="0.14"/>

<!-- Define some commonly used intertial properties -->
<xacro:macro name="box_inertia" params="m w h d">
<inertial>
<origin xyz="0 0 0" rpy="${pi/2} 0 ${pi/2}"/>
<mass value="${m}"/>
<inertia ixx="${(m/12) * (h*h + d*d)}" ixy="0.0" ixz="0.0" iyy="${(m/12) * (w*w + d*d)}" iyz="0.0" izz="${(m/12) * (w*w + h*h)}"/>
</inertial>
</xacro:macro>

<xacro:macro name="cylinder_inertia" params="m r h">
<inertial>
<origin xyz="0 0 0" rpy="${pi/2} 0 0" />
<mass value="${m}"/>
<inertia ixx="${(m/12) * (3*r*r + h*h)}" ixy = "0" ixz = "0" iyy="${(m/12) * (3*r*r + h*h)}" iyz = "0" izz="${(m/2) * (r*r)}"/>
</inertial>
</xacro:macro>

<xacro:macro name="sphere_inertia" params="m r">
<inertial>
<mass value="${m}"/>
<inertia ixx="${(2/5) * m * (r*r)}" ixy="0.0" ixz="0.0" iyy="${(2/5) * m * (r*r)}" iyz="0.0" izz="${(2/5) * m * (r*r)}"/>
</inertial>
</xacro:macro>

<!-- Robot Base -->
<link name="base_link">
<visual>
<geometry>
<box size="${base_length} ${base_width} ${base_height}"/>
</geometry>
<material name="Cyan">
<color rgba="0 1.0 1.0 1.0"/>
</material>
</visual>

<collision>
<geometry>
<box size="${base_length} ${base_width} ${base_height}"/>
</geometry>
</collision>

<xacro:box_inertia m="15" w="${base_width}" d="${base_length}" h="${base_height}"/>
</link>

<!-- Robot Footprint -->
<link name="base_footprint">
<xacro:box_inertia m="0" w="0" d="0" h="0"/>
</link>

<joint name="base_joint" type="fixed">
<parent link="base_link"/>
<child link="base_footprint"/>
<origin xyz="0.0 0.0 ${-(wheel_radius+wheel_zoff)}" rpy="0 0 0"/>
</joint>

<!-- Wheels -->
<xacro:macro name="wheel" params="prefix x_reflect y_reflect">
<link name="${prefix}_link">
<visual>
<origin xyz="0 0 0" rpy="${pi/2} 0 0"/>
<geometry>
<cylinder radius="${wheel_radius}" length="${wheel_width}"/>
</geometry>
<material name="Gray">
<color rgba="0.5 0.5 0.5 1.0"/>
</material>
</visual>

<collision>
<origin xyz="0 0 0" rpy="${pi/2} 0 0"/>
<geometry>
<cylinder radius="${wheel_radius}" length="${wheel_width}"/>
</geometry>
</collision>

<xacro:cylinder_inertia m="0.5" r="${wheel_radius}" h="${wheel_width}"/>
</link>

<joint name="${prefix}_joint" type="continuous">
<parent link="base_link"/>
<child link="${prefix}_link"/>
<origin xyz="${x_reflect*wheel_xoff} ${y_reflect*(base_width/2+wheel_ygap)} ${-wheel_zoff}" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
</joint>
</xacro:macro>

<xacro:wheel prefix="drivewhl_l" x_reflect="-1" y_reflect="1" />
<xacro:wheel prefix="drivewhl_r" x_reflect="-1" y_reflect="-1" />

<link name="front_caster">
<visual>
<geometry>
<sphere radius="${(wheel_radius+wheel_zoff-(base_height/2))}"/>
</geometry>
<material name="Cyan">
<color rgba="0 1.0 1.0 1.0"/>
</material>
</visual>

<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<sphere radius="${(wheel_radius+wheel_zoff-(base_height/2))}"/>
</geometry>
</collision>

<xacro:sphere_inertia m="0.5" r="${(wheel_radius+wheel_zoff-(base_height/2))}"/>
</link>

<joint name="caster_joint" type="fixed">
<parent link="base_link"/>
<child link="front_caster"/>
<origin xyz="${caster_xoff} 0.0 ${-(base_height/2)}" rpy="0 0 0"/>
</joint>
</robot>

0 comments on commit 7f1a767

Please sign in to comment.