yolo_slam3 ros安装篇

前面已经能够使用RGB-D跑出深度图像,但是主要的还是使用ros进行实现

这里先进行ros的安装

这里先配置一下软件源

清华大学开源软件镜像站 | Tsinghua Open Source Mirror

找到Ubuntu,然后点击旁边的问号

在这个地方选择20的版本,将信息复制下来

将里面的内容替换掉即可

编辑完成之后出现了一个报错显示:

但是提示是这个并不影响使用我们暂且搁置了

现在开始正式安装ROS

首先明白为什么要使用ros

一句话:只需要关注算法的实现,而不必从头开始处理硬件接口和通信问题。

配置公钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654


更新软件库

sudo apt-get update

开始安装   20的版本对应的是noetic版本。

sudo apt install ros-noetic-desktop-full

报错,说明软件源当中没有

sudo sh -c 'wget -O /etc/apt/trusted.gpg.d/ros.asc https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc'
添加ros仓库软件密钥

sudo sh -c 'echo "deb [arch=amd64] http://packages.ros.org/ros/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros-latest.list'
添加软件源

sudo apt update
更新一下软件源

sudo apt install ros-noetic-desktop-full
在执行一下就可以了,之后的安装过程大概需要几分钟

 安装 rosdep

为了确保你能够正确安装 ROS 的依赖包,你还需要安装 rosdep

我们先初始化一下

sudo apt install python3-rosdep2
安装一下,这里装的是rosdep2是包括rosdep1的

这时候出现了一个网络超时的问题,不小心把终端关了,但是大概意思就是timeout

sudo nano /etc/ros/rosdep/sources.list.d/20-default.list
打开这个文件直接是用光标控制的

https://mirrors.tuna.tsinghua.edu.cn/ros/rosdep/rosdep-latest.tar.gz
添加上这个,ctrl+O保存,会出现保存文件的路径,回车,ctrl+X退出即可。

在来执行命令即可

出现

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
执行一下这个命令,然后在初始化一下

这样就表示成功了

按照要求我们来更新一下

rosdep update

这样就更新成功了

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
配置一下环境变量,并让他生效

安装rosinstall

sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
 

测试

打开一个新的终端,输入命令roscore

说明缺少东西,或者是环境没有配置好,我们先测试一下环境

echo $ROS_PACKAGE_PATH
输入这个

出现这个路径说明没问题

sudo apt install python3-roslaunch

我们安装包即可

再次roscore

sudo apt-get install ros-noetic-roslaunch
刚才的包安装的不完整,使用这个安装

最后roscore

这样表示运行成功

第二个终端

rosrun turtlesim turtlesim_node

按照要求安装

sudo apt install ros-noetic-rosbash
应该是这么安装,要标明版本,不然系统不知道安装哪个版本的,上面的问题其实也是一样的

sudo apt-get install ros-noetic-turtlesim
同样的,提示你安装turtlesim的时候,也要表明版本

这时候我们再来

rosrun turtlesim turtlesim_node

这时候就出现了

新建第三个终端

输入命令

rosrun turtlesim  turtle_teleop_key

这时候我们把鼠标放在这里用上下左右箭就可以控制了

参考的博主是,博主讲的很全,万分感谢。

【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程_ubuntu20.04安装ros-CSDN博客

/home/croco/桌面/YOLO_SLAM3/YOLO_ORB_SLAM3-master/Examples/ROS

执行运行脚本之后

[rospack] Error: package 'YOLO_ORB_SLAM3' depends on non-existent package 'tf' and rosdep claims that it is not a system dependency. Check the ROS_PACKAGE_PATH or try calling 'rosdep update'
[rospack] Error: package 'YOLO_ORB_SLAM3' depends on non-existent package 'image_transport' and rosdep claims that it is not a system dependency. Check the ROS_PACKAGE_PATH or try calling 'rosdep update'

