From 4b0a13f08e046b67c1a9383f2b57f8df9218055d Mon Sep 17 00:00:00 2001
From: Rick-v-E <78429257+Rick-v-E@users.noreply.github.com>
Date: Fri, 19 Jan 2024 17:09:08 +0100
Subject: [PATCH] Update ign branch (#61)
---
.github/workflows/ros-noetic-test.yaml | 4 +-
.gitignore | 14 -
CHANGELOG.md | 49 +++
README.md | 75 +++-
gt/.gitkeep | 0
launch/rviz.launch.py | 25 --
launch/simulation.launch.py | 89 ++--
map/.gitkeep | 0
map/driving_pattern.txt | 1 -
misc/screenshot_v5.0_classic.png | Bin 0 -> 513512 bytes
misc/screenshot_v5.0_ign.png | Bin 0 -> 841893 bytes
package.xml | 2 +-
rviz/config.rviz | 268 ------------
setup.py | 5 -
virtual_maize_field/__init__.py | 54 +++
virtual_maize_field/check_for_updates.py | 87 ----
virtual_maize_field/generate_world.py | 46 +-
.../world_generator/field.world.template | 4 +-
.../world_generator/field_2d_generator.py | 20 +-
.../world_generator/row_segments.py | 403 ------------------
.../world_generator/segments/base.py | 2 +-
.../world_generator/segments/curve.py | 2 +-
.../world_generator/segments/island.py | 4 +-
.../world_generator/segments/sincurve.py | 2 +-
.../world_generator/segments/straight.py | 2 +-
worlds/.gitkeep | 0
26 files changed, 253 insertions(+), 905 deletions(-)
create mode 100644 CHANGELOG.md
delete mode 100644 gt/.gitkeep
delete mode 100644 launch/rviz.launch.py
delete mode 100644 map/.gitkeep
delete mode 100644 map/driving_pattern.txt
create mode 100644 misc/screenshot_v5.0_classic.png
create mode 100644 misc/screenshot_v5.0_ign.png
delete mode 100644 rviz/config.rviz
delete mode 100755 virtual_maize_field/check_for_updates.py
delete mode 100644 virtual_maize_field/world_generator/row_segments.py
delete mode 100644 worlds/.gitkeep
diff --git a/.github/workflows/ros-noetic-test.yaml b/.github/workflows/ros-noetic-test.yaml
index ea0de5d..7b506aa 100644
--- a/.github/workflows/ros-noetic-test.yaml
+++ b/.github/workflows/ros-noetic-test.yaml
@@ -3,8 +3,6 @@ name: ros-noetic
on:
workflow_dispatch:
- branches:
- - main
pull_request:
branches:
- main
@@ -16,7 +14,7 @@ jobs:
build:
runs-on: ubuntu-20.04
steps:
- - uses: ros-tooling/setup-ros@v0.6
+ - uses: ros-tooling/setup-ros@v0.7
with:
required-ros-distributions: noetic
- uses: ros-tooling/action-ros-ci@v0.3
diff --git a/.gitignore b/.gitignore
index 0ba2710..c9a2d94 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,19 +25,5 @@ CATKIN_IGNORE
*.ipynb
.vscode
-# Ignore generated files
-worlds/generated.world
-Media/models/virtual_maize_field_heightmap.png
-map/*
-gt/*
-launch/robot_spawner.launch.py
-
-# Ignore generated models
-models/*_day_*
-
# Ignore models that may not be published on Github
models/dandelion_*
-
-# Keep specific files
-!map/.gitkeep
-!gt/.gitkeep
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..d73e2f0
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,49 @@
+## Virtual Maize Field (ROS 2)
+
+### Version 5.0.0 (2024-01-20)
+* Change location of generated files ([#56](https://github.com/FieldRobotEvent/virtual_maize_field/pull/56))
+* Remove outdated script that checks for updates ([#56](https://github.com/FieldRobotEvent/virtual_maize_field/pull/56))
+
+> [!IMPORTANT]
+> Since the location of the robot spawner launch file is also changed, update your launch file. See the [readme](README.md) for an example.
+
+### Version 4.7.3 (2023-05-10)
+* Add warning for non-public models ([#54](https://github.com/FieldRobotEvent/virtual_maize_field/pull/54))
+* Fix GitHub actions for ROS 2 ([#51](https://github.com/FieldRobotEvent/virtual_maize_field/pull/51))
+* Fix world generation in ROS 2 ([#46](https://github.com/FieldRobotEvent/virtual_maize_field/pull/46))
+* Fix `TypeError` when creating worlds ([#44](https://github.com/FieldRobotEvent/virtual_maize_field/pull/44))
+* Fix setuptools warning ([#36](https://github.com/FieldRobotEvent/virtual_maize_field/pull/36))
+* Fix GitHub actions ([#35](https://github.com/FieldRobotEvent/virtual_maize_field/pull/35))
+
+### Version 4.7.2 (2022-06-10)
+* Fix row width to be consistent ([#32](https://github.com/FieldRobotEvent/virtual_maize_field/pull/32))
+
+### Version 4.7.1 (2022-06-10)
+* Change sigmoid function to sinus ([#31](https://github.com/FieldRobotEvent/virtual_maize_field/pull/31))
+
+### Version 4.7.0 (2022-06-09)
+* Add litter to the mapping task ([#28](https://github.com/FieldRobotEvent/virtual_maize_field/pull/28))
+
+### Version 4.6.1 (2022-06-08)
+* Fix `TypeError` when generating world ([#27](https://github.com/FieldRobotEvent/virtual_maize_field/pull/27))
+
+### Version 4.6.0 (2022-06-03)
+* Fix length of the field to match the competition description ([#25](https://github.com/FieldRobotEvent/virtual_maize_field/pull/25))
+
+### Version 4.5.0 (2022-06-02)
+* Add sigmoid function to create fields ([#24](https://github.com/FieldRobotEvent/virtual_maize_field/pull/24))
+
+### Version 4.4.1 (2022-05-30)
+* Lower the spawn height of the robot ([#23](https://github.com/FieldRobotEvent/virtual_maize_field/pull/23))
+
+### Version 4.4.0 (2022-05-25)
+* Move `map.csv` and `map.png` to a seperate folder to disable access during competition ([#21](https://github.com/FieldRobotEvent/virtual_maize_field/pull/21))
+* Remove the `bin` folder ([#22](https://github.com/FieldRobotEvent/virtual_maize_field/pull/22))
+
+### Version 4.3.1 (2022-05-04)
+* Fix import ([#17](https://github.com/FieldRobotEvent/virtual_maize_field/pull/17))
+* Add initial joint pose argument ([#20](https://github.com/FieldRobotEvent/virtual_maize_field/pull/20))
+
+### Version 4.3.0 (2022-05-3)
+* Add dandelion models ([#14](https://github.com/FieldRobotEvent/virtual_maize_field/pull/14))
+
diff --git a/README.md b/README.md
index 2beb571..c861f31 100644
--- a/README.md
+++ b/README.md
@@ -18,14 +18,17 @@
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
-![Screenshot of a generated map with maize plants](./misc/screenshot_v4.7.jpg)
+![Screenshot of a generated map with maize plants](./misc/screenshot_v5.0_classic.png)
-ROS Distro | Branch | Build status
-:---------: | :----: | :----------:
-**Rolling** | [`ros2`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2) | [![ros-rolling](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-rolling-test.yaml/badge.svg?branch=ros2)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-rolling-test.yaml)
-**Iron** | [`ros2`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2) | [![ros-iron](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-iron-test.yaml/badge.svg?branch=ros2)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-iron-test.yaml)
-**Humble** | [`ros2`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2) | [![ros-humble](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-humble-test.yaml/badge.svg?branch=ros2)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-humble-test.yaml)
-**Noetic** | [`main`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/main) | [![ros-noetic](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-noetic-test.yaml/badge.svg?branch=main)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-noetic-test.yaml?branch=main)
+ROS Distro | Gazebo version | Branch | Build status
+:---------: | :----: | :----: | :----------:
+**Rolling** | **Gazebo** | [`ros2-gz`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2-gz) | [![ros-rolling-gz](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-rolling-gz-test.yaml/badge.svg?branch=ros2-gz)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-rolling-gz-test.yaml)
+**Rolling** | **Gazebo Classic** | [`ros2`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2) | [![ros-rolling](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-rolling-test.yaml/badge.svg?branch=ros2)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-rolling-test.yaml)
+**Iron** | **Gazebo** | [`ros2-gz`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2-gz) | [![ros-iron-gz](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-iron-gz-test.yaml/badge.svg?branch=ros2-gz)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-iron-gz-test.yaml)
+**Iron** | **Gazebo Classic** | [`ros2`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2) | [![ros-iron](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-iron-test.yaml/badge.svg?branch=ros2)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-iron-test.yaml)
+**Humble** | **Ignition Gazebo** | [`ros2-ign`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2-ign) | [![ros-humble-ign](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-humble-ign-test.yaml/badge.svg?branch=ros2-ign)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-humble-ign-test.yaml)
+**Humble** | **Gazebo Classic** | [`ros2`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/ros2) | [![ros-humble](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-humble-test.yaml/badge.svg?branch=ros2)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-humble-test.yaml)
+**Noetic** | **Gazebo Classic** | [`main`](https://github.com/FieldRobotEvent/virtual_maize_field/tree/main) | [![ros-noetic](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-noetic-test.yaml/badge.svg?branch=main)](https://github.com/FieldRobotEvent/virtual_maize_field/actions/workflows/ros-noetic-test.yaml?branch=main)
## Installation
@@ -35,7 +38,7 @@ Clone this repository and build the workspace. Additional you'll need the follow
rosdep install virtual_maize_field
```
-This package has been tested on ROS 2 Foxy, Humble and Rolling.
+This package has been tested on ROS 2 Humble, Iron and Rolling.
## Generating new maize field worlds
This package includes a script (`virtual_maize_field/generate_world.py`) that can generate randomized agricultural worlds. All parameters are optional and have default values. All comma separated arguments can be scaler as well.
@@ -44,7 +47,9 @@ You can call the script using
```bash
ros2 run virtual_maize_field generate_world
```
-The resulting file will be placed in `/install/virtual_maize_field/share/virtual_maize_field/worlds/generated.world`. You can use this script by one of the defined config files or specifying the parameters below:
+The resulting file will be placed in `$ROS_HOME/virtual_maize_field/generated.world`.
+
+You can use this script by one of the defined config files or specifying the parameters below:
Click to show all possible arguments
@@ -189,7 +194,7 @@ Worlds for the Field Robot Event 2022:
| *fre22_task_navigation* | Task navigation, curved rows that get more difficult (eg. have more and larger holes) to the left |
| *fre22_task_mapping* | Task mapping, field with random holes, bottles and weeds spread throughout the field. The cans, bottles and weeds have no collision box and are static.
This world needs dandelion models which were only distributed among competitors of the Field Robot Event 2022. They are not uploaded to Github because they cannot be open-sourced. If you don't have access to these models, check out the `fre21_task_3` worlds.|
-Other sample Worlds:
+Worlds for the Field Robot Event 2021:
| Name | Description |
|:---- |:----------- |
| *fre21_task_1* | Task 1, curved rows without holes |
@@ -202,8 +207,54 @@ You can use these config files when generating worlds, e.g.:
ros2 run virtual_maize_field generate_world fre22_task_navigation_mini
```
-## Launching worlds
-The launch file to launch the worlds is called `simulation.launch`. You can launch the launch file by running `ros2 launch virtual_maize_field simulation.launch.py`. By default the launch file will launch `generated_world.world`. You can launch any world by using the `world_name` arg. e.g. `ros2 launch virtual_maize_field simulation.launch.py world_name:=simple_row_level_1.world`.
+## Launching and using generated worlds
+The launch file to launch the worlds is called `simulation.launch`. You can launch the launch file by running `ros2 launch virtual_maize_field simulation.launch.py`. By default the launch file will launch `generated_world.world`. You can launch any world by using the `world_name` arg. e.g. `ros2 launch virtual_maize_field simulation.launch.py world_name:=simple_row_level_1.world`. The generated world will be saved in `$ROS_HOME/virtual_maize_field` (usually, this will be `~/.ros/virtual_maize_field`).
+
+To add your own robot in the world, use the generated `robot_spawner.launch.py`. This launches your robot at the correct position in the generated world. Your launch file to launch your robot should look like (replace `<>` with your robot name):
+
+```python
+from __future__ import annotations
+
+from launch import LaunchDescription
+from launch.actions import IncludeLaunchDescription
+from launch.launch_description_sources import PythonLaunchDescriptionSource
+
+from virtual_maize_field import get_spawner_launch_file
+
+
+def generate_launch_description() -> LaunchDescription:
+ robot_spawner_launch = IncludeLaunchDescription(
+ PythonLaunchDescriptionSource([get_spawner_launch_file()]),
+ launch_arguments={"robot_name": "<>"}.items(),
+ )
+
+ return LaunchDescription([robot_spawner_launch])
+```
+
+Use the function `get_driving_pattern_file()` to get the path of the generated driving pattern and `get_markers_file` to get the path of the generated markers:
+
+```python
+from __future__ import annotations
+
+from csv import reader
+from pathlib import Path
+
+from virtual_maize_field import get_driving_pattern_file, get_markers_file
+
+def read_driving_pattern() -> None:
+ driving_pattern = Path(get_driving_pattern_file()).read_text("utf-8")
+ print(f"The driving pattern is {driving_pattern}")
+
+def read_markers_file() -> None:
+ with open(get_markers_file(), "r") as f:
+ reader = csv.reader(f)
+
+ # Skip header
+ next(reader)
+
+ for row in reader:
+ print(f"Position {row[2]}: x={float(row[0]):.3f} y={float(row[1]):.3f}")
+```
## License
Virtual Maize Field is copyright (C) 2021 *Farm Technology Group of Wageningen University & Research* and *Kamaro Engineering e.V.* and licensed under [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0).
diff --git a/gt/.gitkeep b/gt/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/launch/rviz.launch.py b/launch/rviz.launch.py
deleted file mode 100644
index 5929559..0000000
--- a/launch/rviz.launch.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from __future__ import annotations
-
-from ament_index_python.packages import get_package_share_directory
-from launch import LaunchDescription
-from launch_ros.actions import Node
-
-
-def generate_launch_description() -> LaunchDescription:
- # Create nodes
- start_rviz_cmd = Node(
- package="rviz",
- executable="rviz",
- name="rviz",
- arguments={
- "d": get_package_share_directory("virtual_maize_field")
- + "/rviz/config.rviz"
- }.items(),
- )
-
- ld = LaunchDescription()
-
- # Add nodes
- ld.add_action(start_rviz_cmd)
-
- return ld
diff --git a/launch/simulation.launch.py b/launch/simulation.launch.py
index e6147bf..03a3a78 100644
--- a/launch/simulation.launch.py
+++ b/launch/simulation.launch.py
@@ -1,46 +1,36 @@
from __future__ import annotations
+from os import environ, path
+
from ament_index_python.packages import get_package_share_directory
+
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.conditions import IfCondition
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration, PythonExpression
-from launch_ros.actions import Node
def generate_launch_description() -> LaunchDescription:
- use_sim_time = LaunchConfiguration("use_sim_time")
- gui = LaunchConfiguration("gui")
- paused = LaunchConfiguration("paused")
- headless = LaunchConfiguration("headless")
- world_path = LaunchConfiguration("world_path")
- world_name = LaunchConfiguration("world_name")
- check_for_updates = LaunchConfiguration("check_for_updates")
-
- # Create launch arguments
- declare_use_sim_time_cmd = DeclareLaunchArgument(
- name="use_sim_time", default_value="True"
- )
- declare_gui_cmd = DeclareLaunchArgument(name="gui", default_value="True")
- declare_paused_cmd = DeclareLaunchArgument(name="paused", default_value="False")
- declare_headless_cmd = DeclareLaunchArgument(name="headless", default_value="False")
- declare_world_path_cmd = DeclareLaunchArgument(
- name="world_path",
- default_value=get_package_share_directory("virtual_maize_field") + "/worlds/",
- )
- declare_world_name_cmd = DeclareLaunchArgument(
- name="world_name", default_value="generated.world"
+ _ros_home_path = environ.get("ROS_HOME", path.join(path.expanduser("~"), ".ros"))
+ cache_dir = path.join(_ros_home_path, "virtual_maize_field/")
+
+ use_sim_time = LaunchConfiguration("use_sim_time", default=True)
+ gui = LaunchConfiguration("gui", default=True)
+ paused = LaunchConfiguration("paused", default=False)
+ headless = LaunchConfiguration("headless", default=False)
+ world_path = LaunchConfiguration("world_path", default=cache_dir)
+ world_name = LaunchConfiguration("world_name", default="generated.world")
+
+ gz_server_launch_file = path.join(
+ get_package_share_directory("gazebo_ros"), "launch", "gzserver.launch.py"
)
- declare_check_for_updates_cmd = DeclareLaunchArgument(
- name="check_for_updates", default_value="True"
+ gz_client_launch_file = path.join(
+ get_package_share_directory("gazebo_ros"), "launch", "gzclient.launch.py"
)
- # Create nodes
- start_gazebo_server_cmd = IncludeLaunchDescription(
- PythonLaunchDescriptionSource(
- get_package_share_directory("gazebo_ros") + "/launch/gzserver.launch.py"
- ),
+ gz_server_launch = IncludeLaunchDescription(
+ PythonLaunchDescriptionSource([gz_server_launch_file]),
launch_arguments={
"world": [world_path, world_name],
"pause": paused,
@@ -49,36 +39,21 @@ def generate_launch_description() -> LaunchDescription:
}.items(),
)
- start_gazebo_client_cmd = IncludeLaunchDescription(
- PythonLaunchDescriptionSource(
- get_package_share_directory("gazebo_ros") + "/launch/gzclient.launch.py"
- ),
+ gz_client_launch = IncludeLaunchDescription(
+ PythonLaunchDescriptionSource([gz_client_launch_file]),
condition=IfCondition(PythonExpression([gui, " and not ", headless])),
launch_arguments={"use_sim_time": use_sim_time}.items(),
)
- start_check_updates_node_cmd = Node(
- package="virtual_maize_field",
- executable="check_for_updates",
- name="check_virtual_maize_field_updates",
- condition=IfCondition(check_for_updates),
- arguments={"use_sim_time": use_sim_time}.items(),
+ return LaunchDescription(
+ [
+ DeclareLaunchArgument(name="use_sim_time", default_value=use_sim_time),
+ DeclareLaunchArgument(name="gui", default_value=gui),
+ DeclareLaunchArgument(name="paused", default_value=paused),
+ DeclareLaunchArgument(name="headless", default_value=headless),
+ DeclareLaunchArgument(name="world_path", default_value=world_path),
+ DeclareLaunchArgument(name="world_name", default_value=world_name),
+ gz_server_launch,
+ gz_client_launch,
+ ]
)
-
- ld = LaunchDescription()
-
- # Declare the launch options
- ld.add_action(declare_use_sim_time_cmd)
- ld.add_action(declare_gui_cmd)
- ld.add_action(declare_paused_cmd)
- ld.add_action(declare_headless_cmd)
- ld.add_action(declare_world_path_cmd)
- ld.add_action(declare_world_name_cmd)
- ld.add_action(declare_check_for_updates_cmd)
-
- # Add nodes
- ld.add_action(start_gazebo_server_cmd)
- ld.add_action(start_gazebo_client_cmd)
- ld.add_action(start_check_updates_node_cmd)
-
- return ld
diff --git a/map/.gitkeep b/map/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/map/driving_pattern.txt b/map/driving_pattern.txt
deleted file mode 100644
index ea32f4f..0000000
--- a/map/driving_pattern.txt
+++ /dev/null
@@ -1 +0,0 @@
-S – 1L – 1R – 1L – 1R – 1L – 1R – 1L – 1R – 1L – 1R – F
\ No newline at end of file
diff --git a/misc/screenshot_v5.0_classic.png b/misc/screenshot_v5.0_classic.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e77d31db3d66a94c8632b514a4ab097d76adbca
GIT binary patch
literal 513512
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∈
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 |