proper robot model from inshape

This commit is contained in:
Björn Ellensohn 2023-06-12 09:44:01 +02:00
parent 6f9121f5ed
commit d36ef809f6
21 changed files with 860 additions and 163 deletions

BIN
mesh/base_frame.stl Normal file

Binary file not shown.

BIN
mesh/camera_frame.stl Normal file

Binary file not shown.

BIN
mesh/caster_angle.stl Normal file

Binary file not shown.

Binary file not shown.

BIN
mesh/caster_connector.stl Normal file

Binary file not shown.

BIN
mesh/caster_frame_left.stl Normal file

Binary file not shown.

BIN
mesh/caster_frame_right.stl Normal file

Binary file not shown.

BIN
mesh/caster_frame_top.stl Normal file

Binary file not shown.

BIN
mesh/caster_wheel.stl Normal file

Binary file not shown.

BIN
mesh/laser_frame.stl Normal file

Binary file not shown.

BIN
mesh/left_motor.stl Normal file

Binary file not shown.

BIN
mesh/left_motor_frame.stl Normal file

Binary file not shown.

BIN
mesh/left_wheel.stl Normal file

Binary file not shown.

BIN
mesh/motor_bar_frame.stl Normal file

Binary file not shown.

BIN
mesh/right_motor.stl Normal file

Binary file not shown.

BIN
mesh/right_motor_frame.stl Normal file

Binary file not shown.

BIN
mesh/wheel_frame.stl Normal file

Binary file not shown.

View File

@ -13,6 +13,7 @@ setup(
['resource/' + package_name]), ['resource/' + package_name]),
('share/' + package_name, ['package.xml']), ('share/' + package_name, ['package.xml']),
(os.path.join('share', package_name, 'urdf'), glob('urdf/*.xacro')), (os.path.join('share', package_name, 'urdf'), glob('urdf/*.xacro')),
(os.path.join('share', package_name, 'mesh'), glob('mesh/*.stl')),
], ],
install_requires=['setuptools'], install_requires=['setuptools'],
zip_safe=True, zip_safe=True,

View File