/opt/ros/noetic/share/cpp_common/package.xml /opt/ros/noetic/share/rostime/package.xml /opt/ros/noetic/share/roscpp_traits/package.xml /opt/ros/noetic/share/roscpp_serialization/package.xml /opt/ros/noetic/share/catkin/package.xml /opt/ros/noetic/share/genmsg/package.xml /opt/ros/noetic/share/genpy/package.xml /opt/ros/noetic/share/message_runtime/package.xml /opt/ros/noetic/share/gencpp/package.xml /opt/ros/noetic/share/geneus/package.xml /opt/ros/noetic/share/gennodejs/package.xml /opt/ros/noetic/share/genlisp/package.xml /opt/ros/noetic/share/message_generation/package.xml /opt/ros/noetic/share/rosbuild/package.xml /opt/ros/noetic/share/rosconsole/package.xml /opt/ros/noetic/share/std_msgs/package.xml /opt/ros/noetic/share/rosgraph_msgs/package.xml /opt/ros/noetic/share/xmlrpcpp/package.xml /opt/ros/noetic/share/roscpp/package.xml /opt/ros/noetic/share/geometry_msgs/package.xml /opt/ros/noetic/share/sensor_msgs/package.xml /opt/ros/noetic/share/cv_bridge/package.xml
CMake Error at /opt/ros/noetic/share/ros/core/rosbuild/public.cmake:129 (message):

Failed to invoke rospack to get compile flags for package 'YOLO_ORB_SLAM3'.
Look above for errors from rospack itself.  Aborting.  Please fix the
broken dependency!

Call Stack (most recent call first):
/opt/ros/noetic/share/ros/core/rosbuild/public.cmake:207 (rosbuild_invoke_rospack)
CMakeLists.txt:4 (rosbuild_init)

-- Configuring incomplete, errors occurred!
See also "/home/croco/桌面/YOLO_SLAM3/YOLO_ORB_SLAM3-master/Examples/ROS/YOLO_ORB_SLAM3/build/CMakeFiles/CMakeOutput.log".
make: *** 没有指明目标并且找不到 makefile。 停止。

这个问题就是少了两个包

sudo apt-get update
sudo apt-get install ros-noetic-tf
sudo apt-get install ros-noetic-image-transport
然后在编译就完成了 这个过程大概3分钟左右

分别打开两个终端

roslaunch YOLO_ORB_SLAM3 camera_topic_remap.launch

rosrun YOLO_ORB_SLAM3 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/RealSense_D435i.yaml

但是我们现在没有相机,所以没有画面产生。

我们去下载相关的数据集,使用数据集去跑动,下载地址

Computer Vision Group - Dataset Download

ctrl+f直接搜索找到,点击这个  ROS bag

将这个文件放到yolo-slam3文件夹下

    message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/rgb/image_color", 100);
    message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "/camera/depth/image", 100);

修改之后重新编译一下代码

./build_ros.sh

在打开三个终端分别执行

roscore

rosrun YOLO_ORB_SLAM3 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml

rosbag play rgbd_dataset_freiburg3_sitting_static.bag

最后成功

三个输出信息

croco@croco-virtual-machine:~/桌面/YOLO_SLAM3/YOLO_ORB_SLAM3-master$ roscore
... logging to /home/croco/.ros/log/1ea927d0-0de6-11f0-8627-7759680f9e2d/roslaunch-croco-virtual-machine-173835.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://croco-virtual-machine:38753/
ros_comm version 1.17.0


SUMMARY
========

PARAMETERS
 * /rosdistro: noetic
 * /rosversion: 1.17.0

NODES

auto-starting new master
process[master]: started with pid [173850]
ROS_MASTER_URI=http://croco-virtual-machine:11311/

setting /run_id to 1ea927d0-0de6-11f0-8627-7759680f9e2d
process[rosout-1]: started with pid [173867]
started core service [/rosout]
croco@croco-virtual-machine:~/桌面/YOLO_SLAM3/YOLO_ORB_SLAM3-master$ rosrun YOLO_ORB_SLAM3 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml

