ROS机器人小车建模仿真与SLAM(6)

目录

前言

一、ORB-SLAM2 安装和编译

1.1 ORB-SLAM2下载

1.2 环境配置

1.2.1 安装Pangolin

1.2.2 安装OpenCV3(安装4会冲突!)

1.2.3 安装Eigen3

1.2.4 Ceres安装 

1.2.5 DBoW3安装

1.2.6 g2o安装 

1.3 安装运行ORB_SLAM2

二、运行Kitee数据集

2.1 数据集准备

2.2 制作自己的数据集(单目)

总结 

参考


一 . 参考网上资料,在ROS中完成一个机器小车的模型创建,传感器配置,仿真环境的设置,并控制机器小车进行运动。

参考:

  【Autolabor初级教程】ROS机器人入门  【Autolabor初级教程】ROS机器人入门_哔哩哔哩_bilibili

 Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

Scout mini 仿真指南  松灵学院 | Scout mini 仿真指南_松灵开发社区-CSDN博客

二.  参考课件资料,在ROS中利用ROS工具完成你手机广角津贴(畸变较为严重)的标定,写出详细过程和输出结果。

三. 在ROS下,下载编译orbslam2代码,并在kitti数据集的一个序列图像中进行实验。

前言

ORB-SLAM2是一个非常经典的视觉SLAM 开源方案,可以作为我们学习SLAM的范本。

一、ORB-SLAM2 安装和编译

1.1 ORB-SLAM2下载

从github.com下载ORB-SLAM2的代码。地址是:
ORB-SLAM2

可以在github上直接download ZIP压缩文件。也可在安装git之后,用以下命令在终端上下载

git clone https://github.com/raulmur/ORB_SLAM2

最后我们会下载得到这个文件 

 

1.2 环境配置

在打开上述github链接后,下翻至底会看到 2.Prerequisites这表示运行ORB-SLAM2需要准备这些环境

我们暂且不用着急,一条一条按步骤安装
他说我们测试这个库在ubantu版本12.04,14.04和16.04上,但是本人是在ubantu20.04上测试的,完全没有问题。我们还需要安装C++11或C++0x编译器。在编译ORB-SLAM2过程中我们需要cmake,所以没有安装的同学可以使用这条命令下载 

sudo apt install cmake 
1.2.1 安装Pangolin

接下来我们需要安装Pangolin,我推荐大家从此链接中下载Pangolin
在下载了ZIP压缩包后解压缩放在ubantu的/home下(此处只要是英文路径都可以),但别急着安装Pangolin我们还需要安装一些必要的库

OpenGL:

sudo apt install libgl1-mesa-dev

 Glew:

sudo apt-get install libglew-dev

Boost:

sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev

Python2/Python3:

sudo apt-get install libpython2.7-dev

接下来就可以安装Pangolin了

cd Pangolin
mkdir build 
cd build
cmake ..
cmake --build .

好了到此为止,Pangolin已经安装完毕了

1.2.2 安装OpenCV3(安装4会冲突!)

自己去官网下个opencv3系列,下载完成后,将其提取到主目录。,将该文件夹重命名为opencv3。

(1)安装cmake和依赖环境

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

(2)下载opencv3

下载地址:Releases - OpenCV
点击Sources进行下载自己需要的版本压缩包,我这里下的是3.4.16版本

(3)解压文件

解压后,将文件夹放自己喜欢的地方,将解压后的文件夹重新命为opencv3

 

在opencv3文件夹下新建build文件夹

终端运行

make build

 进入build文件夹下

cd build 

(4)进行cmake

在build目录下运行

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

(5)进行编译

接下来时一个漫长的等待过程,大概需要等10分钟,不要多虑

sudo make -j8

可以使用sudo make -j8 、sudo make -j4 、sudo make
我这里就使用sudo make -j8 

(6)进行安装
再执行

sudo make install

(7)配置环境

修改ld.so.conf文件
用gedit打开/etc/ld.so.conf
在文件中加上一行 /usr/loacal/lib
其中/user/loacal是opencv安装路径也就是makefile中指定的安装路径
终端执行

sudo gedit /etc/ld.so.conf

输入:

include /usr/local/lib

保存退出

运行下面语句刷新库链接配置

sudo ldconfig

(8)修改bash.bashrc文件

终端执行

sudo gedit /etc/bash.bashrc 

在文件末尾加入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存退出

然后在命令行中输入刷新

source /etc/bash.bashrc

(9)检验是否安装成功

在命令行中输入如下命令:

pkg-config opencv --modversion

如图所示,出现版本号就安装成功了。 

1.2.3 安装Eigen3

推荐大家安装版本 3.2.10这个版本目前是最稳定的bug较少

大家可以在这个网站上描述下载。

点击如图所示的ZIP文件下载后解压放到ubantu中,进入eigen文件加中执行以下步骤

mkdir build
cd build
cmake ..
sudo make install

安装后,头文件安装在/usr/local/include/eigen3中。这一步十分重要我们需要去检查安装到的路径。不然后在后续的ORB-SLAM2编译过程中会找不到文件。后续我们会在问题后告诉大家如何解决
最后一步的 DBoW2 和 g2o ,他们已经存在于ORB-SLAM2文件夹中的 Thirdparty文件夹中 