@ -5,215 +5,394 @@
<!-- Constants for robot dimensions --> <!-- Constants for robot dimensions -->
<xacro:property name="PI" value="3.1415926535897931"/> <xacro:property name="PI" value="3.1415926535897931"/>
<xacro:property name="base_mass" value="0.3" /> <!-- arbitrary value for base mass --> <xacro:property name="base_mass" value="0.3" />
<xacro:property name="base_width" value="0.25" /> <!-- Updated wheel spacing to 25cm --> <!-- arbitrary value for base mass -->
<xacro:property name="base_width" value="0.25" />
<!-- Updated wheel spacing to 25cm -->
<xacro:property name="base_length" value="0.34" /> <xacro:property name="base_length" value="0.34" />
<xacro:property name="base_height" value="0.1" /> <xacro:property name="base_height" value="0.1" />
<xacro:property name="wheel_mass" value="0.3" /> <!-- arbitrary value for wheel mass --> <xacro:property name="wheel_mass" value="0.3" />
<!-- arbitrary value for wheel mass -->
<xacro:property name="wheel_len" value="0.020" /> <xacro:property name="wheel_len" value="0.020" />
<xacro:property name="wheel_radius" value="0.0625" /> <xacro:property name="wheel_radius" value="0.0625" />
<xacro:property name="caster_wheel_mass" value="0.1" /> <!-- arbitrary value for caster wheel mass --> <xacro:property name="caster_wheel_mass" value="0.1" />
<!-- arbitrary value for caster wheel mass -->
<xacro:property name="caster_wheel_radius" value="0.04" /> <xacro:property name="caster_wheel_radius" value="0.04" />
<xacro:property name="z_offset" value="-${base_height/2}" /> <!-- Space btw top of beam and the each joint --> <xacro:property name="z_offset" value="-${base_height/2}" />
<!-- Space btw top of beam and the each joint -->
<!-- Base Link --> <!-- Base Link -->
<link name="${prefix}base_link"> <link name="${prefix}base_link">
<collision> <visual>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="1.2116163827517698533e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry> <geometry>
<box size="${base_length} ${base_width} ${base_height}"/> <!-- Updated base dimensions --> <mesh filename="file://$(find bot_mini_description)/mesh/right_motor.stl" />
</geometry>
<material name="right_motor_material">
<color rgba="0.49803921568627451677 0.49803921568627451677 0.49803921568627451677 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.2116163827517698533e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/right_motor.stl" />
</geometry> </geometry>
</collision> </collision>
<visual> <visual>
<origin xyz="0 0 ${base_height/2}" rpy="0 0 0"/> <origin xyz="1.142227443712697323e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry> <geometry>
<box size="${base_length} ${base_width} ${base_height}"/> <!-- Updated base dimensions --> <mesh filename="file://$(find bot_mini_description)/mesh/motor_bar_frame.stl" />
</geometry> </geometry>
<material name="orange"/> <material name="motor_bar_frame_material">
<color rgba="0.91764705882352937127 0.91764705882352937127 0.91764705882352937127 1.0" />
</material>
</visual> </visual>
<collision>
<origin xyz="1.142227443712697323e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/motor_bar_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="1.142227443712697323e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/base_frame.stl" />
</geometry>
<material name="base_frame_material">
<color rgba="0.91764705882352937127 0.91764705882352937127 0.91764705882352937127 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.142227443712697323e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/base_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="7.952827485173360274e-17 -0.4790000000000002589 -0.045000000000000012212" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/left_motor.stl" />
</geometry>
<material name="left_motor_material">
<color rgba="0.49803921568627451677 0.49803921568627451677 0.49803921568627451677 1.0" />
</material>
</visual>
<collision>
<origin xyz="7.952827485173360274e-17 -0.4790000000000002589 -0.045000000000000012212" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/left_motor.stl" />
</geometry>
</collision>
<visual>
<origin xyz="7.4868290514223760072e-17 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_connector.stl" />
</geometry>
<material name="caster_connector_material">
<color rgba="0.91764705882352937127 0.91764705882352937127 0.91764705882352937127 1.0" />
</material>
</visual>
<collision>
<origin xyz="7.4868290514223760072e-17 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_connector.stl" />
</geometry>
</collision>
<visual>
<origin xyz="1.1422274437126975695e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/right_motor_frame.stl" />
</geometry>
<material name="right_motor_frame_material">
<color rgba="0.08627450980392156743 0.31764705882352939348 0.69019607843137253944 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.1422274437126975695e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/right_motor_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="8.6467168755640818792e-17 -0.47900000000000020339 -0.04500000000000002609" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/left_motor_frame.stl" />
</geometry>
<material name="left_motor_frame_material">
<color rgba="0.08627450980392156743 0.31764705882352939348 0.69019607843137253944 1.0" />
</material>
</visual>
<collision>
<origin xyz="8.6467168755640818792e-17 -0.47900000000000020339 -0.04500000000000002609" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/left_motor_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="1.1834508674736059205e-16 -0.4790000000000002589 -0.045000000000000012212" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/laser_frame.stl" />
</geometry>
<material name="laser_frame_material">
<color rgba="0.49803921568627451677 0.49803921568627451677 0.49803921568627451677 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.1834508674736059205e-16 -0.4790000000000002589 -0.045000000000000012212" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/laser_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="7.4868290514223760072e-17 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_angle.stl" />
</geometry>
<material name="caster_angle_material">
<color rgba="0.64705882352941179736 0.64705882352941179736 0.64705882352941179736 1.0" />
</material>
</visual>
<collision>
<origin xyz="7.4868290514223760072e-17 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_angle.stl" />
</geometry>
</collision>
<inertial> <inertial>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="7.8715304751559223009e-17 -0.50594215569207112715 -0.048387297397152334577" rpy="0 0 0" />
<mass value="${base_mass}"/> <mass value="8.4777020573643113721" />
<inertia <inertia ixx="0.091076661684079157633" ixy="1.1626534456871032806e-17" ixz="2.9892835648942556204e-18" iyy="0.055622455227950687306" iyz="-0.010811144091914795182" izz="0.1312992311107717136" />
ixx="${base_mass / 12.0 * (base_length*base_length + base_height*base_height)}" ixy="0.0" ixz="0.0"
iyy="${base_mass / 12.0 * (base_height*base_height + base_width*base_width)}" iyz="0.0"
izz="${base_mass / 12.0 * (base_width*base_width + base_length*base_length)}"/>
</inertial> </inertial>
</link> </link>
<joint name="${prefix}left_wheel_joint" type="continuous"> <!-- right wheel joint -->
<parent link="${prefix}base_link"/> <joint name="${prefix}right_wheel_joint" type="revolute">
<child link="${prefix}left_wheel"/> <origin xyz="-0.12499999999999993061 -0.58900000000000007905 -0.10500000000000000999" rpy="-1.570796326794896558 -2.2204460492503130808e-16 -1.57079632679489678" />
<origin xyz="${base_length/2} 0 ${z_offset}" rpy="0 0 0"/> <!-- Updated wheel position -->
<axis xyz="0 1 0"/>
<dynamics damping="0.2"/>
</joint>
<!-- left wheel Link -->
<link name="${prefix}left_wheel">
<collision>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<geometry>
<cylinder length="${wheel_len}" radius="${wheel_radius}"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<geometry>
<cylinder length="${wheel_len}" radius="${wheel_radius}"/>
</geometry>
<material name="black"/>
</visual>
<inertial>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<mass value="${wheel_mass}"/>
<inertia
ixx="${wheel_mass / 12.0 * (3*wheel_radius + wheel_len*wheel_len)}" ixy="0.0" ixz="0.0"
iyy="${wheel_mass / 12.0 * wheel_radius*wheel_radius}" iyz="0.0"
izz="${wheel_mass / 12.0 * wheel_radius*wheel_radius}"/>
</inertial>
</link>
<joint name="${prefix}right_wheel_joint" type="continuous">
<parent link="${prefix}base_link" /> <parent link="${prefix}base_link" />
<child link="${prefix}right_wheel" /> <child link="${prefix}right_wheel" />
<origin xyz="${base_length/2} 0 ${z_offset}" rpy="0 0 0"/> <!-- Updated wheel position --> <axis xyz="0 0 1" />
<axis xyz="0 -1 0"/> <limit effort="1" velocity="20" />
<dynamics damping="0.2"/> <joint_properties friction="0.0" />
</joint> </joint>
<!-- right wheel Link --> <!-- right wheel Link -->
<link name="${prefix}right_wheel"> <link name="${prefix}right_wheel">
<collision> <visual>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/> <origin xyz="-0.10999999999999998668 0.060000000000000011657 0.125" rpy="-1.570796326794896558 -1.570796326794896558 0" />
<geometry> <geometry>
<cylinder length="${wheel_len}" radius="${wheel_radius}"/> <mesh filename="file://$(find bot_mini_description)/mesh/left_wheel.stl" />
</geometry>
<material name="left_wheel_material">
<color rgba="0.50196078431372548323 0.50196078431372548323 0.50196078431372548323 1.0" />
</material>
</visual>
<collision>
<origin xyz="-0.10999999999999998668 0.060000000000000011657 0.125" rpy="-1.570796326794896558 -1.570796326794896558 0" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/left_wheel.stl" />
</geometry> </geometry>
</collision> </collision>
<visual>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<geometry>
<cylinder length="${wheel_len}" radius="${wheel_radius}"/>
</geometry>
<material name="black"/>
</visual>
<inertial> <inertial>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/> <origin xyz="1.3877787807814456755e-17 1.3877787807814456755e-17 -0.017500000000000015543" rpy="0 0 0" />
<mass value="${wheel_mass}"/> <mass value="0.43298678305638949038" />
<inertia <inertia ixx="0.00043196650576949035269" ixy="0" ixz="1.8666117243005040269e-36" iyy="0.00043196650576949029848" iyz="0" izz="0.00078373880522818965139" />
ixx="${wheel_mass / 12.0 * (3*wheel_radius + wheel_len*wheel_len)}" ixy="0.0" ixz="0.0"
iyy="${wheel_mass / 12.0 * wheel_radius*wheel_radius}" iyz="0.0"
izz="${wheel_mass / 12.0 * wheel_radius*wheel_radius}"/>
</inertial> </inertial>
</link> </link>
<joint name="${prefix}caster_wheel_joint" type="fixed"> <!-- left wheel joint -->
<joint name="${prefix}left_wheel_joint" type="revolute">
<origin xyz="0.12500000000000013878 -0.58900000000000007905 -0.10500000000000003775" rpy="1.57079632679489678 -1.1102230246251567869e-16 -1.570796326794896558" />
<parent link="${prefix}base_link" />
<child link="${prefix}left_wheel" />
<axis xyz="0 0 1" />
<limit effort="1" velocity="20" />
<joint_properties friction="0.0" />
</joint>
<!-- left wheel Link -->
<link name="${prefix}left_wheel">
<visual>
<origin xyz="-0.10999999999999998668 0.05999999999999999778 0.125" rpy="-1.570796326794896558 -1.570796326794896558 0" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/left_wheel.stl" />
</geometry>
<material name="left_wheel_material">
<color rgba="0.50196078431372548323 0.50196078431372548323 0.50196078431372548323 1.0" />
</material>
</visual>
<collision>
<origin xyz="-0.10999999999999998668 0.05999999999999999778 0.125" rpy="-1.570796326794896558 -1.570796326794896558 0" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/left_wheel.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="1.3877787807814456755e-17 0 -0.017500000000000015543" rpy="0 0 0" />
<mass value="0.43298678305638949038" />
<inertia ixx="0.00043196650576949035269" ixy="1.4778173856800390343e-52" ixz="-4.8081924471597460774e-36" iyy="0.00043196650576949029848" iyz="0" izz="0.00078373880522818965139" />
</inertial>
</link>
<!-- caster wheel joint -->
<joint name="${prefix}caster_wheel_joint" type="revolute">
<origin xyz="5.3368019332749957491e-17 -0.29900000000000009903 -0.064999999999999974465" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<parent link="${prefix}base_link" /> <parent link="${prefix}base_link" />
<child link="${prefix}caster_wheel" /> <child link="${prefix}caster_wheel" />
<origin xyz="${-base_length/2} 0 ${z_offset}" rpy="0 0 0"/> <!-- Updated caster wheel position --> <axis xyz="0 0 1" />
<limit effort="1" velocity="20" />
<joint_properties friction="0.0" />
</joint> </joint>
<!-- caster wheel Link --> <!-- caster wheel Link -->
<link name="${prefix}caster_wheel"> <link name="${prefix}caster_wheel">
<collision> <visual>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="1.1302212892091925974e-17 5.5511151231257827021e-17 0" rpy="3.141592653589793116 -8.3802055560433424155e-17 -3.141592653589793116" />
<geometry> <geometry>
<sphere radius="${caster_wheel_radius}"/> <mesh filename="file://$(find bot_mini_description)/mesh/caster_wheel.stl" />
</geometry>
<material name="caster_wheel_material">
<color rgba="0.50196078431372548323 0.50196078431372548323 0.50196078431372548323 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.1302212892091925974e-17 5.5511151231257827021e-17 0" rpy="3.141592653589793116 -8.3802055560433424155e-17 -3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_wheel.stl" />
</geometry> </geometry>
</collision> </collision>
<visual> <visual>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="2.6961896103443574151e-18 0 0" rpy="3.141592653589793116 -0 0" />
<geometry> <geometry>
<sphere radius="${caster_wheel_radius}"/> <mesh filename="file://$(find bot_mini_description)/mesh/caster_bearing_frame.stl" />
</geometry> </geometry>
<material name="white"/> <material name="caster_bearing_frame_material">
<color rgba="0.80000000000000004441 0.80000000000000004441 0.80000000000000004441 1.0" />
</material>
</visual> </visual>
<collision>
<origin xyz="2.6961896103443574151e-18 0 0" rpy="3.141592653589793116 -0 0" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_bearing_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_frame_left.stl" />
</geometry>
<material name="caster_frame_left_material">
<color rgba="0.90196078431372550543 0.90196078431372550543 0.90196078431372550543 1.0" />
</material>
</visual>
<collision>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_frame_left.stl" />
</geometry>
</collision>
<visual>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_frame_top.stl" />
</geometry>
<material name="caster_frame_top_material">
<color rgba="0.80000000000000004441 0.80000000000000004441 0.80000000000000004441 1.0" />
</material>
</visual>
<collision>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_frame_top.stl" />
</geometry>
</collision>
<visual>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_frame_right.stl" />
</geometry>
<material name="caster_frame_right_material">
<color rgba="0.90196078431372550543 0.90196078431372550543 0.90196078431372550543 1.0" />
</material>
</visual>
<collision>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/caster_frame_right.stl" />
</geometry>
</collision>
<inertial> <inertial>
<origin xyz="0 0 0" rpy="0 0 0"/> <origin xyz="8.4447232280069085184e-18 -0.02637752354625919754 -0.040087257391101464854" rpy="0 0 0" />
<mass value="${caster_wheel_mass}"/> <mass value="0.4365196214157913146" />
<inertia <inertia ixx="0.00065612682799630025251" ixy="2.4352197233561134748e-20" ixz="4.2351647362715016953e-20" iyy="0.0005155380872198755916" iyz="-0.00017138258993622224827" izz="0.00028021186492738366612" />
ixx="${2.0/5.0 * caster_wheel_mass * caster_wheel_radius * caster_wheel_radius}"
ixy="0.0" ixz="0.0"
iyy="${2.0/5.0 * caster_wheel_mass * caster_wheel_radius * caster_wheel_radius}"
iyz="0.0"
izz="${2.0/5.0 * caster_wheel_mass * caster_wheel_radius * caster_wheel_radius}"/>
</inertial> </inertial>
</link> </link>
<!-- laser_link --> <!-- laser_link -->
<link name="${prefix}laser_link"> <link name="${prefix}laser_link">
<collision> <visual>
<origin xyz="${base_length/2} 0 ${base_height}" rpy="0 0 0"/> <origin xyz="-4.1223423760908350982e-18 0.13500000000000000888 0.025000000000000001388" rpy="3.141592653589793116 -0 1.0263416486754026723e-48" />
<geometry> <geometry>
<box size="0.1 0.1 0.1"/> <mesh filename="file://$(find bot_mini_description)/mesh/laser_frame.stl"/>
</geometry>
<material name="laser_frame_material">
<color rgba="0.49803921568627451677 0.49803921568627451677 0.49803921568627451677 1.0"/>
</material>
</visual>
<collision>
<origin xyz="-4.1223423760908350982e-18 0.13500000000000000888 0.025000000000000001388" rpy="3.141592653589793116 -0 1.0263416486754026723e-48" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/laser_frame.stl"/>
</geometry> </geometry>
</collision> </collision>
<visual>
<origin xyz="${base_length/2} 0 ${base_height}" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.1 0.1"/>
</geometry>
<material name="green"/>
</visual>
<inertial> <inertial>
<origin xyz="${base_length/2} 0 ${base_height}" rpy="0 0 0"/> <origin xyz="8.0502568807930242195e-21 5.5511151231257827021e-17 -0.015265498838362610845" rpy="0 0 0"/>
<mass value="0.1"/> <mass value="0.065307030550339775776" />
<inertia <inertia ixx="1.578111853789072904e-05" ixy="-4.8590457654361857326e-53" ixz="1.0816309858643348454e-52" iyy="1.5781118537890654501e-05" iyz="9.8088682514084063618e-38" izz="1.9760068210357051077e-05" />
ixx="0.001" ixy="0.0" ixz="0.0"
iyy="0.001" iyz="0.0"
izz="0.001"/>
</inertial> </inertial>
</link> </link>
<!-- Laser Joint -->
<joint name="${prefix}laser_joint" type="revolute">
<origin xyz="8.9609515272227915335e-17 -0.61400000000000021227 -0.019999999999999972661" rpy="-3.141592653589793116 -6.1629758220391519929e-33 1.1102230246251560474e-16" />
<parent link="base_link" />
<child link="laser_link" />
<axis xyz="0 0 1"/>
<limit effort="1" velocity="20" />
<joint_properties friction="0.0"/>
</joint>
<!-- camera_link --> <!-- camera_link -->
<link name="${prefix}camera_link"> <link name="${prefix}camera_link">
<collision> <visual>
<origin xyz="${base_length/2} 0 0" rpy="0 0 0"/> <origin xyz="3.0814879110195773649e-32 0 0" rpy="-1.570796326794896558 2.775557561562890365e-16 -9.2444637330585569324e-33" />
<geometry> <geometry>
<box size="0.1 0.1 0.1"/> <mesh filename="file://$(find bot_mini_description)/mesh/camera_frame.stl"/>
</geometry>
<material name="hikvision_ds-u02_material">
<color rgba="0.26274509803921569651 0.28235294117647058432 0.30196078431372547213 1.0"/>
</material>
</visual>
<collision>
<origin xyz="3.0814879110195773649e-32 0 0" rpy="-1.570796326794896558 2.775557561562890365e-16 -9.2444637330585569324e-33" />
<geometry>
<mesh filename="file://$(find bot_mini_description)/mesh/camera_frame.stl"/>
</geometry> </geometry>
</collision> </collision>
<visual>
<origin xyz="${base_length/2} 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.1 0.1"/>
</geometry>
<material name="blue"/>
</visual>
<inertial> <inertial>
<origin xyz="${base_length/2} 0 0" rpy="0 0 0"/> <origin xyz="5.3378961738545780533e-07 0.0016484827975361904598 -0.020840554768345873754" rpy="0 0 0"/>
<mass value="0.1"/> <mass value="0.064008494238512375629" />
<inertia <inertia ixx="1.7394518695567359414e-05" ixy="-4.8731789985706151619e-10" ixz="-1.7982620680951681188e-11" iyy="3.2074360900148983727e-05" iyz="2.0892555595878115295e-06" izz="2.8321439372619351021e-05" />
ixx="0.001" ixy="0.0" ixz="0.0"
iyy="0.001" iyz="0.0"
izz="0.001"/>
</inertial> </inertial>
</link> </link>
<!-- Base Joint --> <!-- Camera Joint -->
<joint name="${prefix}base_joint" type="fixed"> <joint name="${prefix}camera_joint" type="revolute">
<origin xyz="9.7569399001892381731e-17 -0.6290000000000002256 -0.045000000000000005274" rpy="6.1062266354383530837e-16 1.1102230246251567869e-16 3.141592653589793116" />
<parent link="${prefix}base_link" /> <parent link="${prefix}base_link" />
<child link="${prefix}laser_link"/>
<origin xyz="0 0 ${base_height}" rpy="0 0 0"/>
</joint>
<!-- Front Joint -->
<joint name="${prefix}front_joint" type="fixed">
<parent link="${prefix}laser_link"/>
<child link="${prefix}camera_link" /> <child link="${prefix}camera_link" />
<origin xyz="${base_length/2} 0 ${base_height}" rpy="0 0 0"/> <axis xyz="0 0 1"/>
<limit effort="1" velocity="20" />
<joint_properties friction="0.0"/>
</joint> </joint>
</xacro:macro> </xacro:macro>

