Skip to content

RenzoMinelli/apple_fields_ignition

Repository files navigation

fields-ignition

Generador de campos aleatorios para ignition Gazebo

Adaptación del proyecto fields ignition para campos de manzanas.

Sobre el proyecto

En el contexto del proyecto de grado, cuyo objetivo es evaluar distintos algoritmos de detección y conteo de manzanas, surge el problema de conseguir datos con los cuales experimentar. Es por esto que surge la posibilidad de adaptar el proyecto fields ignition, que genera campos de tomates para simular ambientes de prueba para robots agrícolas, de forma tal de generar campos de manzanas.

Ejecutar en un Catkin workspace

Instalar Ros Noetic y crear un Catkin workspace

Instalar Ignition Fortress

  • apt-get -q -y install ignition-fortress

Instalar ros-ign para Fortress

Nota: Para ignition Fortress solo se puede instalar desde Source. Definiendo export IGNITION_VERSION=fortress.

Instalar Blender

Para generar los campos de manzanas se debe tener instalado Blender en su versión 3.3.

Nota: Con versiones más nuevas de Blender, las texturas no son cargadas en Ignition.`.

Instalar Fields Ignition

  • git clone https://gitlab.fing.edu.uy/facundo.gutierrez/apple_fields_ignition en la carpeta src del workspace
  • rosdep install --from-paths src --ignore-src -r -y en la carpeta del workspace
  • ejecutar catkin_make

Interfaz de gestión

Se provee una interfaz de gestión que permite lanzar, grabar y generar instancias del simulador.

Para lanzar la interfaz se debe ejecutar el comando:

  • source devel/setup.sh en la carpeta del workspace.

Y luego

  • roslaunch fields_ignition fields_ignition.launch

Abriéndose la siguiente interfaz:

Lanzar instancia

Para lanzar una instancia del simulador se debe elegir una de las opciones de la lista desplegable y luego hacer clic en launch.

Grabar bags y videos

Para grabar un recorrido del simulador, se debe definir el nombre del recorrido, seleccionar si se desea grabar el bag o el video, y posteriormente hacer clic en "Grabar".

Para finalizar la grabación se debe presionar "Parar". Esto genera un directorio <fields_ignition>/generated/<instancia>/experiments/<nombre_del_experimento> en el directorio de la instancia seleccionada, donde se guarda el video y el bag grabados.

Nota: Todos los tópicos publicados son grabados.

Generar una nueva instancia del simulador

Para generar un nuevo campo de manzanas se debe modificar el JSON del campo de texto y hacer clic en "Generar". Para más detalles del funcionamiento ver Generación de campos de manzanas

Los detalles de cada campo del JSON se detallan a continuación:

Propiedad Descripición
world_name Nombre del mundo generado.
field_id Nombre identificador de la instancia del simulador. Si se mantiene un valor existente, se sobrescribe.
row_count Cantidad de filas.
row_length Cantidad de árboles por fila.
row_dist Distancia entre cada fila.
crop_dist Distancia entre árboles por fila.
tree_properties Propiedades de los árboles generados.
origin_coordinates Coordinadas de origen para la posición de los árboles.
camera_position Posición inicial de la cámara. Ver: "pose" en SDF Camera Sensor
husky_initial_position Posición inicial del robot. Ver: "pose" en SDF World Model

Propiedades del árbol

Acá se listan las propiedades más importantes. Para ver todas las propiedades, además de cómo ejecutar de manera independiente la generación de árboles, ver Generación de árboles de manzanas.

Propiedad Descripición
fruits/count_proportion Probabilidad de agregar una fruta en un nodo. Rango: [0,1]
fruits/size_range Intervalo de tamaños de las frutas en metros.
leaf/count_proportion Probabilidad de agregar una hoja en un nodo. Rango: [0,1]
leaf/size_range Intervalo de tamaños de las hojas en metros.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •