Para lanzar el servidor necesitamos un fichero .cfg que define los drivers que necesitaremos para la simulación.
Para cargar el simulador Stage y los dispositivos a simular del robot (el propio robot y dispositivo de ultrasonidos), el fichero sería el siguiente:
# load the Stage plugin simulation driver
driver
(
name "stage"
provides ["simulation:0" ]
plugin "libstageplugin"
# load the named file into the simulator
worldfile "simple.world"
)
driver
(
name "stage"
provides ["position2d:0" "sonar:0"]
model "robot1"
)
En primer lugar veamos el fichero de configuración del entorno en el que realizaremos la simulación. En el fichero .cfg teníamos:
worldfile "simple.world"
Esta línea, especifica en el driver de Stage que configuración de entorno (world) usaremos. En este caso el contenido del fichero simple.world es:
# Importamos el archivo en el que están definidos los datos del robot a utilizar
include "pioneer.inc"
# Importamos el archivo en el que están definidos los parametros del mapa
include "map.inc"
# Tamaño del entorno en metros
size [60 45]
# set the resolution of the underlying raytrace model in meters
resolution 0.02
# Configuraión de la ventana (tamaño, centro y escalado)
window ( size [ 800.000 600.000 ] center [0.000 0.000] scale 0.08 )
# Carga de la imagen con el mapa y definición del tamaño respecto al entorno
map
(
bitmap "bitmaps/robotux.png"
size [60 45]
)
# El robot
pioneer2dx
(
name "robot1"
color "red"
pose [-7.603 -4.391 -490.303]
)
El robot por defecto es el Pioneer2DX que si observamos en el fichero pioneer.inc da la posibilidad de configurarse con 8 ó 16 sónares en el anillo. En nuestro caso usaremos un anillo de 7 sonares por lo que debemos crear esa nueva configuración, lo único que hay que hacer es añadir a robot.inc la siguiente configuración:
# ---[ Configuración de anillo de 7 sonares ]---
define mi_sonar7 ranger (
scount 7
# transducer pose [Xpos Ypos Heading]
spose[0] [ 0.075 0.130 90 ]
spose[1] [ 0.115 0.115 60 ]
spose[2] [ 0.150 0.080 30 ]
spose[3] [ 0.170 0.025 0 ]
spose[4] [ 0.170 -0.025 -30 ]
spose[5] [ 0.150 -0.080 -60 ]
spose[6] [ 0.075 -0.130 -90 ]
# transducer size in meters [X Y] (affects the Stage window)
ssize[0] [ 0.01 0.05 ]
ssize[1] [ 0.01 0.05 ]
ssize[2] [ 0.01 0.05 ]
ssize[3] [ 0.01 0.05 ]
ssize[4] [ 0.01 0.05 ]
ssize[5] [ 0.01 0.05 ]
ssize[6] [ 0.01 0.05 ]
# transducer viewing parameters [Range_min Range_max FOV]
sview[0] [ 0 5.0 15 ]
sview[1] [ 0 5.0 15 ]
sview[2] [ 0 5.0 15 ]
sview[3] [ 0 5.0 15 ]
sview[4] [ 0 5.0 15 ]
sview[5] [ 0 5.0 15 ]
sview[6] [ 0 5.0 15 ]
)
Y al final de la definición estándar del robot (el bloque define pioneer2dx position) añadir el driver del anillo que hemos creado añadiendo la línea mi_sonar7() :
# use the sonar array defined above
mi_sonar7()
)
Para cargar el simulador Stage y los dispositivos a simular del robot (el propio robot y dispositivo de ultrasonidos), el fichero sería el siguiente:
# load the Stage plugin simulation driver
driver
(
name "stage"
provides ["simulation:0" ]
plugin "libstageplugin"
# load the named file into the simulator
worldfile "simple.world"
)
driver
(
name "stage"
provides ["position2d:0" "sonar:0"]
model "robot1"
)
En primer lugar veamos el fichero de configuración del entorno en el que realizaremos la simulación. En el fichero .cfg teníamos:
worldfile "simple.world"
Esta línea, especifica en el driver de Stage que configuración de entorno (world) usaremos. En este caso el contenido del fichero simple.world es:
# Importamos el archivo en el que están definidos los datos del robot a utilizar
include "pioneer.inc"
# Importamos el archivo en el que están definidos los parametros del mapa
include "map.inc"
# Tamaño del entorno en metros
size [60 45]
# set the resolution of the underlying raytrace model in meters
resolution 0.02
# Configuraión de la ventana (tamaño, centro y escalado)
window ( size [ 800.000 600.000 ] center [0.000 0.000] scale 0.08 )
# Carga de la imagen con el mapa y definición del tamaño respecto al entorno
map
(
bitmap "bitmaps/robotux.png"
size [60 45]
)
# El robot
pioneer2dx
(
name "robot1"
color "red"
pose [-7.603 -4.391 -490.303]
)
El robot por defecto es el Pioneer2DX que si observamos en el fichero pioneer.inc da la posibilidad de configurarse con 8 ó 16 sónares en el anillo. En nuestro caso usaremos un anillo de 7 sonares por lo que debemos crear esa nueva configuración, lo único que hay que hacer es añadir a robot.inc la siguiente configuración:
# ---[ Configuración de anillo de 7 sonares ]---
define mi_sonar7 ranger (
scount 7
# transducer pose [Xpos Ypos Heading]
spose[0] [ 0.075 0.130 90 ]
spose[1] [ 0.115 0.115 60 ]
spose[2] [ 0.150 0.080 30 ]
spose[3] [ 0.170 0.025 0 ]
spose[4] [ 0.170 -0.025 -30 ]
spose[5] [ 0.150 -0.080 -60 ]
spose[6] [ 0.075 -0.130 -90 ]
# transducer size in meters [X Y] (affects the Stage window)
ssize[0] [ 0.01 0.05 ]
ssize[1] [ 0.01 0.05 ]
ssize[2] [ 0.01 0.05 ]
ssize[3] [ 0.01 0.05 ]
ssize[4] [ 0.01 0.05 ]
ssize[5] [ 0.01 0.05 ]
ssize[6] [ 0.01 0.05 ]
# transducer viewing parameters [Range_min Range_max FOV]
sview[0] [ 0 5.0 15 ]
sview[1] [ 0 5.0 15 ]
sview[2] [ 0 5.0 15 ]
sview[3] [ 0 5.0 15 ]
sview[4] [ 0 5.0 15 ]
sview[5] [ 0 5.0 15 ]
sview[6] [ 0 5.0 15 ]
)
Y al final de la definición estándar del robot (el bloque define pioneer2dx position) añadir el driver del anillo que hemos creado añadiendo la línea mi_sonar7() :
# use the sonar array defined above
mi_sonar7()
)
No hay comentarios:
Publicar un comentario