View File

@ -0,0 +1,223 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="diffbot" params="prefix">
<!-- Constants for robot dimensions -->
<xacro:property name="PI" value="3.1415926535897931"/>
<xacro:property name="base_mass" value="0.3" /> <!-- arbitrary value for base mass -->
<xacro:property name="base_width" value="0.25" /> <!-- Updated wheel spacing to 25cm -->
<xacro:property name="base_length" value="0.34" />
<xacro:property name="base_height" value="0.1" />
<xacro:property name="wheel_mass" value="0.3" /> <!-- arbitrary value for wheel mass -->
<xacro:property name="wheel_len" value="0.020" />
<xacro:property name="wheel_radius" value="0.0625" />
<xacro:property name="caster_wheel_mass" value="0.1" /> <!-- arbitrary value for caster wheel mass -->
<xacro:property name="caster_wheel_radius" value="0.04" />
<xacro:property name="z_offset" value="-${base_height/2}" /> <!-- Space btw top of beam and the each joint -->
<!-- Base Link -->
<link name="${prefix}base_link">
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="${base_length} ${base_width} ${base_height}"/> <!-- Updated base dimensions -->
</geometry>
</collision>
<visual>
<origin xyz="0 0 ${base_height/2}" rpy="0 0 0"/>
<geometry>
<box size="${base_length} ${base_width} ${base_height}"/> <!-- Updated base dimensions -->
</geometry>
<material name="orange"/>
</visual>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0"/>
<mass value="${base_mass}"/>
<inertia
ixx="${base_mass / 12.0 * (base_length*base_length + base_height*base_height)}" ixy="0.0" ixz="0.0"
iyy="${base_mass / 12.0 * (base_height*base_height + base_width*base_width)}" iyz="0.0"
izz="${base_mass / 12.0 * (base_width*base_width + base_length*base_length)}"/>
</inertial>
</link>
<joint name="${prefix}left_wheel_joint" type="continuous">
<parent link="${prefix}base_link"/>
<child link="${prefix}left_wheel"/>
<origin xyz="${base_length/2} 0 ${z_offset}" rpy="0 0 0"/> <!-- Updated wheel position -->
<axis xyz="0 1 0"/>
<dynamics damping="0.2"/>
</joint>
<!-- left wheel Link -->
<link name="${prefix}left_wheel">
<collision>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<geometry>
<cylinder length="${wheel_len}" radius="${wheel_radius}"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<geometry>
<cylinder length="${wheel_len}" radius="${wheel_radius}"/>
</geometry>
<material name="black"/>
</visual>
<inertial>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<mass value="${wheel_mass}"/>
<inertia
ixx="${wheel_mass / 12.0 * (3*wheel_radius + wheel_len*wheel_len)}" ixy="0.0" ixz="0.0"
iyy="${wheel_mass / 12.0 * wheel_radius*wheel_radius}" iyz="0.0"
izz="${wheel_mass / 12.0 * wheel_radius*wheel_radius}"/>
</inertial>
</link>
<joint name="${prefix}right_wheel_joint" type="continuous">
<parent link="${prefix}base_link"/>
<child link="${prefix}right_wheel"/>
<origin xyz="${base_length/2} 0 ${z_offset}" rpy="0 0 0"/> <!-- Updated wheel position -->
<axis xyz="0 -1 0"/>
<dynamics damping="0.2"/>
</joint>
<!-- right wheel Link -->
<link name="${prefix}right_wheel">
<collision>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<geometry>
<cylinder length="${wheel_len}" radius="${wheel_radius}"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<geometry>
<cylinder length="${wheel_len}" radius="${wheel_radius}"/>
</geometry>
<material name="black"/>
</visual>
<inertial>
<origin xyz="0 0 0" rpy="${PI/2} 0 0"/>
<mass value="${wheel_mass}"/>
<inertia
ixx="${wheel_mass / 12.0 * (3*wheel_radius + wheel_len*wheel_len)}" ixy="0.0" ixz="0.0"
iyy="${wheel_mass / 12.0 * wheel_radius*wheel_radius}" iyz="0.0"
izz="${wheel_mass / 12.0 * wheel_radius*wheel_radius}"/>
</inertial>
</link>
<joint name="${prefix}caster_wheel_joint" type="fixed">
<parent link="${prefix}base_link"/>
<child link="${prefix}caster_wheel"/>
<origin xyz="${-base_length/2} 0 ${z_offset}" rpy="0 0 0"/> <!-- Updated caster wheel position -->
</joint>
<!-- caster wheel Link -->
<link name="${prefix}caster_wheel">
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<sphere radius="${caster_wheel_radius}"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<sphere radius="${caster_wheel_radius}"/>
</geometry>
<material name="white"/>
</visual>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0"/>
<mass value="${caster_wheel_mass}"/>
<inertia
ixx="${2.0/5.0 * caster_wheel_mass * caster_wheel_radius * caster_wheel_radius}"
ixy="0.0" ixz="0.0"
iyy="${2.0/5.0 * caster_wheel_mass * caster_wheel_radius * caster_wheel_radius}"
iyz="0.0"
izz="${2.0/5.0 * caster_wheel_mass * caster_wheel_radius * caster_wheel_radius}"/>
</inertial>
</link>
<!-- laser_link -->
<link name="${prefix}laser_link">
<collision>
<origin xyz="${base_length/2} 0 ${base_height}" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.1 0.1"/>
</geometry>
</collision>
<visual>
<origin xyz="${base_length/2} 0 ${base_height}" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.1 0.1"/>
</geometry>
<material name="green"/>
</visual>
<inertial>
<origin xyz="${base_length/2} 0 ${base_height}" rpy="0 0 0"/>
<mass value="0.1"/>
<inertia
ixx="0.001" ixy="0.0" ixz="0.0"
iyy="0.001" iyz="0.0"
izz="0.001"/>
</inertial>
</link>
<!-- camera_link -->
<link name="${prefix}camera_link">
<collision>
<origin xyz="${base_length/2} 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.1 0.1"/>
</geometry>
</collision>
<visual>
<origin xyz="${base_length/2} 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.1 0.1"/>
</geometry>
<material name="blue"/>
</visual>
<inertial>
<origin xyz="${base_length/2} 0 0" rpy="0 0 0"/>
<mass value="0.1"/>
<inertia
ixx="0.001" ixy="0.0" ixz="0.0"
iyy="0.001" iyz="0.0"
izz="0.001"/>
</inertial>
</link>
<!-- Base Joint -->
<joint name="${prefix}base_joint" type="fixed">
<parent link="${prefix}base_link"/>
<child link="${prefix}laser_link"/>
<origin xyz="0 0 ${base_height}" rpy="0 0 0"/>
</joint>
<!-- Front Joint -->
<joint name="${prefix}front_joint" type="fixed">
<parent link="${prefix}laser_link"/>
<child link="${prefix}camera_link"/>
<origin xyz="${base_length/2} 0 ${base_height}" rpy="0 0 0"/>
</joint>
</xacro:macro>
</robot>

