-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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
1 parent
45d8a09
commit 698f75e
Showing
158 changed files
with
182,489 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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}/ | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
Oops, something went wrong.