Jetson AGX xavier 编译ORB_SLAM3及运行(ROS版本与非ROS版本)

1.下载源码与版本

源码版本:ORB_SLAM3-v0.4-beta
Pangolin版本:Pangolin-v0.5

2.安装非ros源码

参考博客:
ORB-SLAM3 v1.0 编译问题解决(搬运自github issue)
ubuntu18.04编译ORB_SLAM3遇到的问题
Vins-Fusion安装记录

3.安装ros源码

编译

chmod +x build_ros.sh
./build_ros.sh

4.运行EuRoC数据集

参考博客:
ORB-SLAM3编译以及在realsense D435i运行
ORB-SLAM3 ROS 运行
测试用的EUROC数据集 和TUM的VIO数据集

4.1运行非ros版本

1.数据集下载并解压

 wget  http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.zip

2.然后放在datasets文件夹里解压

文件夹结构:~/ORB3_WS/datasets /MH01/mav0

3.修改euroc_examples.sh的第二行

#!/bin/bash
pathDatasetEuroc='/home/agx/ORB3_WS/datasets' 
#Example, it is necesary to change it by the dataset path修改为自己数据集的文件

4.在exampls目录下的运行euroc_examples.sh 即可看到ORB_SLAM3的输出。

./euroc_examples.sh 

Jetson AGX xavier 编译ORB_SLAM3及运行(ROS版本与非ROS版本)_第1张图片

4.2运行ros版本

问题1: Failed to load module “canberra-gtk-module”
查看一下模块位置
locate libcanberra-gtk-module
发现已经安装
解决方案:重新安装
sudo apt-get install libcanberra-gtk-module

  1. 下载数据集 MH_03_medium.bag ,运行数据包
rosbag play MH_03_medium.bag /cam0/image_raw:=/camera/image_raw /imu0:=/imu

2.运行orb 单目imu版本

 rosrun ORB_SLAM3 Mono_Inertial /home/agx/ORB3_WS/ORB_SLAM3-v0.4-beta/Vocabulary/ORBvoc.txt /home/agx/ORB3_WS/ORB_SLAM3-v0.4-beta/Examples/Monocular-Inertial/EuRoC.yaml 

Jetson AGX xavier 编译ORB_SLAM3及运行(ROS版本与非ROS版本)_第2张图片
Jetson AGX xavier 编译ORB_SLAM3及运行(ROS版本与非ROS版本)_第3张图片

5.运行自己相机 orb 单目imu版本

5.1 修改相机话题,复制ros_mono.cc为ros_mono_usb.cc,修改为相机话题即可

ros::Subscriber sub = nodeHandler.subscribe("/camera/image_raw", 1, &ImageGrabber::GrabImage,&igb);

5.2 修改CMakeLists.txt文件,在最后添加

# Node for usb monocular  camera
rosbuild_add_executable(Mono_usb
src/ros_mono_usb.cc
)
target_link_libraries(Mono_usb
${LIBS}
)

编译ros源码

5.3 修改yaml文件

%YAML:1.0
#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
Camera.type: "PinHole"
# Camera calibration and distortion parameters (OpenCV) 
Camera.fx: 458.654
Camera.fy: 457.296
Camera.cx: 367.215
Camera.cy: 248.375
Camera.k1: -0.28340811
Camera.k2: 0.07395907
Camera.p1: 0.00019359
Camera.p2: 1.76187114e-05
Camera.width: 640
Camera.height: 480
# Camera frames per second 
Camera.fps: 20.0
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1
#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
# ORB Extractor: Number of features per image
ORBextractor.nFeatures: 800
# ORB Extractor: Scale factor between levels in the scale pyramid 	
ORBextractor.scaleFactor: 1.2
# ORB Extractor: Number of levels in the scale pyramid	
ORBextractor.nLevels: 8
# ORB Extractor: Fast threshold
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
# You can lower these values if your images have low contrast			
ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7
#--------------------------------------------------------------------------------------------
# Viewer Parameters
#---------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize: 2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500

5.4 运行launch 文件以及配置文件

rosrun ORB_SLAM3 Mono_usb /home/agx/ORB3_WS/ORB_SLAM3-v0.4-beta/Vocabulary/ORBvoc.txt /home/agx/ORB3_WS/ORB_SLAM3-v0.4-beta/Examples/Monocular/mono_usb.yaml

Jetson AGX xavier 编译ORB_SLAM3及运行(ROS版本与非ROS版本)_第4张图片

你可能感兴趣的:(ros,orb,zed,自动驾驶,人工智能,机器学习)