Skip to content

Commit

Permalink
Release Beta (#7)
Browse files Browse the repository at this point in the history
* Feature/eduard (#1)

* Create ROS2 package.
Add basic launch file.
Add simplified Eduard model.

* Add wheels to robot model Eduard.

* Add plugin for controlling wheels by ROS twist message.
Fix left joint orientation.

* Rename eduard model to Eduard Offroad.
Add mecanum eduard model.

* Introduce different geometry for left right mecanum wheels.

* Switch rear wheels of Eduard mecanum robot.

* Remove automatically spawning of Eduard.

Co-authored-by: Christian Wendt <christian.wendt@eduart-robotik.com>

* Feature/fleet sil (#3)

* Add Eduard red, green and blue.
Add basic structure for plugins.

* POC sensor plugin for testing.

* Implement first basic idea of the object detection sensor.

* Adjust Eduard models for using object detection sensor.

* Fix frame id of object sensors of Eduards.

* POC skelton for Eduard robot model plugin.

* Create first structure for Eduard Gazebo realization.

* Just save.

* Fix rtf issue for eduard model plugin.

* POC for range sensor hardware realization.

* Fix wrong movement direction of Eduard.
Adapt limits for range sensor.

* Add range and imu sensor to Eduard mecanum.

---------

Co-authored-by: Christian Wendt <christian.wendt@eduart-robotik.com>

* Feature/fleet sil (#4)

* Add Eduard red, green and blue.
Add basic structure for plugins.

* POC sensor plugin for testing.

* Implement first basic idea of the object detection sensor.

* Adjust Eduard models for using object detection sensor.

* Fix frame id of object sensors of Eduards.

* POC skelton for Eduard robot model plugin.

* Create first structure for Eduard Gazebo realization.

* Just save.

* Fix rtf issue for eduard model plugin.

* POC for range sensor hardware realization.

* Fix wrong movement direction of Eduard.
Adapt limits for range sensor.

* Add range and imu sensor to Eduard mecanum.

* Change colors of Eduards.

* Make it compile again against edu_robot 0.4.0

* Add low pass filter to motor controller rpm.

* Implement motor controller mode for offroad wheels.

* Fix IMU orientation.
Update Eduard green and red with new SDF.

* Change collision of Eduard. Split in top and bottom part.

* Implement enable/disable feature.
Using sim time.
Correct laser tf transformation.

* Set initial mode for robot Eduart.

---------

Co-authored-by: Christian Wendt <christian.wendt@eduart-robotik.com>

* Feature/sand gravel ramp (#2)

* first commit

* test commit

* changed the readme file

* Daniel's first commit

* Added models for TER1 and TER2 courses via upload

* Added Textures for the TER courses

* added TER1 and TER2 in folder structure

* changed readme

* colision fixed

* Add files via upload

added new TER0-2

* very very very first alpha version 0.1

* TER3

* TER3 ramp is now included into the design structure

* alpha 0.2

new Version of the TER1 ramp with bigger stones

* delete old TER1

* alpha 0.2

* new  different TER0 models

* new TER0 models

* alpha 0.3

* alpha 0.3

* Laserscanner auf Roboter aufgesetzt

* removed log install and build folder with files

* offroad height

* new TER0 course and initial 5 pebble stones added

* gazebo integration of new ter0 parkour and the first 4 pebbles

* added gravel with physics

* eduart offroad model changes

* added blender model file

* added blender model file

* added blender model file

* added blender model file

* added blender model file

* added blender model file

* added screenshots for documentation

* updated readme md-file

* updated readme md-file

* updated readme md-file

* updated readme md-file

* updated readme md-file

* updated readme md-file

* updated readme md-file

* updated readme md-file

* updated readme md-file

* updated readme md-file

* added pebble stone blender model

* updated readme md-file

* updated readme md-file

* updated readme md-file

* disabled the blue laser of the laser scanner

* testing of markdown internal links

* testing of markdown internal links

* documentation update

* deleted unneccessary gravel version

* documentation update

* documentation update

* documentation update

* documentation update

* documentation update

* documentation update

* documentation update

* documentation update

* changed base_frame to base_link and added map frame

---------

Co-authored-by: KathaWei <katharina.w99@web.de>
Co-authored-by: Jakob2742 <jrichter.main@t-online.de>
Co-authored-by: Daniel Meissner <115222262+meissnerda71974@users.noreply.github.com>
Co-authored-by: Jakob Richter <115220189+Jakob2742@users.noreply.github.com>

* Update README.md (#5)

* Feature/update documentation (#6)

* Documentation: split into multiple parts.

* Update Readme.
Fix offroad model: fix bumping.
Change back to offroad as default drive kinematic.

---------

Co-authored-by: Christian Wendt <christian.wendt@francor.de>
Co-authored-by: Christian Wendt <christian.wendt@eduart-robotik.com>

* Feature/update documentation (#8)

* Documentation: split into multiple parts.

* Update Readme.
Fix offroad model: fix bumping.
Change back to offroad as default drive kinematic.

* Update doku.

---------

Co-authored-by: Christian Wendt <christian.wendt@francor.de>
Co-authored-by: Christian Wendt <christian.wendt@eduart-robotik.com>

* Update README.md

---------

Co-authored-by: Christian Wendt <christian.wendt@eduart-robotik.com>
Co-authored-by: KathaWei <katharina.w99@web.de>
Co-authored-by: Jakob2742 <jrichter.main@t-online.de>
Co-authored-by: Daniel Meissner <115222262+meissnerda71974@users.noreply.github.com>
Co-authored-by: Jakob Richter <115220189+Jakob2742@users.noreply.github.com>
Co-authored-by: fennma67764 <57754446+fennma67764@users.noreply.github.com>
Co-authored-by: Christian Wendt <christian.wendt@francor.de>
  • Loading branch information
8 people authored Jul 16, 2024
1 parent 45d8a09 commit 698f75e
Show file tree
Hide file tree
Showing 158 changed files with 182,489 additions and 0 deletions.
38 changes: 38 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
cmake_minimum_required(VERSION 3.5)
project(edu_simulation)

find_package(ament_cmake REQUIRED)
find_package(gazebo_dev REQUIRED)
find_package(gazebo_ros REQUIRED)
find_package(rclcpp REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(edu_robot REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(tf2_geometry_msgs REQUIRED)
find_package(nav_msgs REQUIRED)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED On)
set(CMAKE_CXX_EXTENSIONS Off)

add_subdirectory(src)

# install(DIRECTORY world
# DESTINATION share/${PROJECT_NAME}
# )

ament_package()

install(TARGETS
eduard-object-detection-sensor-plugin eduard-model-plugin
LIBRARY DESTINATION share/${PROJECT_NAME}/lib
)

install(DIRECTORY model
DESTINATION share/${PROJECT_NAME}/
)

install(DIRECTORY launch
DESTINATION share/${PROJECT_NAME}/
)
102 changes: 102 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,104 @@
# edu_simulation
Contains Gazebo simulation models for all EduArt's robots.

## Installation

### Native
If you want to run the simulation on your computer follow these steps.
=======

### Native
If you want to run the simulation on your computer follow these steps.

The simulation environment used for this package is gazebo

```bash
sudo apt install ros-humble-gazebo-plugins
```

For cloning this package you need "git":
```bash
sudo apt install git
```

Clone the package in your src-folder:
```bash
cd ~/<your ros2 workspace>/src
git clone https://github.com/EduArt-Robotik/edu_simulation.git
```

You need the edu_robot package. Currently you have to use the "develop"-branch. Check out the branch:
```bash
#If not already cloned clone edu_robot
cd ~/<your ros2 workspace>/src
git clone https://github.com/EduArt-Robotik/edu_robot.git

#Now change the branch!
cd <your ros2 workspace>/src/edu_robot
git checkout develop

#Check if the branch has been changed
git branch
```

Build edu_robot
```bash
cd <your ros2 workspace>
colcon build --packages-select edu_robot --event-handlers console_direct+ --symlink-install
```

Build edu_simulation
```bash
cd <your ros2 workspace>
colcon build --packages-select edu_simulation --event-handlers console_direct+ --symlink-install
```

## Launching Simulator

After the package was built Gazebo it will be launched using a provided ROS launch file. This launch file adds all content coming with this package.

Source your ROS2 environment if not already done;

```bash
source ~/<your ros2 workspace>/install/setup.bash
```

Now you can launch Gazebo using following launch file:

```bash
ros2 launch edu_simulation eduard.launch.py
```

>**Note**: The first launch takes the same minutes. The next launches will take much less time.
## Models

[link](documentation/models.md)

## Launching Simulator

After the package was built Gazebo it will be launched using a provided ROS launch file. This launch file adds all content coming with this package.

Source your ROS2 environment if not already done;

```bash
source ~/<your ros2 workspace>/install/setup.bash
```

Now you can launch Gazebo using following launch file:

```bash
ros2 launch edu_simulation eduard.launch.py
```

>**Note**: The first launch takes the same minutes. The next launches will take much less time.
## Models

[link](documentation/models.md)

## World

## Usage

### Robots
49 changes: 49 additions & 0 deletions docker/host/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
FROM ros:humble-ros-base-jammy

# using bash
SHELL ["/bin/bash", "-c"]
ENV ROS_DISTRO humble
ENV USER user
ENV DEBIAN_FRONTEND=noninteractive

RUN \
# install Joystick Driver for ROS2 foxy
apt-get update \
&& apt-get install -y \
software-properties-common \
ros-$ROS_DISTRO-rmw-fastrtps-cpp \
ros-$ROS_DISTRO-fastrtps \
ros-$ROS_DISTRO-desktop \
ros-$ROS_DISTRO-xacro \
ros-$ROS_DISTRO-gazebo-ros-pkgs

ENV RMW_IMPLEMENTATION=rmw_fastrtps_cpp

# write source commands to .bashrc -> no need to source afterwards
RUN echo "source /opt/ros/$ROS_DISTRO/setup.bash" >> ~/.bashrc \
&& echo "export RMW_IMPLEMENTATION=rmw_fastrtps_cpp" >> ~/.bashrc \
########################################################
# Add non root user for development
&& useradd --create-home --shell /bin/bash $USER \
&& echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
&& /sbin/usermod -aG sudo $USER \
&& echo "export RMW_IMPLEMENTATION=rmw_fastrtps_cpp" >> /home/$USER/.bashrc \
&& echo "source /opt/ros/$ROS_DISTRO/setup.bash" >> /home/$USER/.bashrc \
&& echo "source /home/$USER/eduart_ws/install/setup.bash" >> /home/$USER/.bashrc \
########################################################
# Clean up
&& apt-get clean

COPY ./edu_robot /home/$USER/eduart_ws/src/edu_robot
COPY ./edu_robot_control /home/$USER/eduart_ws/src/edu_robot_control
COPY ./edu_simulation /home/$USER/eduart_ws/src/edu_simulation

WORKDIR /home/$USER/eduart_ws

# RUN export RMW_IMPLEMENTATION=rmw_fastrtps_cpp \
# && source /opt/ros/$ROS_DISTRO/setup.bash \
# && colcon build --symlink-install --executor sequential --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release

# CMD export RMW_IMPLEMENTATION=rmw_fastrtps_cpp \
# && source /home/$USER/eduart_ws/install/setup.bash \
# && ros2 launch edu_simulation eduard.launch.py
17 changes: 17 additions & 0 deletions docker/host/makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
current_dir = $(shell pwd)

download-sources:
git clone --branch develop https://github.com/EduArt-Robotik/edu_robot.git
git clone --branch main https://github.com/EduArt-Robotik/edu_robot_control.git
git clone --branch develop git@github.com:EduArt-Robotik/edu_simulation.git

build-docker:
docker build -t eduart-simulation:0.1.0 .

all: download-sources build-docker
echo "build edu_simulation into a docker image"

clean:
rm -rf edu_robot
rm -rf edu_robot_control
rm -rf edu_simulation
146 changes: 146 additions & 0 deletions documentation/models.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
## Models
This folder contains subfolder for every model currently available for simulation including both the mecanum robot and the offroad robot from EduArt as well as the track models.
For the track models, every subfolder contains a Blender folder with the Blender file (.blend) as well as a picture of the track (.jpg) and a mesh folder with the exported models.
The models can be exported in many different files, but for simulation purposes in gazebo, every track was exported in the Collada file format (.dae) and the STL file format (.stl).
Furthermore every folder contains an SDFormat file (.sdf) as well as a configuration file (.config), which both are used by the Gazebo simulator to import the model exported from the Blender software
and create a gazebo model.

### Eduard_mecanum
This folder contains the model of the mechanum robot from EduArt.

### Eduard_offroad
This folder contains the model of the offroad robot from EduArt.

### Gravel
This folder contains a gravel model, in which pebble stones were arranged in a random order as a grid.
The gravel model consists of 65 individual pebble stones, which are arranged in 5 rows with 13 pebbles per row as a grid.
This gravel model is an exception to the other models in the model folder, as it is not exported directly from Blender, but is a combination of different Blender models merged together in the .sdf file.
The advantage is that the gravel now has somewhat realistic physical behavior, so each individual pebble can be moved or rotated independently of the others by the robot.
The models used for this gravel grid are [Pebble1](README.md#Pebble1), [Pebble2](README.md#Pebble2), [Pebble3](README.md#Pebble3) and [Pebble4](README.md#Pebble4).
![Gravel](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Gravel/gravel.png)

### Older_versions: creation process
This folder contains old versions of the TER0 track and shows all steps of the development of the base track.
The basic track was labeled as TER0, since all other tracks of the TER category (i.e. TER1, TER2 and TER3) can be built from it by adding the different track surfaces.
The following list explains all steps that were done to create the TER0 base track. <br>
All TER tracks are built mainly with cubes, which is one of the default object types in Blender and changed in dimensions. In addition, every single part of the track was modified to be solid.
To achieve this, every part was modified in the physics properties section to have a passive rigid body type physic, which prevents the robot from falling throught the track.
The dimension for every part of the tracks were taken from the [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf)
and are given below in inch with the format: length x width x hight.

Development steps:
1. TER0_1: The base panel for one track section was created with the dimension: 96 x 48 x 5/8 (= 0.625) (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 15: A).
![TER0_1](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_1.png)

2. TER0_2: The base panel was duplicated and added at the correct position to create a base panel for the whole track.
![TER0_2](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_2.png)

3. TER0_3: Two ramps were created and moved to the correct position. The dimension for the ramp are the same as the base panel except in hight.
For a 15° ramp, a cube with the hight of 26 inch is needed. In the *edit mode* of Blender, the ramp was created by using the *edge slide tool*.
![TER0_3](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_3.png)

4. TER0_4: Two long beams were created with the dimension: 96 x 2 x 4 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 15: B).
![TER0_4](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_4.png)

5. TER0_5: Two short beams were created with the dimension: 45 x 2 x 4 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 15: C)
Together with the two long beams from the previous step, all four beams were moved to the correct position to create a basin.
![TER0_5](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_5.png)

6. TER0_6: The four beams were duplicated and positioned to the other parts of the track.
![TER0_6](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_6.png)

7. TER0_7a: The two ends of the surrounding wall were created with the dimensions: 1/2 (= 0.5) x 48 x 24 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 15: N).
![TER0_7a](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_7a.png)

8. TER0_7b: Three long section of the wall were created with the dimension: 1/2 (= 0.5) x 96 x 24 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 15: M).
In addition, one short section of the wall was created with the dimensions of the previous step.
![TER0_7b](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_7b.png)

8. TER0_7c: The four high section of the wall were created with the dimension: 1/2 (= 0.5) x 48 x 48 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 15: O).
![TER0_7c](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_7c.png)

9. TER0_7d: The last two sections of the wall were created with the dimension: 1/2 (= 0.5) x 48 x 24 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 15: N).
The last missing section of the wall is the entry point of the robot, so there is no wall section needed.
![TER0_7d](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_7d.png)

10. TER0_8: Five supporting beams were created and positioned in the corners of wall of the track with the dimension: 4 x 4 x 12 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 15: R).
In the simulation, these supporting beams provide no funcional use, but were added nevertheless, so that the simulation model better matches the real track.
![TER0_8](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_8.png)

11. TER0_9a: For the operator booth, a fifth base panel was added with the same dimension as the other four from step 1.
Furthermore two supporting beams were created with the dimension: 4 x 2 x 96 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 8: B).
![TER0_9a](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_9a.png)

12. TER0_9b: Three wall panels were created with the dimension: 48 x 1/2 (= 0.5) x 96 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 8: A).
![TER0_9b](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_9b.png)

13. TER0_9c: One short supporting beam was created with the dimension: 2 x 48 x 4 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 8: D) as well as the operator table
with the dimension: 48 x 24 x 4 (see [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 8: C, E, F).
![TER0_5](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Older_versions/TER0_9c.png)

### Pebble1
This folder contains a first random single pebble stone, which can be used to manually create gravel or add to existing gravel.
This pebble stone was used to create a fully functional gravel model for the Gazebo simulator with somewhat real gravel physics.
To create the gravel model, the four pebble stones were arranged in a random order as a grid. For more information see [Gravel](README.md#gravel).
![Pebble1](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Pebble1/blender/Pebble1.png)

### Pebble2
This folder contains a second random single pebble stone, which can be used to manually create gravel or add to existing gravel.
This pebble stone was used to create a fully functional gravel model for the Gazebo simulator with somewhat real gravel physics.
To create the gravel model, the four pebble stones were arranged in a random order as a grid. For more information see [Gravel](README.md#Gravel).
![Pebble2](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Pebble2/blender/Pebble2.png)

### Pebble3
This folder contains a third random single pebble stone, which can be used to manually create gravel or add to existing gravel.
This pebble stone was used to create a fully functional gravel model for the Gazebo simulator with somewhat real gravel physics.
To create the gravel model, the four pebble stones were arranged in a random order as a grid. For more information see [Gravel](README.md#Gravel).
![Pebble3](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Pebble3/blender/Pebble3.png)

### Pebble4
This folder contains a fourth random single pebble stone, which can be used to manually create gravel or add to existing gravel.
This pebble stone was used to create a fully functional gravel model for the Gazebo simulator with somewhat real gravel physics.
To create the gravel model, the four pebble stones were arranged in a random order as a grid. For more information see [Gravel](README.md#Gravel).
![Pebble4](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/Pebble4/blender/Pebble4.png)

### TER0_basin
This folder contains the basic TER0 track without sand or gravel.
The ramp is effectively a basin that can be manually filled with individual pebbles (see [pebble1](README.md#pebble1)) or a gravel grid (see [Gravel](README.md#Gravel)).
![TER0_basin](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/TER0_basin/blender/TER0_basin.png)

### TER0_plain
This folder contains the basic TER0 track, but the two ramps were removed to create a flat track.
![TER0_plain](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/TER0_plain/blender/TER0_plain.png)

### TER0_ramp
This folder contains the TER0 track, but the two ramps are filled with a solid material to create a simplified version of the TER1 track with no gravel or sand built into the model.
This version of the TER0 track was used
![TER0_ramp](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/TER0_ramp/blender/TER0_ramp.png)

### TER0_texture
This folder contains the TER0 track with somehwhat realistic textures. The textures were downloaded from [AmbientCG](https://ambientcg.com/), which contains textures for rendering
and operates under the *Creative Commons CC0 1.0 Universal License* (see: [license information](https://docs.ambientcg.com/books/website-licensing/page/license-information) ). <br>
**This track does not yet work in the Gazebo simulator, trying to use this track will result in Gazebo crashing**.
![TER0_texture](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/TER0_texture/blender/TER0_texture.png)

### TER1
This folder contains the TER1 track. To create the TER1 track model, the TER0 basin track was filled with gravel in the Blender software.
In the Gazebo simulator, the TER1 track is one entity, which means, that the pebble stones do not have real physics, but are "glued" to the track model and can not be moved etc...
This massively reduces the computing power and significantly increases the performance of the simulation.
![TER1](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/TER1/blender/TER1.png)

### TER2
This folder contains the TER2 track. To create the TER2 track model, the TER0 basin track was filled with two diagonal wooden beams per section according to the [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 16.
![TER2](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/TER2/blender/TER2.png)

### TER3
This folder contains the TER3 track. To create the TER3 track model, the TER0 basin track was filled with eight smaller ramps per section according to the [Robocub Assembly Guide](https://rrl.robocup.org/wp-content/uploads/2022/05/RoboCup2022_AssemblyGuide_Final.pdf) page 18.

![TER3](https://github.com/EduArt-Robotik/edu_simulation/blob/feature/sand_gravel_ramp/model/TER3/blender/TER3.png)

## Problems

### Texture error in the Gazebo Simulator
The textures added in the Blender software cause the [TER0_texture](README.md#TER0_texture) track to not work correctly in the Gazebo simuator causing it to crash upon inserting the track model into the world.
During testing, the same track model without the textures added worked fine and as expected like all other track models exported from the Blender software and imported into the Gazebo simulator.
However the error causing the Gazebo software to crash could not be determined. Since the textures do not provide any functional benefit to the simulation per se, but only a visual improvement, the bug fix was placed lower in the prioritization of tasks.

Loading

0 comments on commit 698f75e

Please sign in to comment.