1.2.4 Ceres安装 

源码下载

GitHub - ceres-solver/ceres-solver: A large scale non-linear optimization library

安装依赖源

sudo apt-get install  liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

编译 

cd ceres-solver
mkdir build && cd build
cmake ..
sudo make -j8
sudo make install
1.2.5 DBoW3安装

源码下载

GitHub - rmsalinas/DBow3: Improved version of DBow2

编译

mkdir build
cd build/
cmake ..
make
sudo make install

1.2.6 g2o安装 

源码下载

项目首页 - g2o - GitCode

安装依赖源

sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3

 编译

cd g2o
mkdir build && cd build
cmake ..
sudo make -j8
sudo make install

1.3 安装运行ORB_SLAM2

这里巨坑!,里面要修改很多错误,直接建议大家使用我修改好的,想自己修改的,可以慢慢去百度,解决error。

链接: https://pan.baidu.com/s/1njYz36ZCjN8xzpPyX9PA1A?pwd=6efv   提取码: 6efv

下载后,提取到主目录,,将文件夹名改为ORB_SLAM2,打开一个新终端,输入以下代码:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

若是安装出现虚拟机卡死机的情况,有可能是内存不足,我就是原来4g老是死机,分16g就没事了;要是出了其他问题。可以参考这两篇文章

Ubuntu20.04配置ORBSLAM2并运行(保姆级教程)_在ubuntu20.04上安装并运行orb-slam2(保姆级教程)-CSDN博客

ubuntu20编译运行orb-slam3踩坑_make[2]: *** [cmakefiles/orb_slam3.dir/build.make:-CSDN博客

安装完成是这样的

二、运行Kitee数据集

2.1 数据集准备

Computer Vision Group - Dataset Download (tum.de)

 

下载好后,进入ORB_SLAM2文件夹创建一个文件夹:data,将下载好的数据集压缩包提取到data下面,然后打开一个新终端输入以下命令:

cd ORB_SLAM2
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz

2.2 制作自己的数据集(单目)

1、下载我给的这两个文档===文档===,一个CPP,一个yaml文件,将其复制到ORB_SLAM2下面,再用自己的手机拍一个视频,1、手机横向,2、开始拍摄时,首先手机左右缓慢水平移动,像螃蟹一样横着左右运动!,然后大概5s后,再慢慢往前走,不要走的太快,转弯时不要太快,以防跟踪丢失!

2、录制完成后,将其复制到ORB_SLAM2文件下,重命名为test.mp4,用微信传到电脑时,最好选择原图传送!,

3、以上步骤完成后,ORB_SLAM2里面应该多了三个文件:test.cpp,test.yaml,test.mp4.

4、修改ORB_SLAM2里面的CMakeLists.txt,添加如下代码:保存

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
add_executable(test test.cpp)
target_link_libraries(test ${PROJECT_NAME})

5、编译运行

打开一个新终端,输入如下:

cd ORB_SLAM2
mkdir build
cd build
cmake ..
make -j
cd ..
./test

总结 

ORB_SLAM2的安装实在是太坑了,整篇下来耗时间最长的就是ORB_SLAM2的编译安装,希望这篇文章能帮到以后看到的人

参考

Ubuntu20.04配置ORBSLAM2并在kitti数据集序列进行实验-CSDN博客

ubuntu20编译运行orb-slam3踩坑_make[2]: *** [cmakefiles/orb_slam3.dir/build.make:-CSDN博客

Ubuntu20.04配置ORBSLAM2并运行(保姆级教程)_在ubuntu20.04上安装并运行orb-slam2(保姆级教程)-CSDN博客

ROS(Robot Operating System)是一个开源的机器人操作系统,它提供了一系列的软件库和工具,可以帮助开发者轻松地构建机器人应用程序。在ROS中,可以使用各种传感器和执行器来感知和操纵机器人,同时还有众多功能强大的软件包可供使用。 对于ROS机器人小车建模,首先需要定义其物理模型和运动模型。物理模型涉及到小车的尺寸、质量分布以及各个部件之间的连接关系等,可以使用三维建模软件(如SolidWorks、Blender等)进行建模。在模型中,可以添加传感器和执行器的模型,以便在软件层面对其进行控制和感知。 接下来,需要在ROS中创建一个软件包,该软件包将包含小车的相关源代码和配置文件。在软件包中,可以编写小车的控制算法、传感器数据处理和与外部环境的通信接口等。根据小车的物理模型和运动模型,可以在软件包中定义小车的运动规划和控制算法,使其能够实现自主导航、避障等功能。 在ROS的开发过程中,可以使用ROS提供的各种工具和软件包快速构建和测试小车的功能。例如,可以使用Gazebo仿真平台对小车进行虚拟环境下的仿真测试,通过仿真可以更快速地验证和优化算法;同时,可以使用Rviz可视化工具对小车的运动、传感器数据等进行可视化展示和调试。 总之,ROS提供了丰富的功能和工具,可用于对机器人小车进行建模和开发。通过合理的物理模型设计和运动算法编写,可以实现小车的各种功能,从而实现自主导航、运动规划、避障等应用。在开发过程中,可以利用ROS的丰富生态系统和强大的社区支持,使机器人小车建模更加高效和便捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值