文章目录
说明以下所有的操作都是基于,ORB_SALM2的源码。本文的目的是仅在ros下使用orb_slam2,需要在开源代码上做一些修改。
用catkin_make 编译orb_slam
1.库文件
2.可执行文件
3.CMakeList.txt
4.package.xml
改动 | 1 删除多余的文件
|--ORB_SLAM2
|_cmake_modules
|_Examples //! 删除
|_include
|_src
|_Thirdparty
|_Vocabulary
|_build.sh //! 删除
|_build_ros.sh //! 删除
|_CMakeList.txt
|_package.xml //! 新增
|_Dependences.md
|_LICENSE.txt
|_License-gpl.txt
|_README.md
改动 | 2 在src下新建 orb_slam2_node.cpp
ORB_SLAM2调用的主程序,程序入口。在新建的cpp中添加如下:
#include<iostream>
#include<algorithm>
#include<fstream>
#include<chrono>
#include<ros/ros.h>
#include <cv_bridge/cv_bridge.h>
#include<opencv2/core/core.hpp>
#include"../include/System.h"
using namespace std;
class ImageGrabber
{
public:
ImageGrabber(ORB_SLAM2::System* pSLAM):mpSLAM(pSLAM){
}
void GrabImage(const sensor_msgs::ImageConstPtr& msg);
ORB_SLAM2::System* mpSLAM;
};
int main(int argc, char **argv)
{
ros::init(argc, argv, "Mono");
ros::start();
if(argc != 3)
{
cerr <<