2018.02.28 leaning journal

1. RGB-D SLAM 高博

slam3d 项目的源码中,有来自高翔博士的RGB-D SLAM的代码部分,今天对这部分代码进行学习;

源码地址:https://github.com/MuMuJun97/rgbd-slam-tutor2

下载好rgbd-slam-tutor2至本地后,编译第三方库(详见 README.md)
其CMakeLists.txt中:

set( CMAKE_CXX_COMPILER "clang++" )

如果没有clang++,会出现错误:

/bin/sh: 1: clang++: not found

搜寻ubuntu下cmake 使用clang

sudo proxychains apt-get update
sudo proxychains apt-get install llvm clang

clang+命令会在/usr/bin/clang++
之后rgbd-slam-tutor2 成功build:

09:32:21: Running steps for project rgbd-slam-tutor2...
09:32:21: Starting: "/usr/bin/make" 
[ 61%] Built target rgbd_tutor_lib
[ 69%] Built target exp_mapping
[ 76%] Built target exp_pose_graph
[ 84%] Built target match_orb
[ 92%] Built target run_tracker
[100%] Built target test_pnp
09:32:21: The process "/usr/bin/make" exited normally.
09:32:21: Elapsed time: 00:00.

TUM数据集下载地址:https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_room.tgz

读取参数文件的类

#ifndef PARAMETER_READER_H
#define PARAMETER_READER_H
#include "common_headers.h"

namespace rgbd_tutor
{
struct CAMERA_INTRINSIC_PARAMETERS;

class ParameterReader
{
public:
    string filename="./parameters.txt" ;
    ParameterReader( )
    {
        ifstream fin( filename.c_str() );
        if (!fin)
        {
            // try ../parameter.txt
            fin.open("../parameters.txt");
            if (!fin)
            {
                cerr<<"parameter file does not exist."<<endl;
                return;
            }
        }
        while(!fin.eof())
        {
            string str;
            getline( fin, str );
            if (str[0] == '#')
            {
                // 以‘#’开头的是注释
                continue;
            }
            int pos = str.find('#');
            if (pos != -1)
            {
                //从井号到末尾的都是注释
                str = str.substr(0, pos);
            }
            pos = str.find("=");
            if (pos == -1)
                continue;
            string key = str.substr( 0, pos );
            string value = str.substr( pos+1, str.length() );
            data[key] = value;

            if ( !fin.good() )
                break;
        }
    }

    template< class T >
    T getData( const string& key ) const
    {
        auto iter = data.find(key);
        if (iter == data.end())
        {
            cerr<<"Parameter name "<<key<<" not found!"<<endl;
        }
        return boost::lexical_cast<T>( iter->second );
    }

    rgbd_tutor::CAMERA_INTRINSIC_PARAMETERS getCamera() const;

public:
    map<string, string> data;
};

};
#endif // PARAMETER_READER_H
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值