ceres笔记

记录下使用ceres遇到的问题

环境配置

使用docker来配置了下, ceres的依赖还是很简单的, 下面的配置不仅支持ceres编译, 同时也兼容slambook2,

# sudo docker build -f Dockerfile.txt -t slambook2  . 

FROM nvidia/cudagl:11.2.1-devel-ubuntu18.04

# RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC

RUN echo "\
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse\n\
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse\n\
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse\n\
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse\n\
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse\n\
" > /etc/apt/sources.list

RUN apt-get update  -y
RUN apt-get install -y cmake git libgtk2.0-dev \
    libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy \
    libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev wget gdb vim zip \
    libglu1-mesa-dev freeglut3-dev mesa-common-dev libgl1-mesa-dev libglew-dev \
    # google-glog + gflags
    libgoogle-glog-dev libgflags-dev \
    # Use ATLAS for BLAS & LAPACK
    libatlas-base-dev \
    libeigen3-dev \
    libsuitesparse-dev

# install ceres
COPY 3rdparty/ceres-solver /tmp/ceres-solver 
RUN cd /tmp/ceres-solver && mkdir build && cd build && cmake .. && make -j3 install && rm -rf /tmp/ceres-solver

# instal Pangolin
COPY 3rdparty/Pangolin /tmp/Pangolin
RUN cd /tmp/Pangolin && mkdir build && cd build && cmake .. -DBUILD_PANGOLIN_PYTHON=OFF \
	&& make -j3 install \
	&& cd / && rm -rf /tmp/Pangolin

# install g2o
COPY 3rdparty/g2o /tmp/g2o
RUN cd /tmp/g2o && mkdir build && cd build && cmake .. && make -j3 install && rm -rf /tmp/g2o 

# install opencv
RUN cd /tmp/ && git clone https://gitee.com/mirrors/opencv.git && cd opencv && git checkout 3.4 && mkdir build \
    && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_CUDA=OFF -D WITH_OPENGL=OFF .. \
    && make -j3 install \
    && rm -rf /tmp/opencv && ldconfig

# install DBoW3
COPY 3rdparty/DBoW3 /tmp/DBoW3
RUN cd /tmp/DBoW3 && mkdir build && cd build && cmake .. && make -j3 install && rm -rf /tmp/DBoW3

COPY 3rdparty/Sophus /tmp/Sophus
RUN cd /tmp/Sophus && mkdir build && cd build && cmake .. && make -j3 install && rm -rf /tmp/Sophus

启动镜像:

docker run --gpus all -it --rm\
    -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
    -u $(id -u):$(id -g) \
    -e DISPLAY=$DISPLAY \
    -v ${PWD}:${PWD} \
    -v ${HOME}:${HOME} \
    -w ${PWD} \
    --name slambook2 \
    slambook2
  • 如果要测试slambook2的代码, 直接cd到对应目录build就行.这里我们仅测试ceres.
cd 3rdparty/ceres 
mkdir build && cd build && cmake .. && make -j
  • pose_graph_3d
    先要下载测试数据集,下载链接,选择sphere-a,
cd build/bin
./pose_graph_3d  --input /home/lyy/Downloads/sphere_bignoise_vertex3.g2o 

运行结束后生成两个文件poses_optimized.txt poses_original.txt, 使用python脚本来可视化:

python examples/slam/pose_graph_3d/plot_results.py --optimized_poses ./poses_optimized.txt --initial_poses ./poses_original.txt

在这里插入图片描述

bundle_adjuster

数据下载链接选择ladybug就行.
解压后

./bundle_adjuster  --input /home/lyy/486G/dataset/ceres_dataset/data 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值