1.使用Docker来构建一个镜像,标签为mytest:1.0,并且使用了.来指定上下文路径,这意味着Docker将会在当前目录中查找Dockerfile。
docker build -f ./orb3Dockerfile -t mytest:1.0 .
Dockerfile应该位于当前目录中,并且命名为orb3Dockerfile。
Dockerfile中应该包含构建镜像所需的指令。
您有足够的权限来执行docker build命令。
ORBSLAM3
1、非ROS版本运行单目
cd ORB_SLAM3
chmod +x build.sh
./build.sh
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml /home/datasets/EuRoc/MH_01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt
主要是数据集,非ros版本的存储是图像信息,而不是bag数据包
切换目录:首先,需要切换到ORB_SLAM3目录下,因为这个命令是针对该目录中的build.sh脚本执行的。cd ORB_SLAM3
权限问题:chmod +x build.sh
命令是用来给build.sh脚本执行权限的。确保这个命令在正确的目录下执行。
执行构建脚本:./build.sh
是执行构建脚本的过程。这将会编译ORB_SLAM3项目。
参数传递:在构建完成后,运行mono_euroc例程。确保所有的路径和文件名都是正确的。Vocabulary/ORBvoc.txt是ORB词汇文件,Examples/Stereo/EuRoC.yaml是配置文件,/home/datasets/EuRoc/MH_01是数据集路径,Examples/Stereo/EuRoC_TimeStamps/MH01.txt是时间戳文件。
2、运行双目
/Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml /home/datasets/EuRoc/MH_01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt
/Examples/Stereo/stereo_tum_vi ./Vocabulary/ORBvoc.txt ./Examples/Stereo/TUM1.yaml /home/datasets/TUM/dataset-corridor4_512_16/mav0/cam0/data /home/datasets/TUM/dataset-corridor4_512_16/mav0/cam1/data ./Examples/Stereo/TUM_TimeStamps/dataset-corridor4_512.txt
创建ROS工作空间
1.创建ROS工作站
mkdir orbslam_ws
cd orbslam_ws
mkdir src
cd src
catkin_init_workspace
catkin_make
将创建一个src目录和一个CMakeLists.txt文件,表示工作空间初始化成功。还会创建一个devel目录,其中包含编译后的文件。
2. 集成ORB_SLAM2到ROS工作空间
由于ORB_SLAM2不是为ROS直接设计的,因此需要进行一些额外的步骤来使其与ROS兼容。这通常涉及到创建一个节点,该节点会运行ORB_SLAM2并将其输出与ROS话题相连接。
3.运行ORB_SLAM2的双目视觉系统
要运行ORB_SLAM2的双目视觉系统,您需要执行以下步骤
- 将ORB_SLAM2的源代码复制到ROS工作空间的src目录中。
cd src
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
cd ORB_SLAM3
- 创建一个ROS节点,该节点将启动ORB_SLAM2的双目视觉系统。这通常涉及到编写一个launch文件,该文件会启动ORB_SLAM2的双目视觉节点。
- 在src目录中创建一个launch文件夹,并在其中创建一个launch文件,例如run_stereo_orb_slam.launch。
- 在run_stereo_orb_slam.launch文件中,编写启动ORB_SLAM2双目视觉系统的XML代码。这可能包括启动ORB_SLAM2的参数和连接到ROS话题的指令。
- 启动ROS节点和ORB_SLAM2双目视觉系统:
在工作空间下,Ctrl+h,可以看到隐藏的文件,在.bashrc文件中添加两行命令,设置ROS环境变量和路径
gedit ~