Enregistrement du processus d'installation et d'exploitation de l'ORB-SLAM2

Soyez prêt à commencer par 2, puis à en obtenir 3, car il n'y a pas beaucoup de tutoriels pour 3.

  1. Après avoir téléchargé le package, j'ai constaté que usleep signalait fréquemment des erreurs lors de la construction. Utilisez kdevelop pour afficher les fichiers signalés par des erreurs, puis ajoutez-les avant la compilation.
#include <unistd.h>
  1. Une erreur s'est produite lors de la compilation de ros:

/usr/lib/x86_64-linux-gnu/libboost_system.so: Impossible d'ajouter le symbole: DSO absent de la
ligne de commande collect2: erreur: ld a renvoyé 1 statut de sortie

Ajoutez une entrée à la fin de l'ensemble (LIBS) dans le fichier Exemples / ROS / ORB_SLAM2 / Cmakelist.txt:

-lboost_system

Et quelques liens vers la bibliothèque doivent être ajoutés après cmakelist. (Je ne sais pas si c'est nécessaire, regarde en arrière)

2. Exécutez une partie
des paramètres internes du D455 (non calibrés), utilisez les commandes suivantes pour afficher les paramètres internes (entrée avec deux bornes respectivement):

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

La référence interne est (partie interceptée, car elle semble fonctionner tout le temps):

header:
seq: 141 stamp:
secs: 1603789990
nsecs: 909847059
frame_id: "camera_color_optical_frame"
hauteur: 480
largeur: 640
distorsion_model: "plumb_bob"
D: [-0.05395696684718132,
0.06465082615613937, -0.00059189576680: -0.00059182780
: -0.000591827805 , 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 hauteur: 0 largeur: 0 do_rectify: False

Il n'y a pas d'image après l'exécution de roslaunch. On estime que là où le modifier, j'ai l'impression que vous pouvez essayer ceci (https://www.jianshu.com/p/f4bfe531306c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation)
. Modifiez l'abonnement à la rubrique ros_rgbd.cc dans SLAM2 / Exemples / ROS / ORB-SLAM2 / src et remplacez-la par votre propre chemin de caméra. La rubrique par défaut n'est peut-être pas disponible.

4. Connectez Kinect à l'ordinateur et entrez la commande: $ roslaunch freenect_launch freenect.launch

À ce stade, Kinect commence à émettre le sujet de l'image.

5. Le sujet utilisé dans le code source est / camera / image_raw, mais après ma liste $ rostopic, il n'y en a pas du tout, je vais donc directement à ORB_SLAM2 / Exemples / ROS / ORB_SLAM2 / src / ros_mono.cc et change le sujet en / camera / rgb / image_color est très bien,
exécutez rosrun plus tard

Vous pouvez utiliser pour rostopic listvoir quels thèmes sont:

Ensuite, avec rostopic hz +主题名la version actuelle pour vérifier la fréquence pour vérifier si le sujet de thème en cours de publication, tel que:

rostopic hz / camera / color / image_raw

Résolu le problème au début de l'ORB-SLAM3 précédent, l'abonnement à la rubrique doit être modifié, et on estime que l'image ne sera pas affichée directement à l'aide du code source. Mais je soupçonne que pour ORB-SLAM3, la valeur suivante de 100 n'a pas besoin d'être changée en 1, car elle deviendra très sombre dans rviz. Dans ORM-SLAM2, le code source est 1. Modifiez simplement le sujet précédent.
Par conséquent, modifiez l'abonnement à la rubrique de ros_rgbd.cc dans ORB-SLAM2 / Exemples / 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);

Puis recompilez ORB-SLAM2

chmod +x build_ros.sh
./build_ros.sh

Connectez realsense d435i et démarrez ROS realsense2_camera:

roslaunch realsense2_camera rs_rgbd.launch

Exécutez-le d'abord avec les paramètres de TUM1.yaml pour essayer:

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

Ensuite, vous pouvez voir les points caractéristiques reconnus en temps réel!

ORB-SLAM3 peut également être implémenté selon les étapes ci-dessus, c'est-à-dire qu'il suffit de remplacer le 2 ci-dessus par 3. Parfois, vous constatez toujours que l'image ne s'affiche pas. Retirez l'appareil photo pour voir s'il y a une image dans le visualiseur realsense, puis exécutez à nouveau.

2020.10.28
Aujourd'hui, cliquez sur cet article pour lancer les jumelles (https://blog.csdn.net/qq_39266065/article/details/108275010). L'essentiel est de se rappeler comment changer les choses qui ont été modifiées, afin que vous ne puissiez le réinstaller que si vous faites une erreur. .
1. Trouvez le fichier rs_camera.launch dans le chemin / catkin_ws / src / realsense-ros / realsense2_camera / launch, vérifiez si les deux paramètres suivants sont faux et changez-les en true.

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

Puis modifiez l'abonnement à la rubrique dans / ORB_SLAM2 / Examples / ROS / ORB_SLAM2 / src, qui était à l'origine:

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

À:

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

Compilez après la modification:

  chmod +x build_ros.sh
  ./build_ros.sh

Je suppose que tu aimes

Origine blog.csdn.net/weixin_48250354/article/details/109313787
conseillé
Classement