Semana 8. Simulación en Carla.
Durante esta octava semana he realizado una serie de modificaciones en la estructura del código para mejorar su organización y modularidad. Originalmente, todo el código estaba contenido en un solo archivo de Python, lo que dificultaba su mantenimiento y ampliación. Para solucionar esto, se ha dividido en varios archivos más pequeños, cada uno encargado de una parte específica del procesamiento y la visualización de los datos del LiDAR.
Modificaciones en la Estructura del Código
- Separación de la Visualización LiDAR:
- El código encargado de la visualización de la nube de puntos LiDAR, qe antes estaba todo en el archivo principal, se ha movido a un archivo separado llamado
LidarVisualizer.py. - Esto permite gestionar de forma independiente la visualización de los datos LiDAR y facilita la posibilidad de modificar o mejorar esta parte del código sin afectar otras funcionalidades del sistema.
- El código encargado de la visualización de la nube de puntos LiDAR, qe antes estaba todo en el archivo principal, se ha movido a un archivo separado llamado
- Modificación en la Segmentación de Planos:
- La segmentación de los planos, que antes estaba integrada en el código principal, ahora está gestionada por un archivo independiente
ImprovedPlaneSegmenter.py. - Esta modificación permite aislar la lógica de la segmentación, haciéndola más fácil de ajustar o reemplazar en caso de que se desee experimentar con diferentes algoritmos de segmentación o mejorar el rendimiento.
- La segmentación de los planos, que antes estaba integrada en el código principal, ahora está gestionada por un archivo independiente
- Gestión del LiDAR y Configuración del Entorno:
- El código que maneja la configuración y el setup del LiDAR, así como la interacción con el entorno de CARLA, se ha movido a
LidarSetup.py. - Esto incluye la creación y configuración del sensor LiDAR en el mundo de simulación y permite un control más específico sobre cómo y dónde se posicionan los sensores en el entorno de simulación.
- El código que maneja la configuración y el setup del LiDAR, así como la interacción con el entorno de CARLA, se ha movido a
- Proceso de los Datos Guardados:
- El proceso de los datos guardados, que implica cargar los archivos de datos, realizar la segmentación de planos y visualizarlos, ahora se maneja en
DataProcessing.py. - Esta estructura mejora la flexibilidad, ya que ahora se pueden procesar diferentes conjuntos de datos sin modificar el flujo general del programa.
- El proceso de los datos guardados, que implica cargar los archivos de datos, realizar la segmentación de planos y visualizarlos, ahora se maneja en
- Archivo Principal:
- El archivo
Main.pyahora funciona como el punto de entrada principal. Este archivo orquesta las interacciones entre los diferentes módulos. Aquí se configuran los sensores, se procesan los datos y se realizan las visualizaciones. - El archivo principal importa los módulos necesarios y se encarga de iniciar el flujo general del sistema, asegurándose de que cada parte del código interactúe correctamente.
- El archivo
Beneficios de la Modularización
- Mantenimiento Mejorado: Al separar las funcionalidades en diferentes archivos, ahora se me hace más fácil realizar cambios o mejoras en una parte del sistema sin afectar otras partes. Esto también me facilita la depuración, ya que se pueden aislar problemas a códigos específicos.
- Escalabilidad: Con una estructura modular, es más sencillo agregar nuevas funcionalidades o modificar las existentes. Por ejemplo, si en el futuro quiero implementar un nuevo algoritmo de segmentación o cambiar la visualización, se puede hacer de manera independiente.
- Reutilización de Código: La modularización permite reutilizar los módulos en diferentes partes del proyecto o incluso en proyectos futuros. Si se requiere utilizar alguna de estas funcionalidades en otro proyecto, simplemente se puede importar el módulo correspondiente.
Pruebas
Para probar esta nueva modificación he usado el escenario ‘Town01’ para probar la segmentación por parches planos de una calle donde hay un edificio con columnas como se puede ver en las imágenes, sin embargo, el resultado no es del todo óptimo ya que solo detecta las columnas más cercanas a la posición del Lidar, esto será un punto de investigación para mejorar el resultado durante las próximas semanas.

