Registro del proceso de instalación y operación de ORB-SLAM2

Esté preparado para comenzar con 2 y luego obtener 3, porque no hay muchos tutoriales para 3.

  1. Después de descargar el paquete, descubrí que usleep frecuentemente reportaba errores durante la compilación. Use kdevelop para ver el archivo reportado con el error y luego agréguelo antes de compilar.
#include <unistd.h>
  1. Se produjo un error durante la compilación de ros:

/usr/lib/x86_64-linux-gnu/libboost_system.so: No se puede agregar el símbolo: falta DSO en la
línea de comando collect2: error: ld devolvió 1 estado de salida

Agregue uno al final del conjunto (LIBS) en el archivo Examples / ROS / ORB_SLAM2 / Cmakelist.txt:

-lboost_system

Y algunos enlaces a la biblioteca deben agregarse después de cmakelist. (No sé si es necesario, mira hacia atrás)

2. Ejecute parte
de los parámetros internos de D455 (no calibrado), use los siguientes comandos para ver los parámetros internos (entrada con dos terminales respectivamente):

roslaunch realsense2_camera rs_rgbd.launch
rostopic echo /camera/color/camera_info 

La referencia interna es (parte interceptada, porque parece estar ejecutándose todo el tiempo):

encabezado:
seq: 141 sello:
segundos: 1603789990
nsecs: 909847059
frame_id: "camera_color_optical_frame"
altura: 480
ancho: 640
distorsión_model: "plumb_bob"
D: [
-0.05395696684718132, 0.06465082615613937, -0.000591895]
-020595827829 , 0.0, 321.88739013671875, 0.0, 381.337158203125, 241.31826782226562, 0.0, 0.0, 1.0]
R: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0] P: [382.2296447753906, 0.0, 321.88739013671875, 0.0, 0.0 , 381.337158203125, 241.31826782226562, 0.0, 0.0, 0.0, 1.0, 0.0]
binning_x: 0 binning_y: 0 roi: x_offset: 0 y_offset: 0 height: 0 width: 0 do_rectify: False

No hay imagen después de ejecutar roslaunch. Se estima que dónde modificarlo, siento que puede probar esto (https://www.jianshu.com/p/f4bfe531306c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation) Se
estima que la modificación es en ORB Modifique la suscripción al tema de ros_rgbd.cc en SLAM2 / Examples / ROS / ORB-SLAM2 / src y cámbiela por su propia ruta de cámara. Es posible que el tema predeterminado no esté disponible.

4. Conecte Kinect a la computadora e ingrese el comando: $ roslaunch freenect_launch freenect.launch

En este punto, Kinect comienza a emitir el tema de la imagen.

5. El tema usado en el código fuente es / camera / image_raw, pero después de mi lista $ rostopic, no existe tal tema en absoluto, así que voy directamente a ORB_SLAM2 / Examples / ROS / ORB_SLAM2 / src / ros_mono.cc y cambio el tema a / camera / rgb / image_color está bien,
ejecute rosrun más tarde

Puede usar para rostopic listver qué temas son:

Luego, con rostopic hz +主题名la versión actual para verificar la frecuencia para verificar si el tema del tema que se está publicando, como:

rostopic hz / camera / color / image_raw

Resuelto el problema al inicio del anterior ORB-SLAM3. La suscripción al tema necesita ser modificada. Se estima que la imagen no se mostrará directamente usando el código fuente. Pero sospecho que para ORB-SLAM3, el siguiente valor de 100 no necesita cambiarse a 1, porque se volverá muy oscuro en rviz. En ORM-SLAM2, el código fuente es 1. Simplemente cambie el tema anterior.
Por lo tanto, modifique la suscripción al tema de ros_rgbd.cc en ORB-SLAM2 / Examples / ROS / ORB-SLAM2 / src:

message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/color/image_raw", 1);
message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "/camera/aligned_depth_to_color/image_raw", 1);

Luego vuelva a compilar ORB-SLAM2

chmod +x build_ros.sh
./build_ros.sh

Conecte realsense d435i e inicie ROS realsense2_camera:

roslaunch realsense2_camera rs_rgbd.launch

Primero ejecútelo con los parámetros de TUM1.yaml y pruébelo:

rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml 

¡Entonces podrá ver los puntos característicos reconocidos en tiempo real!

ORB-SLAM3 también se puede implementar de acuerdo con los pasos anteriores, es decir, simplemente reemplace el 2 anterior por 3. A veces, todavía encuentra que la imagen no se muestra. Saque la cámara para ver si hay una imagen en el visor de sentido real y luego ejecute de nuevo.

2020.10.28
Hoy, haga clic en este artículo para ejecutar los prismáticos (https://blog.csdn.net/qq_39266065/article/details/108275010). Lo principal es recordar cómo cambiar las cosas que se han modificado, para que solo pueda reinstalarlo si comete un error. .
1. Busque el archivo rs_camera.launch en la ruta / catkin_ws / src / realsense-ros / realsense2_camera / launch, verifique si los siguientes dos parámetros son falsos y cámbielos a verdadero.

  <arg name="enable_infra1"       default="true"/>
  <arg name="enable_infra2"       default="true"/>

Luego, modifique la suscripción al tema en / ORB_SLAM2 / Examples / ROS / ORB_SLAM2 / src, que originalmente era:

 message_filters::Subscriber<sensor_msgs::Image> left_sub(nh, "/camera/left/image_raw", 1);
message_filters::Subscriber<sensor_msgs::Image> right_sub(nh, "camera/right/image_raw", 1);

A:

message_filters::Subscriber<sensor_msgs::Image> left_sub(nh, "/camera/infra1/image_rect_raw", 1);
message_filters::Subscriber<sensor_msgs::Image> right_sub(nh, "/camera/infra2/image_rect_raw", 1);

Compilar después de la modificación:

  chmod +x build_ros.sh
  ./build_ros.sh

Supongo que te gusta

Origin blog.csdn.net/weixin_48250354/article/details/109313787
Recomendado
Clasificación