Esté preparado para comenzar con 2 y luego obtener 3, porque no hay muchos tutoriales para 3.
- 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>
- 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 list
ver 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