This commit is contained in:
Marcin
2026-05-28 11:37:19 +02:00
commit e8c73b6101
19 changed files with 1048 additions and 0 deletions
+282
View File
@@ -0,0 +1,282 @@
<sdf version='1.10'>
<world name='corn_field_wide'>
<physics name='1ms' type='ignored'>
<max_step_size>0.001</max_step_size>
<real_time_factor>1</real_time_factor>
<real_time_update_rate>1000</real_time_update_rate>
</physics>
<plugin name='gz::sim::systems::Physics' filename='gz-sim-physics-system'/>
<plugin name='gz::sim::systems::UserCommands' filename='gz-sim-user-commands-system'/>
<plugin name='gz::sim::systems::SceneBroadcaster' filename='gz-sim-scene-broadcaster-system'/>
<gravity>0 0 -9.8</gravity>
<scene>
<ambient>0.4 0.4 0.4 1</ambient>
<background>0.7 0.7 0.7 1</background>
<shadows>true</shadows>
<sky>
<clouds>
<speed>0.6</speed> </clouds>
</sky>
</scene>
<model name='ground_plane'>
<static>true</static>
<link name='link'>
<collision name='collision'>
<geometry>
<plane>
<normal>0 0 1</normal>
<size>100 100</size>
</plane>
</geometry>
<surface>
<friction>
<ode>
<mu>100</mu>
<mu2>50</mu2>
</ode>
</friction>
</surface>
</collision>
<visual name='visual'>
<cast_shadows>false</cast_shadows>
<geometry>
<plane>
<normal>0 0 1</normal>
<size>100 100</size>
</plane>
</geometry>
<material>
<ambient>0.2 0.15 0.1 1</ambient>
<diffuse>0.25 0.18 0.12 1</diffuse>
<specular>0 0 0 1</specular> </material>
</visual>
</link>
</model>
<include>
<name>C_0_0</name>
<uri>file://./models/corn.sdf</uri>
<pose>0.02 -0.02 0 0 0 0.44</pose>
</include>
<include>
<name>C_0_1</name>
<uri>file://./models/corn.sdf</uri>
<pose>0.65 0.03 0 0 0 1.57</pose>
</include>
<include>
<name>C_0_2</name>
<uri>file://./models/corn.sdf</uri>
<pose>1.31 -0.01 0 0 0 3.12</pose>
</include>
<include>
<name>C_0_3</name>
<uri>file://./models/corn.sdf</uri>
<pose>1.98 0.04 0 0 0 4.89</pose>
</include>
<include>
<name>C_0_4</name>
<uri>file://./models/corn.sdf</uri>
<pose>2.62 -0.03 0 0 0 0.12</pose>
</include>
<include>
<name>C_0_5</name>
<uri>file://./models/corn.sdf</uri>
<pose>3.25 0.01 0 0 0 2.33</pose>
</include>
<include>
<name>C_0_6</name>
<uri>file://./models/corn.sdf</uri>
<pose>3.91 -0.02 0 0 0 5.67</pose>
</include>
<include>
<name>C_0_7</name>
<uri>file://./models/corn.sdf</uri>
<pose>4.55 0.04 0 0 0 1.11</pose>
</include>
<include>
<name>C_0_8</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.21 -0.01 0 0 0 3.88</pose>
</include>
<include>
<name>C_0_9</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.85 0.02 0 0 0 2.44</pose>
</include>
<include>
<name>C_1_0</name>
<uri>file://./models/corn.sdf</uri>
<pose>-0.05 1.58 0 0 0 6.12</pose>
</include>
<include>
<name>C_1_1</name>
<uri>file://./models/corn.sdf</uri>
<pose>0.62 1.64 0 0 0 0.88</pose>
</include>
<include>
<name>C_1_2</name>
<uri>file://./models/corn.sdf</uri>
<pose>1.28 1.59 0 0 0 2.55</pose>
</include>
<include>
<name>C_1_3</name>
<uri>file://./models/corn.sdf</uri>
<pose>1.92 1.62 0 0 0 4.12</pose>
</include>
<include>
<name>C_1_4</name>
<uri>file://./models/corn.sdf</uri>
<pose>2.58 1.57 0 0 0 0.33</pose>
</include>
<include>
<name>C_1_5</name>
<uri>file://./models/corn.sdf</uri>
<pose>3.21 1.65 0 0 0 1.99</pose>
</include>
<include>
<name>C_1_6</name>
<uri>file://./models/corn.sdf</uri>
<pose>3.88 1.60 0 0 0 3.44</pose>
</include>
<include>
<name>C_1_7</name>
<uri>file://./models/corn.sdf</uri>
<pose>4.52 1.63 0 0 0 5.21</pose>
</include>
<include>
<name>C_1_8</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.18 1.58 0 0 0 0.77</pose>
</include>
<include>
<name>C_1_9</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.81 1.61 0 0 0 2.15</pose>
</include>
<include>
<name>C_2_0</name>
<uri>file://./models/corn.sdf</uri>
<pose>0.08 3.18 0 0 0 1.33</pose>
</include>
<include>
<name>C_2_1</name>
<uri>file://./models/corn.sdf</uri>
<pose>0.71 3.24 0 0 0 4.21</pose>
</include>
<include>
<name>C_2_2</name>
<uri>file://./models/corn.sdf</uri>
<pose>1.35 3.19 0 0 0 0.55</pose>
</include>
<include>
<name>C_2_3</name>
<uri>file://./models/corn.sdf</uri>
<pose>1.99 3.22 0 0 0 2.88</pose>
</include>
<include>
<name>C_2_4</name>
<uri>file://./models/corn.sdf</uri>
<pose>2.65 3.17 0 0 0 5.11</pose>
</include>
<include>
<name>C_2_5</name>
<uri>file://./models/corn.sdf</uri>
<pose>3.28 3.25 0 0 0 1.44</pose>
</include>
<include>
<name>C_2_6</name>
<uri>file://./models/corn.sdf</uri>
<pose>3.94 3.20 0 0 0 3.77</pose>
</include>
<include>
<name>C_2_7</name>
<uri>file://./models/corn.sdf</uri>
<pose>4.58 3.23 0 0 0 6.01</pose>
</include>
<include>
<name>C_2_8</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.24 3.18 0 0 0 0.92</pose>
</include>
<include>
<name>C_2_9</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.88 3.21 0 0 0 3.33</pose>
</include>
<include>
<name>C_3_0</name>
<uri>file://./models/corn.sdf</uri>
<pose>-0.03 4.78 0 0 0 2.45</pose>
</include>
<include>
<name>C_3_1</name>
<uri>file://./models/corn.sdf</uri>
<pose>0.62 4.84 0 0 0 5.12</pose>
</include>
<include>
<name>C_3_2</name>
<uri>file://./models/corn.sdf</uri>
<pose>1.28 4.79 0 0 0 0.15</pose>
</include>
<include>
<name>C_3_3</name>
<uri>file://./models/corn.sdf</uri>
<pose>1.92 4.82 0 0 0 1.88</pose>
</include>
<include>
<name>C_3_4</name>
<uri>file://./models/corn.sdf</uri>
<pose>2.58 4.77 0 0 0 4.56</pose>
</include>
<include>
<name>C_3_5</name>
<uri>file://./models/corn.sdf</uri>
<pose>3.21 4.85 0 0 0 0.67</pose>
</include>
<include>
<name>C_3_6</name>
<uri>file://./models/corn.sdf</uri>
<pose>3.88 4.80 0 0 0 3.21</pose>
</include>
<include>
<name>C_3_7</name>
<uri>file://./models/corn.sdf</uri>
<pose>4.52 4.83 0 0 0 5.44</pose>
</include>
<include>
<name>C_3_8</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.18 4.78 0 0 0 1.22</pose>
</include>
<include>
<name>C_3_9</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.81 4.81 0 0 0 4.01</pose>
</include>
<include>
<name>C_3_9</name>
<uri>file://./models/corn.sdf</uri>
<pose>5.81 4.81 0 0 0 4.01</pose>
</include>
<include>
<uri>file://./robot_with_wheels.sdf</uri>
<pose>7.81 0 3.3 0 0 4.01</pose>
</include>
<light name='sun' type='directional'>
<pose>0 0 10 0 0 0</pose>
<cast_shadows>true</cast_shadows>
<intensity>1</intensity>
<direction>-0.5 0.1 -0.9</direction>
<diffuse>0.8 0.8 0.8 1</diffuse>
</light>
</world>
</sdf>
@@ -0,0 +1,19 @@
material vrc/mud
{
technique
{
pass
{
ambient 0.5 0.5 0.5 1.0
diffuse 0.5 0.5 0.5 1.0
specular 0.2 0.2 0.2 1.0 12.5
texture_unit
{
texture mud_soft_leaves.png
filtering anistropic
max_anisotropy 16
}
}
}
}
+80
View File
@@ -0,0 +1,80 @@
<?xml version="1.0"?>
<sdf version="1.4">
<model name="mud_box">
<static>true</static>
<link name="link">
<collision name="collision">
<geometry>
<box>
<size>8 10 0.2</size>
</box>
</geometry>
</collision>
<visual name="visual_1">
<pose>-2 2.5 0 0 0 0</pose>
<cast_shadows>false</cast_shadows>
<geometry>
<box>
<size>4 5 0.2</size>
</box>
</geometry>
<material>
<script>
<uri>model://mud_box/materials/scripts</uri>
<uri>model://mud_box/materials/textures</uri>
<name>vrc/mud</name>
</script>
</material>
</visual>
<visual name="visual_2">
<pose>2 2.5 0 0 0 0</pose>
<cast_shadows>false</cast_shadows>
<geometry>
<box>
<size>4 5 0.2</size>
</box>
</geometry>
<material>
<script>
<uri>model://mud_box/materials/scripts</uri>
<uri>model://mud_box/materials/textures</uri>
<name>vrc/mud</name>
</script>
</material>
</visual>
<visual name="visual_3">
<pose>2 -2.5 0 0 0 0</pose>
<cast_shadows>false</cast_shadows>
<geometry>
<box>
<size>4 5 0.2</size>
</box>
</geometry>
<material>
<script>
<uri>model://mud_box/materials/scripts</uri>
<uri>model://mud_box/materials/textures</uri>
<name>vrc/mud</name>
</script>
</material>
</visual>
<visual name="visual_4">
<pose>-2 -2.5 0 0 0 0</pose>
<cast_shadows>false</cast_shadows>
<geometry>
<box>
<size>4 5 0.2</size>
</box>
</geometry>
<material>
<script>
<uri>model://mud_box/materials/scripts</uri>
<uri>model://mud_box/materials/textures</uri>
<name>vrc/mud</name>
</script>
</material>
</visual>
</link>
</model>
</sdf>
+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<model>
<name>Mud Box</name>
<version>1.0</version>
<sdf version="1.4">model-1_4.sdf</sdf>
<sdf version="1.5">model.sdf</sdf>
<author>
<name>Thomas Koletschka</name>
<email>thomas.koletschka@gmail.com</email>
</author>
<description>
A mud textured plane.
</description>
</model>
+79
View File
@@ -0,0 +1,79 @@
<?xml version="1.0" ?>
<sdf version="1.5">
<model name="mud_box">
<static>true</static>
<link name="link">
<collision name="collision">
<geometry>
<box>
<size>8 10 0.2</size>
</box>
</geometry>
</collision>
<visual name="visual_1">
<pose>-2 2.5 0 0 0 0</pose>
<cast_shadows>false</cast_shadows>
<geometry>
<box>
<size>4 5 0.2</size>
</box>
</geometry>
<material>
<script>
<uri>model://mud_box/materials/scripts</uri>
<uri>model://mud_box/materials/textures</uri>
<name>vrc/mud</name>
</script>
</material>
</visual>
<visual name="visual_2">
<pose>2 2.5 0 0 0 0</pose>
<cast_shadows>false</cast_shadows>
<geometry>
<box>
<size>4 5 0.2</size>
</box>
</geometry>
<material>
<script>
<uri>model://mud_box/materials/scripts</uri>
<uri>model://mud_box/materials/textures</uri>
<name>vrc/mud</name>
</script>
</material>
</visual>
<visual name="visual_3">
<pose>2 -2.5 0 0 0 0</pose>
<cast_shadows>false</cast_shadows>
<geometry>
<box>
<size>4 5 0.2</size>
</box>
</geometry>
<material>
<script>
<uri>model://mud_box/materials/scripts</uri>
<uri>model://mud_box/materials/textures</uri>
<name>vrc/mud</name>
</script>
</material>
</visual>
<visual name="visual_4">
<pose>-2 -2.5 0 0 0 0</pose>
<cast_shadows>false</cast_shadows>
<geometry>
<box>
<size>4 5 0.2</size>
</box>
</geometry>
<material>
<script>
<uri>model://mud_box/materials/scripts</uri>
<uri>model://mud_box/materials/textures</uri>
<name>vrc/mud</name>
</script>
</material>
</visual>
</link>
</model>
</sdf>
Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" ?>
<sdf version="1.6">
<model name="Corn">
<static>true</static>
<link name="link">
<visual name="visual">
<geometry>
<mesh>
<uri>meshes/scene.gltf</uri>
</mesh>
</geometry>
</visual>
<collision name="collision">
<geometry>
<cylinder>
<radius>0.05</radius>
<length>0.1</length>
</cylinder>
</geometry>
</collision>
</link>
</model>
</sdf>
+11
View File
@@ -0,0 +1,11 @@
Model Information:
* title: Corn! Corn! Corn!
* source: https://sketchfab.com/3d-models/corn-corn-corn-10187bc37c9e42ef8770b28452ee7cd3
* author: Tiia Tuulia (https://sketchfab.com/tiiatuulia)
Model License:
* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
* requirements: Author must be credited. Commercial use is allowed.
If you use this 3D model in your project be sure to copy paste this credit wherever you share it:
This work is based on "Corn! Corn! Corn!" (https://sketchfab.com/3d-models/corn-corn-corn-10187bc37c9e42ef8770b28452ee7cd3) by Tiia Tuulia (https://sketchfab.com/tiiatuulia) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
Binary file not shown.

After

Width:  |  Height:  |  Size: 693 KiB

Binary file not shown.
+394
View File
@@ -0,0 +1,394 @@
{
"accessors": [
{
"bufferView": 2,
"componentType": 5126,
"count": 2029,
"max": [
10.655570983886719,
11.136487007141113,
4.473674774169922
],
"min": [
-11.730097770690918,
-8.04345703125,
-41.532630920410156
],
"type": "VEC3"
},
{
"bufferView": 2,
"byteOffset": 24348,
"componentType": 5126,
"count": 2029,
"max": [
0.9976066946983337,
1.0,
0.9962291717529297
],
"min": [
-0.9968279004096985,
-0.994667649269104,
-0.990868330001831
],
"type": "VEC3"
},
{
"bufferView": 1,
"componentType": 5126,
"count": 2029,
"max": [
0.5003870129585266,
0.9281949996948242
],
"min": [
0.062497999519109726,
0.058719001710414886
],
"type": "VEC2"
},
{
"bufferView": 0,
"componentType": 5125,
"count": 7188,
"type": "SCALAR"
},
{
"bufferView": 2,
"byteOffset": 48696,
"componentType": 5126,
"count": 146,
"max": [
3.683738946914673,
0.2560949921607971,
-1.8365540504455566
],
"min": [
-1.6435259580612183,
-11.871248245239258,
-31.080829620361328
],
"type": "VEC3"
},
{
"bufferView": 2,
"byteOffset": 50448,
"componentType": 5126,
"count": 146,
"max": [
0.9527933597564697,
0.8330304622650146,
0.9927104711532593
],
"min": [
-0.9898576140403748,
-0.9799456596374512,
-0.9875993728637695
],
"type": "VEC3"
},
{
"bufferView": 1,
"byteOffset": 16232,
"componentType": 5126,
"count": 146,
"max": [
0.1911740005016327,
0.9113199710845947
],
"min": [
0.062497999519109726,
0.058719001710414886
],
"type": "VEC2"
},
{
"bufferView": 0,
"byteOffset": 28752,
"componentType": 5125,
"count": 522,
"type": "SCALAR"
},
{
"bufferView": 3,
"componentType": 5126,
"count": 1,
"max": [
0.0416666679084301
],
"min": [
0.0416666679084301
],
"type": "SCALAR"
},
{
"bufferView": 4,
"componentType": 5126,
"count": 1,
"max": [
-0.27267909049987793,
0.6607204675674438,
0.6418024897575378,
0.2778203785419464
],
"min": [
-0.27267909049987793,
0.6607204675674438,
0.6418024897575378,
0.2778203785419464
],
"type": "VEC4"
}
],
"animations": [
{
"channels": [
{
"sampler": 0,
"target": {
"node": 4,
"path": "rotation"
}
}
],
"name": "Default Take",
"samplers": [
{
"input": 8,
"interpolation": "LINEAR",
"output": 9
}
]
}
],
"asset": {
"extras": {
"author": "Tiia Tuulia (https://sketchfab.com/tiiatuulia)",
"license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)",
"source": "https://sketchfab.com/3d-models/corn-corn-corn-10187bc37c9e42ef8770b28452ee7cd3",
"title": "Corn! Corn! Corn!"
},
"generator": "Sketchfab-12.68.0",
"version": "2.0"
},
"bufferViews": [
{
"buffer": 0,
"byteLength": 30840,
"name": "floatBufferViews",
"target": 34963
},
{
"buffer": 0,
"byteLength": 17400,
"byteOffset": 30840,
"byteStride": 8,
"name": "floatBufferViews",
"target": 34962
},
{
"buffer": 0,
"byteLength": 52200,
"byteOffset": 48240,
"byteStride": 12,
"name": "floatBufferViews",
"target": 34962
},
{
"buffer": 0,
"byteLength": 4,
"byteOffset": 100440,
"name": "floatBufferViews"
},
{
"buffer": 0,
"byteLength": 16,
"byteOffset": 100444,
"byteStride": 16,
"name": "floatBufferViews"
}
],
"buffers": [
{
"byteLength": 100460,
"uri": "scene.bin"
}
],
"images": [
{
"uri": "textures/corn_plant__corn_texture_png_baseColor.png"
}
],
"materials": [
{
"doubleSided": true,
"name": "corn_plant__corn_texture_png",
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 0
},
"metallicFactor": 0.0,
"roughnessFactor": 0.6541539634146342
}
},
{
"doubleSided": true,
"name": "corn_plant_001__corn_texture_png_001",
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 0
},
"metallicFactor": 0.0,
"roughnessFactor": 0.6
}
}
],
"meshes": [
{
"name": "Circle_020_corn_plant__corn_texture_png_0",
"primitives": [
{
"attributes": {
"NORMAL": 1,
"POSITION": 0,
"TEXCOORD_0": 2
},
"indices": 3,
"material": 0,
"mode": 4
}
]
},
{
"name": "Circle_020_corn_plant_001__corn_texture_png_001_0",
"primitives": [
{
"attributes": {
"NORMAL": 5,
"POSITION": 4,
"TEXCOORD_0": 6
},
"indices": 7,
"material": 1,
"mode": 4
}
]
}
],
"nodes": [
{
"children": [
1
],
"matrix": [
0.6242683529853821,
0.0,
0.0,
0.0,
0.0,
1.3861541980583915e-16,
-0.6242683529853821,
0.0,
0.0,
0.6242683529853821,
1.3861541980583915e-16,
0.0,
0.0,
0.0,
0.0,
1.0
],
"name": "Sketchfab_model"
},
{
"children": [
2
],
"matrix": [
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
-1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"name": "fdd38405c86b44e49e5f7a62b0d2f0f7.fbx"
},
{
"children": [
3
],
"name": "Object_2"
},
{
"children": [
4
],
"name": "RootNode"
},
{
"children": [
5,
6
],
"name": "Circle_020",
"rotation": [
-0.27267906069755554,
0.6607205271720886,
0.6418024301528931,
0.277820348739624
],
"scale": [
0.08378752321004868,
0.08378753066062927,
0.08378753066062927
],
"translation": [
0.03753768280148506,
3.4483883380889893,
0.0886821448802948
]
},
{
"mesh": 0,
"name": "Circle_020_corn_plant__corn_texture_png_0"
},
{
"mesh": 1,
"name": "Circle_020_corn_plant_001__corn_texture_png_001_0"
}
],
"samplers": [
{
"magFilter": 9729,
"minFilter": 9987,
"wrapS": 10497,
"wrapT": 10497
}
],
"scene": 0,
"scenes": [
{
"name": "Sketchfab_Scene",
"nodes": [
0
]
}
],
"textures": [
{
"sampler": 0,
"source": 0
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<model>
<name>Corn</name>
<version>1.0</version>
<sdf version="1.6">corn.sdf</sdf>
<description>
Corn plant
</description>
</model>
BIN
View File
Binary file not shown.
+130
View File
@@ -0,0 +1,130 @@
<?xml version='1.0'?>
<sdf version='1.6'>
<model name='industrial_robot_with_wheels'>
<pose>0 0 3.3 0 0 0</pose>
<!-- Kadłub -->
<link name='base_link'>
<inertial>
<mass>150.0</mass>
<inertia>
<ixx>128.5</ixx><ixy>0</ixy><ixz>0</ixz>
<iyy>200.5</iyy><iyz>0</iyz>
<izz>328.0</izz>
</inertia>
</inertial>
<collision name='collision'>
<geometry><box><size>4.0 3.2 0.2</size></box></geometry>
</collision>
<visual name='visual'>
<geometry><box><size>4.0 3.2 0.2</size></box></geometry>
<material><ambient>0.1 0.3 0.6 1</ambient><diffuse>0.1 0.3 0.6 1</diffuse></material>
</visual>
</link>
<!-- Funkcja pomocnicza do definicji osi i koła -->
<!-- FL (Front Left) -->
<link name='axle_fl'>
<pose>1.8 1.4 -1.6 0 0 0</pose>
<visual name='visual'>
<geometry><box><size>0.2 0.2 3.0</size></box></geometry>
<material><ambient>0.2 0.2 0.2 1</ambient></material>
</visual>
</link>
<link name='wheel_fl'>
<pose>1.8 1.4 -3.1 1.5707 0 0</pose>
<collision name='collision'>
<geometry><cylinder><radius>0.2</radius><length>0.1</length></cylinder></geometry>
</collision>
<visual name='visual'>
<geometry><cylinder><radius>0.2</radius><length>0.1</length></cylinder></geometry>
<material><ambient>0 0 0 1</ambient><diffuse>0 0 0 1</diffuse></material>
</visual>
</link>
<!-- FR (Front Right) -->
<link name='axle_fr'>
<pose>1.8 -1.4 -1.6 0 0 0</pose>
<visual name='visual'>
<geometry><box><size>0.2 0.2 3.0</size></box></geometry>
<material><ambient>0.2 0.2 0.2 1</ambient></material>
</visual>
</link>
<link name='wheel_fr'>
<pose>1.8 -1.4 -3.1 1.5707 0 0</pose>
<visual name='visual'>
<geometry><cylinder><radius>0.2</radius><length>0.1</length></cylinder></geometry>
<material><ambient>0 0 0 1</ambient></material>
</visual>
</link>
<!-- BL (Back Left) -->
<link name='axle_bl'>
<pose>-1.8 1.4 -1.6 0 0 0</pose>
<visual name='visual'>
<geometry><box><size>0.2 0.2 3.0</size></box></geometry>
<material><ambient>0.2 0.2 0.2 1</ambient></material>
</visual>
</link>
<link name='wheel_bl'>
<pose>-1.8 1.4 -3.1 1.5707 0 0</pose>
<visual name='visual'>
<geometry><cylinder><radius>0.2</radius><length>0.1</length></cylinder></geometry>
<material><ambient>0 0 0 1</ambient></material>
</visual>
</link>
<!-- BR (Back Right) -->
<link name='axle_br'>
<pose>-1.8 -1.4 -1.6 0 0 0</pose>
<visual name='visual'>
<geometry><box><size>0.2 0.2 3.0</size></box></geometry>
<material><ambient>0.2 0.2 0.2 1</ambient></material>
</visual>
</link>
<link name='wheel_br'>
<pose>-1.8 -1.4 -3.1 1.5707 0 0</pose>
<visual name='visual'>
<geometry><cylinder><radius>0.2</radius><length>0.1</length></cylinder></geometry>
<material><ambient>0 0 0 1</ambient></material>
</visual>
</link>
<!-- JOINTS - SKRĘT (Revolute) -->
<joint name='steer_fl' type='revolute'>
<parent>base_link</parent><child>axle_fl</child>
<axis><xyz>0 0 1</xyz><limit><lower>-0.785</lower><upper>0.785</upper></limit></axis>
</joint>
<joint name='steer_fr' type='revolute'>
<parent>base_link</parent><child>axle_fr</child>
<axis><xyz>0 0 1</xyz><limit><lower>-0.785</lower><upper>0.785</upper></limit></axis>
</joint>
<joint name='steer_bl' type='revolute'>
<parent>base_link</parent><child>axle_bl</child>
<axis><xyz>0 0 1</xyz><limit><lower>-0.785</lower><upper>0.785</upper></limit></axis>
</joint>
<joint name='steer_br' type='revolute'>
<parent>base_link</parent><child>axle_br</child>
<axis><xyz>0 0 1</xyz><limit><lower>-0.785</lower><upper>0.785</upper></limit></axis>
</joint>
<!-- JOINTS - NAPĘD/OBRÓT KOŁA (Continuous) -->
<joint name='wheel_fl_joint' type='revolute'>
<parent>axle_fl</parent><child>wheel_fl</child>
<axis><xyz>0 0 1</xyz></axis> <!-- Oś obrotu koła w SDF po rotacji linku -->
</joint>
<joint name='wheel_fr_joint' type='revolute'>
<parent>axle_fr</parent><child>wheel_fr</child>
<axis><xyz>0 0 1</xyz></axis>
</joint>
<joint name='wheel_bl_joint' type='revolute'>
<parent>axle_bl</parent><child>wheel_bl</child>
<axis><xyz>0 0 1</xyz></axis>
</joint>
<joint name='wheel_br_joint' type='revolute'>
<parent>axle_br</parent><child>wheel_br</child>
<axis><xyz>0 0 1</xyz></axis>
</joint>
</model>
</sdf>