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)
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