ORB-SLAM3 Copyright (C) 2017-2020 Carlos Campos, Richard Elvira, Juan J. Gómez, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
ORB-SLAM2 Copyright (C) 2014-2016 Raúl Mur-Artal, José M.M. Montiel and Juan D. Tardós, University of Zaragoza.
This program comes with ABSOLUTELY NO WARRANTY;
This is free software, and you are welcome to redistribute it
under certain conditions. See LICENSE.txt.

Input sensor was set to: RGB-D
Loading settings from Examples/RGB-D/TUM3.yaml
Camera1.k3 optional parameter does not exist...
	-Loaded camera 1
Camera.newHeight optional parameter does not exist...
Camera.newWidth optional parameter does not exist...
	-Loaded image info
	-Loaded RGB-D calibration
	-Loaded ORB settings
Viewer.imageViewScale optional parameter does not exist...
	-Loaded viewer settings
System.LoadAtlasFromFile optional parameter does not exist...
System.SaveAtlasToFile optional parameter does not exist...
	-Loaded Atlas settings
System.thFarPoints optional parameter does not exist...
	-Loaded misc parameters
----------------------------------
SLAM settings: 
	-Camera 1 parameters (Pinhole): [ 535.4 539.2 320.1 247.6 ]
	-Camera 1 distortion parameters: [  0 0 0 0 ]
	-Original image size: [ 640 , 480 ]
	-Current image size: [ 640 , 480 ]
	-Sequence FPS: 30
	-RGB-D depth map factor: 5000
	-Features per image: 2000
	-ORB scale factor: 1.2
	-ORB number of scales: 8
	-Initial FAST threshold: 20
	-Min FAST threshold: 7


Loading ORB Vocabulary. This could take a while...
Vocabulary loaded!

Initialization of Atlas from scratch 
Creation of new map with id: 0
Creation of new map with last KF id: 0
Seq. Name: 
There are 1 cameras in the atlas
Camera 0 is pinhole
Starting the Viewer
First KF:0; Map init KF:0
New Map created with 836 points
Fail to track local map!
Fail to track local map!
Fail to track local map!
LM: Active map reset recieved
LM: Active map reset, waiting...
LM: Reseting current map in Local Mapping...
LM: End reseting Local Mapping...
LM: Reset free the mutex
LM: Active map reset, Done!!!
mnFirstFrameId = 0
mnInitialFrameId = 0
4 Frames set to lost
First KF:1; Map init KF:0
New Map created with 583 points
croco@croco-virtual-machine:~/桌面/YOLO_SLAM3/YOLO_ORB_SLAM3-master$ rosbag play rgbd_dataset_freiburg3_sitting_static.bag
[ INFO] [1743394306.922904367]: Opening rgbd_dataset_freiburg3_sitting_static.bag

Waiting 0.2 seconds after advertising topics... done.

Hit space to toggle paused, or 's' to step.
 [DELAYED]  Bag Time: 1341845688.492168   Duration: 0.000000 / 23.926082   Delay [RUNNING]  Bag Time: 1341845688.492168   Duration: 0.000000 / 23.926082         [RUNNING]  Bag Time: 1341845688.492168   Duration: 0.000000 / 23.926082         [RUNNING]  Bag Time: 1341845688.492688   Duration: 0.000520 / 23.926082         [RUNNING]  Bag Time: 1341845688.502611   Duration: 0.010443 / 23.926082         [RUNNING]  Bag Time: 1341845688.512538   Duration: 0.020370 / 23.926082         [RUNNING]  Bag Time: 1341845688.522476   Duration: 0.030308 / 23.926082         [RUNNING]  Bag Time: 1341845688.534292   Duration: 0.042124 / 23.926082         [RUNNING]  Bag Time: 1341845688.543022   Duration: 0.050854 / 23.926082               
Done.

echo "Building ROS nodes"

cd Examples/ROS/ORB_SLAM3
mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make -j

 我们来执行一下后来运行命令 实时单目效果

rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml

 

在编译的过程中遇到这个问题。

自己写代码去跑

以上参考的资料

Ubuntu20.04的ROS环境安装ORB-SLAM3详解_树莓派ubuntu20.04运行orbslam3与ros-CSDN博客

自己标定数据集。

intel RealSense D435i自制数据集跑SLAM-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值