![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged virtual_maize_field at Robotics Stack Exchange
![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged virtual_maize_field at Robotics Stack Exchange
![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged virtual_maize_field at Robotics Stack Exchange
![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged virtual_maize_field at Robotics Stack Exchange
![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged virtual_maize_field at Robotics Stack Exchange
![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged virtual_maize_field at Robotics Stack Exchange
![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged virtual_maize_field at Robotics Stack Exchange
![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged virtual_maize_field at Robotics Stack Exchange
![]() |
virtual_maize_field package from virtual_maize_field repovirtual_maize_field |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 6.0.0 |
License | GPLv3 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Description | ROS package to procedural generate randomized fields with rows of plants for Gazebo |
Checkout URI | https://github.com/fieldrobotevent/virtual_maize_field.git |
VCS Type | git |
VCS Version | ros2-gz |
Last Updated | 2025-03-04 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | simulation agriculture ros gazebo ros2 maize ignition-gazebo gazebo-classic fieldrobotevent |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Field Robot Event Organization
Authors
Virtual Maize Field
This is a package to procedurally generate randomized fields with rows of plants for Gazebo.
ROS Distro | Gazebo version | Branch | Build status |
---|---|---|---|
Rolling | Gazebo | ros2-gz |
|
Jazzy | Gazebo | ros2-gz |
|
Rolling | Gazebo Classic | ros2 |
|
Humble | Ignition Gazebo | ros2-ign |
|
Humble | Gazebo Classic | ros2 |
|
Noetic | Gazebo Classic | main |
Installation
Clone this repository and build the workspace. Additional you’ll need the following packages:
rosdep install virtual_maize_field
This package has been tested on ROS 2 Humble, Jazzy 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.
You can call the script using
ros2 run virtual_maize_field generate_world
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
``` usage: generate_world [-h] [--row_length ROW_LENGTH] [--rows_curve_budget ROWS_CURVE_BUDGET] [--row_width ROW_WIDTH] [--rows_count ROWS_COUNT] [--row_segments [ROW_SEGMENTS [ROW_SEGMENTS ...]]] [--row_segment_straight_length_min ROW_SEGMENT_STRAIGHT_LENGTH_MIN] [--row_segment_straight_length_max ROW_SEGMENT_STRAIGHT_LENGTH_MAX] [--row_segment_sincurved_offset_min ROW_SEGMENT_SINCURVED_OFFSET_MIN] [--row_segment_sincurved_offset_max ROW_SEGMENT_SINCURVED_OFFSET_MAX] [--row_segment_sincurved_length_min ROW_SEGMENT_SINCURVED_LENGTH_MIN] [--row_segment_sincurved_length_max ROW_SEGMENT_SINCURVED_LENGTH_MAX] [--row_segment_curved_radius_min ROW_SEGMENT_CURVED_RADIUS_MIN] [--row_segment_curved_radius_max ROW_SEGMENT_CURVED_RADIUS_MAX] [--row_segment_curved_arc_measure_min ROW_SEGMENT_CURVED_ARC_MEASURE_MIN] [--row_segment_curved_arc_measure_max ROW_SEGMENT_CURVED_ARC_MEASURE_MAX] [--row_segment_island_radius_min ROW_SEGMENT_ISLAND_RADIUS_MIN] [--row_segment_island_radius_max ROW_SEGMENT_ISLAND_RADIUS_MAX] [--ground_resolution GROUND_RESOLUTION] [--ground_elevation_max GROUND_ELEVATION_MAX] [--ground_headland GROUND_HEADLAND] [--ground_ditch_depth GROUND_DITCH_DEPTH] [--plant_spacing_min PLANT_SPACING_MIN] [--plant_spacing_max PLANT_SPACING_MAX] [--plant_height_min PLANT_HEIGHT_MIN] [--plant_height_max PLANT_HEIGHT_MAX] [--plant_radius PLANT_RADIUS] [--plant_radius_noise PLANT_RADIUS_NOISE] [--plant_placement_error_max PLANT_PLACEMENT_ERROR_MAX] [--plant_mass PLANT_MASS] [--hole_prob [HOLE_PROB [HOLE_PROB ...]]] [--hole_size_max [HOLE_SIZE_MAX [HOLE_SIZE_MAX ...]]] [--crop_types [CROP_TYPES [CROP_TYPES ...]]] [--litters LITTERS] [--litter_types [LITTER_TYPES [LITTER_TYPES ...]]] [--weeds WEEDS] [--weed_types [WEED_TYPES [WEED_TYPES ...]]] [--ghost_objects GHOST_OBJECTS] [--location_markers LOCATION_MARKERS] [--load_from_file LOAD_FROM_FILE] [--seed SEED] [--show_map] [{fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini}] Generate a virtual maize field world for Gazebo. positional arguments: {fre21_task_2_mini,fre21_task_2_fast,fre21_task_1_mini,fre22_task_mapping_mini,fre22_task_navigation,fre21_task_3_fast,fre22_task_mapping,fre21_task_4_fast,fre21_task_2,fre21_task_3_mini,fre22_task_mapping_fast,fre21_task_1,fre21_task_3,fre22_task_navigation_fast,fre21_task_1_fast,fre21_task_4,fre22_task_navigation_mini,fre21_task_4_mini} File truncated at 100 lines [see the full file](https://github.com/fieldrobotevent/virtual_maize_field/tree/ros2-gz/./README.md)Virtual Maize Field (ROS 2 Gazebo)
Version 6.0.0 (2025-03-03)
- Change default to Gazebo from Gazebo classic (#76)
- Add new launch parameter
verbose
to increase Gazebo verbosity - robot_spawner.launch.py is now more flexible with parameter overwrites and can also load models from file
[!IMPORTANT] This is a breaking change. You need to update all Gazebo plugins used in your robot model.
Version 5.0.0 (2024-01-20)
- Refactor to Ignition Gazebo (#57)
- Change location of generated files (#56)
- Remove outdated script that checks for updates (#56)
[!IMPORTANT]
Since the location of the robot spawner launch file is also changed, update your launch file. See the readme for an example.
Version 4.7.3 (2023-05-10)
- Add warning for non-public models (#54)
- Fix GitHub actions for ROS 2 (#51)
- Fix world generation in ROS 2 (#46)
- Fix
TypeError
when creating worlds (#44) - Fix setuptools warning (#36)
- Fix GitHub actions (#35)
Version 4.7.2 (2022-06-10)
- Fix row width to be consistent (#32)
Version 4.7.1 (2022-06-10)
- Change sigmoid function to sinus (#31)
Version 4.7.0 (2022-06-09)
- Add litter to the mapping task (#28)
Version 4.6.1 (2022-06-08)
- Fix
TypeError
when generating world (#27)
Version 4.6.0 (2022-06-03)
- Fix length of the field to match the competition description (#25)
Version 4.5.0 (2022-06-02)
- Add sigmoid function to create fields (#24)
Version 4.4.1 (2022-05-30)
- Lower the spawn height of the robot (#23)
Version 4.4.0 (2022-05-25)
- Move
map.csv
andmap.png
to a seperate folder to disable access during competition (#21) - Remove the
bin
folder (#22)
Version 4.3.1 (2022-05-04)
Version 4.3.0 (2022-05-3)
- Add dandelion models (#14)