(2) Ejecute la demostración de cartógrafo con rosbag

Requisito previo: cartógrafo y ros del cartógrafo se han instalado

Recordatorio: es posible que deba reubicar el entorno ROS (su ruta de instalación) antes de algunas operaciones

source ${HOME}/catkin_ws/devel/setup.bash
//如果你的shell是zsh,则用zsh替代bash

Ejemplo 1: Deutsches Museum (Deutsches Museum)

2d descarga y ejecutar el paquete de instalación, el primer paquete es 1 descarga en línea, la segunda frase se monta
fuera de línea descarga paquete de Baidu la nube de disco código de extracción: rwp7

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

Descargue y ejecute el paquete de instalación 3D, la primera oración es descargar, la segunda oración es instalar

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag

Ejemplo 2: posicionamiento puro

Para ejecutar el posicionamiento puro, use 2 datos del paquete fuera de línea, el primer paquete se usa para construir un mapa y el segundo se usa para el posicionamiento puro
[¿Por qué?]¿Por qué se llama posicionamiento puro? De hecho, se usa únicamente para posicionamiento. Cuando el programa se está ejecutando, solo se crean mapas locales (conservan un número fijo de subimágenes). A medida que el robot se mueve y observa, se agregarán nuevas subimágenes. El submapa se eliminará, es decir, solo se retendrán los datos parciales del mapa. Entonces puede preguntar por qué solo retener datos de mapas locales. Entiendo que cuantos más datos locales se conserven, más datos y los datos del mapa original serán detectados por loopback, lo que aumentará la cantidad de cálculo y aumentará la probabilidad de desajuste, haciendo que todo el sistema sea inestable, así que aquí Solo para posicionar, no para construir mapas (es decir, actualizar el mapa), entonces puede preguntar cómo actualizar el mapa original (porque muchos entornos cambian con el tiempo). Esta pregunta está bien formulada, actualmente nadie implementa esta función en código fuente abierto, pero creo que no es difícil, siempre y cuando le diga al robot una posición inicial precisa (puede pasar el punto de referencia ((etiqueta de abril, código QR y otras características fuertes) ), O características láser, y finalmente puede agregar juicio humano), de acuerdo con la idea de actualizar el mapa (la implementación del código puede ser ligeramente diferente de la construcción del mapa, la construcción del mapa es de 0 a 1, la actualización del mapa es de 1 a 1 Proceso, la cantidad de cálculo de actualizar el mapa en el proyecto debe ser menor que la de construir el mapa)

Descargue el paquete 2d offline

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2016-04-05-14-44-52.bag
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2016-04-27-12-31-41.bag

La primera oración genera un mapa, la segunda oración ejecuta la reubicación

roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=${HOME}/Downloads/b2-2016-04-05-14-44-52.bag
roslaunch cartographer_ros demo_backpack_2d_localization.launch \
   load_state_filename:=${HOME}/Downloads/b2-2016-04-05-14-44-52.bag.pbstream \
   bag_filename:=${HOME}/Downloads/b2-2016-04-27-12-31-41.bag

load_state_filename son los datos del mapa generados por el primer paquete, el formato del mapa es pbstream
bag_filename es el nombre del segundo paquete fuera de línea

Descargar el paquete 3D sin conexión

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/b3-2016-04-05-13-54-42.bag
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/b3-2016-04-05-15-52-20.bag

La primera oración genera un mapa, la segunda oración ejecuta la reubicación

roslaunch cartographer_ros offline_backpack_3d.launch bag_filenames:=${HOME}/Downloads/b3-2016-04-05-13-54-42.bag
roslaunch cartographer_ros demo_backpack_3d_localization.launch \
   load_state_filename:=${HOME}/Downloads/b3-2016-04-05-13-54-42.bag.pbstream \
   bag_filename:=${HOME}/Downloads/b3-2016-04-05-15-52-20.bag

Ejemplo 3: puntos de referencia estáticos

La primera oración descarga el paquete fuera de línea, la segunda oración ejecuta el paquete fuera de línea

# Download the landmarks example bag.
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/mir/landmarks_demo_uncalibrated.bag

# Launch the landmarks demo.
roslaunch cartographer_mir offline_mir_100_rviz.launch bag_filename:=${HOME}/Downloads/landmarks_demo_uncalibrated.bag

Nota: Hay algunos problemas al ejecutar este paquete, algunos internautas entusiastas han respondido pacientemente de la siguiente manera:
Conozca la dirección: Anexo 2 del código fuente del cartógrafo lectura-Demo ejecutada y probando con Landmark
Les deseo a todos una demostración sin problemas.
[¿Por qué?]¿Qué es el hito? El hito es un hito, ¿por qué se llama hito estático? Porque esta señal de tráfico es estática e inmóvil. Una columna de fuego puede ser un hito estático porque es inmóvil en el medio ambiente, ¿por qué está inmóvil? ¿Cuáles son los beneficios de no moverse? La función de punto de referencia estático se usa para un posicionamiento rápido (creo). La ventaja de no movernos es que podemos conocer la posición de nosotros mismos (robot) en el entorno actual la próxima vez que observemos este punto de referencia nuevamente, al igual que tomé una foto con mi teléfono móvil Te he dado una foto del "Wu Yue Du Zun" en la Piedra Taishan (un gran hito). No hace falta decir que debes saber que definitivamente estoy en la Montaña Taishan (Localiza rápidamente mi posición)
Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

Ejemplo 4: Revo LDS

Hay un lidar de bajo costo llamado Revo, que utiliza sus datos para ejecutar SLAM de la
siguiente manera:

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/revo_lds/cartographer_paper_revo_lds.bag
roslaunch cartographer_ros demo_revo_lds.launch bag_filename:=${HOME}/Downloads/cartographer_paper_revo_lds.bag

Ejemplo 5: PR2

Hay un robot personal llamado PR2, que es muy famoso en los últimos años, y utiliza los datos recopilados por su hardware para ejecutar SLAM

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/pr2/2011-09-15-08-32-46.bag
roslaunch cartographer_ros demo_pr2.launch bag_filename:=${HOME}/Downloads/2011-09-15-08-32-46.bag

Ejemplo 6: Taurob Tracker

Hay un robot que se puede controlar de forma remota, parece que se usa para combatir incendios. No lo miré específicamente. Utilicé los datos recopilados por su hardware para ejecutar SLAM

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/taurob_tracker/taurob_tracker_simulation.bag
roslaunch cartographer_ros demo_taurob_tracker.launch bag_filename:=${HOME}/Downloads/taurob_tracker_simulation.bag
Posdata: las fuentes de datos láser utilizadas en cada ejemplo son diferentes, y los parámetros correspondientes serán diferentes. Hay algunos conocimientos sobre la depuración de parámetros. Los autores también están aprendiendo después de que las respuestas son respondidas una por una.
51 artículos originales publicados · Me gusta 13 · Visitantes más de 20,000

Supongo que te gusta

Origin blog.csdn.net/windxf/article/details/104360370
Recomendado
Clasificación