294
urdf/robot.urdf Normal file
View File

@ -0,0 +1,294 @@
<robot name="onshape">
<link name="${prefix}base_link">
<visual>
<origin xyz="1.2116163827517698533e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///right_motor.stl" />
</geometry>
<material name="right_motor_material">
<color rgba="0.49803921568627451677 0.49803921568627451677 0.49803921568627451677 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.2116163827517698533e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///right_motor.stl" />
</geometry>
</collision>
<visual>
<origin xyz="1.142227443712697323e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///motor_bar_frame.stl" />
</geometry>
<material name="motor_bar_frame_material">
<color rgba="0.91764705882352937127 0.91764705882352937127 0.91764705882352937127 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.142227443712697323e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///motor_bar_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="1.142227443712697323e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///base_frame.stl" />
</geometry>
<material name="base_frame_material">
<color rgba="0.91764705882352937127 0.91764705882352937127 0.91764705882352937127 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.142227443712697323e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///base_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="7.952827485173360274e-17 -0.4790000000000002589 -0.045000000000000012212" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///left_motor.stl" />
</geometry>
<material name="left_motor_material">
<color rgba="0.49803921568627451677 0.49803921568627451677 0.49803921568627451677 1.0" />
</material>
</visual>
<collision>
<origin xyz="7.952827485173360274e-17 -0.4790000000000002589 -0.045000000000000012212" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///left_motor.stl" />
</geometry>
</collision>
<visual>
<origin xyz="7.4868290514223760072e-17 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_connector.stl" />
</geometry>
<material name="caster_connector_material">
<color rgba="0.91764705882352937127 0.91764705882352937127 0.91764705882352937127 1.0" />
</material>
</visual>
<collision>
<origin xyz="7.4868290514223760072e-17 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_connector.stl" />
</geometry>
</collision>
<visual>
<origin xyz="1.1422274437126975695e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///right_motor_frame.stl" />
</geometry>
<material name="right_motor_frame_material">
<color rgba="0.08627450980392156743 0.31764705882352939348 0.69019607843137253944 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.1422274437126975695e-16 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///right_motor_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="8.6467168755640818792e-17 -0.47900000000000020339 -0.04500000000000002609" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///left_motor_frame.stl" />
</geometry>
<material name="left_motor_frame_material">
<color rgba="0.08627450980392156743 0.31764705882352939348 0.69019607843137253944 1.0" />
</material>
</visual>
<collision>
<origin xyz="8.6467168755640818792e-17 -0.47900000000000020339 -0.04500000000000002609" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///left_motor_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="1.1834508674736059205e-16 -0.4790000000000002589 -0.045000000000000012212" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///laser_frame.stl" />
</geometry>
<material name="laser_frame_material">
<color rgba="0.49803921568627451677 0.49803921568627451677 0.49803921568627451677 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.1834508674736059205e-16 -0.4790000000000002589 -0.045000000000000012212" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///laser_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="7.4868290514223760072e-17 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_angle.stl" />
</geometry>
<material name="caster_angle_material">
<color rgba="0.64705882352941179736 0.64705882352941179736 0.64705882352941179736 1.0" />
</material>
</visual>
<collision>
<origin xyz="7.4868290514223760072e-17 -0.47900000000000020339 -0.044999999999999998335" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_angle.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="7.8715304751559223009e-17 -0.50594215569207112715 -0.048387297397152334577" rpy="0 0 0" />
<mass value="8.4777020573643113721" />
<inertia ixx="0.091076661684079157633" ixy="1.1626534456871032806e-17" ixz="2.9892835648942556204e-18" iyy="0.055622455227950687306" iyz="-0.010811144091914795182" izz="0.1312992311107717136" />
</inertial>
</link>
<link name="${prefix}right_wheel">
<visual>
<origin xyz="-0.10999999999999998668 0.060000000000000011657 0.125" rpy="-1.570796326794896558 -1.570796326794896558 0" />
<geometry>
<mesh filename="package:///left_wheel.stl" />
</geometry>
<material name="left_wheel_material">
<color rgba="0.50196078431372548323 0.50196078431372548323 0.50196078431372548323 1.0" />
</material>
</visual>
<collision>
<origin xyz="-0.10999999999999998668 0.060000000000000011657 0.125" rpy="-1.570796326794896558 -1.570796326794896558 0" />
<geometry>
<mesh filename="package:///left_wheel.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="1.3877787807814456755e-17 1.3877787807814456755e-17 -0.017500000000000015543" rpy="0 0 0" />
<mass value="0.43298678305638949038" />
<inertia ixx="0.00043196650576949035269" ixy="0" ixz="1.8666117243005040269e-36" iyy="0.00043196650576949029848" iyz="0" izz="0.00078373880522818965139" />
</inertial>
</link>
<joint name="${prefix}right_wheel_joint" type="revolute">
<origin xyz="-0.12499999999999993061 -0.58900000000000007905 -0.10500000000000000999" rpy="-1.570796326794896558 -2.2204460492503130808e-16 -1.57079632679489678" />
<parent link="${prefix}base_link" />
<child link="${prefix}right_wheel" />
<axis xyz="0 0 1" />
<limit effort="1" velocity="20" />
<joint_properties friction="0.0" />
</joint>
<link name="${prefix}left_wheel">
<visual>
<origin xyz="-0.10999999999999998668 0.05999999999999999778 0.125" rpy="-1.570796326794896558 -1.570796326794896558 0" />
<geometry>
<mesh filename="package:///left_wheel.stl" />
</geometry>
<material name="left_wheel_material">
<color rgba="0.50196078431372548323 0.50196078431372548323 0.50196078431372548323 1.0" />
</material>
</visual>
<collision>
<origin xyz="-0.10999999999999998668 0.05999999999999999778 0.125" rpy="-1.570796326794896558 -1.570796326794896558 0" />
<geometry>
<mesh filename="package:///left_wheel.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="1.3877787807814456755e-17 0 -0.017500000000000015543" rpy="0 0 0" />
<mass value="0.43298678305638949038" />
<inertia ixx="0.00043196650576949035269" ixy="1.4778173856800390343e-52" ixz="-4.8081924471597460774e-36" iyy="0.00043196650576949029848" iyz="0" izz="0.00078373880522818965139" />
</inertial>
</link>
<joint name="${prefix}left_wheel_joint" type="revolute">
<origin xyz="0.12500000000000013878 -0.58900000000000007905 -0.10500000000000003775" rpy="1.57079632679489678 -1.1102230246251567869e-16 -1.570796326794896558" />
<parent link="${prefix}base_link" />
<child link="${prefix}left_wheel" />
<axis xyz="0 0 1" />
<limit effort="1" velocity="20" />
<joint_properties friction="0.0" />
</joint>
<link name="${prefix}caster_wheel">
<visual>
<origin xyz="1.1302212892091925974e-17 5.5511151231257827021e-17 0" rpy="3.141592653589793116 -8.3802055560433424155e-17 -3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_wheel.stl" />
</geometry>
<material name="caster_wheel_material">
<color rgba="0.50196078431372548323 0.50196078431372548323 0.50196078431372548323 1.0" />
</material>
</visual>
<collision>
<origin xyz="1.1302212892091925974e-17 5.5511151231257827021e-17 0" rpy="3.141592653589793116 -8.3802055560433424155e-17 -3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_wheel.stl" />
</geometry>
</collision>
<visual>
<origin xyz="2.6961896103443574151e-18 0 0" rpy="3.141592653589793116 -0 0" />
<geometry>
<mesh filename="package:///caster_bearing_frame.stl" />
</geometry>
<material name="caster_bearing_frame_material">
<color rgba="0.80000000000000004441 0.80000000000000004441 0.80000000000000004441 1.0" />
</material>
</visual>
<collision>
<origin xyz="2.6961896103443574151e-18 0 0" rpy="3.141592653589793116 -0 0" />
<geometry>
<mesh filename="package:///caster_bearing_frame.stl" />
</geometry>
</collision>
<visual>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_frame_left.stl" />
</geometry>
<material name="caster_frame_left_material">
<color rgba="0.90196078431372550543 0.90196078431372550543 0.90196078431372550543 1.0" />
</material>
</visual>
<collision>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_frame_left.stl" />
</geometry>
</collision>
<visual>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_frame_top.stl" />
</geometry>
<material name="caster_frame_top_material">
<color rgba="0.80000000000000004441 0.80000000000000004441 0.80000000000000004441 1.0" />
</material>
</visual>
<collision>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_frame_top.stl" />
</geometry>
</collision>
<visual>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_frame_right.stl" />
</geometry>
<material name="caster_frame_right_material">
<color rgba="0.90196078431372550543 0.90196078431372550543 0.90196078431372550543 1.0" />
</material>
</visual>
<collision>
<origin xyz="-1.232595164407830946e-32 0 0" rpy="3.141592653589793116 4.7934256393637874986e-32 -3.141592653589793116" />
<geometry>
<mesh filename="package:///caster_frame_right.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="8.4447232280069085184e-18 -0.02637752354625919754 -0.040087257391101464854" rpy="0 0 0" />
<mass value="0.4365196214157913146" />
<inertia ixx="0.00065612682799630025251" ixy="2.4352197233561134748e-20" ixz="4.2351647362715016953e-20" iyy="0.0005155380872198755916" iyz="-0.00017138258993622224827" izz="0.00028021186492738366612" />
</inertial>
</link>
<joint name="${prefix}caster_wheel_joint" type="revolute">
<origin xyz="5.3368019332749957491e-17 -0.29900000000000009903 -0.064999999999999974465" rpy="-5.5511151231257814695e-17 -0 3.141592653589793116" />
<parent link="${prefix}base_link" />
<child link="${prefix}caster_wheel" />
<axis xyz="0 0 1" />
<limit effort="1" velocity="20" />
<joint_properties friction="0.0" />
</joint>
</robot>