zoukankan      html  css  js  c++  java
  • Docker搭建VSLAM环境

    VSLAM

    1、在Win10上Docker安装openvSLAM

        第一步:开始-设置(拉到最下面:程序和功能)-打开启用和关闭Window功能-选中Hyper-H

        第二步:下载Docker:https://store.docker.com/editions/community/docker-ce-desktop-windows 下载安装包:2.2.0.4,安装完成重启电脑

        第三步:双击桌面快捷图标:Docker,启动成功后在托盘处有一个小鲸鱼图标。在命令行输入命令:docker version可查看docker版本号

        第四步:更换镜像源地址:https://registry.docker-cn.com,在Docker-Settings里设置,设置完成后点击Apply保存。

        第五步:加载测试镜像:docker run hello-world

    2、生成Docker镜像

        下载Openvslam源代码,进入Openvslam目录

        执行命令:docker build -t openvslam-desktop -f Dockerfile.desktop [--build-arg NUM_THREADS=4 多线程编译]

    3、启动Docker容器

        1、xhost +local: {before launching the container,allow display access from local users} 

         但本人在Win10的Mingw上操作报错,无此命令!

         安装Cgywin,x11:

            export DISPLAY=:0

            xhost +[win主机 ip]:xdpyinfo可正常执行  

         挂载Win目录进Docker:docker run -t -i -v /e/.../openvslam-master:/.../openvslam openvslam-desktop  [最后的Container id不能缺]

        2、launch the container

             进入Docker容器界面:docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix:ro openvslam-desktop

    4、运行测试脚本

    跟踪和建图

    ./run_video_slam -v ./orb_vocab/orb_vocab.dbow2 -m ./aist_living_lab_1/video.mp4

     -c ./aist_living_lab_1/config.yaml --frame-skip 3 --no-sleep --map-db map.msg

    定位

    ./run_video_localization -v ./orb_vocab/orb_vocab.dbow2 -m ./aist_living_lab_2/video.mp4

      -c ./aist_living_lab_2/config.yaml --frame-skip 3 --no-sleep --map-db map.msg

    单目EUROC测试:

    ./run_euroc_slam -v ./orb_vocab/orb_vocab.dbow2

       -d ./EuRoC/MAV/mav0/  -c ./example/euroc/EuRoC_mono.yaml

    挂载windows指定目录进Docker方法:

    docker run -t -i -v /e/code/github/openvslam-master/openvslam-master:/openvslam-master openvslam-desktop

    下载词袋文件:orb_vocab.dbow2,并通过挂载方法复制测试脚本所需要文件进当前运行目录。

     Docker常用操作:

    docker run -it --name=test ubuntu(-t在新容器内指定一个终端,-i允许对容器内标准输入进行交互)  :docker run --name=test -itd ubuntu (-d:后台运行容器)
    exit 退出Docker容器
    docker ps:查看正在运行的容器
    docker ps -a :查看所有容器
    docker images :查看所有镜像
    docker pull nginx  :
    docker run --name=nginx -p 80:80 -itd nginx:latest:默认在宿主机无法访问虚拟机端口,-p实现端口转发
    docker stop Container id(Container id可通过命令docker ps -a查询)
    docker start Container id
    docker rm  Container id(删除镜像,需先停止,后删除)
    docker rmi image id(删除镜像,可通过命令docker images查询)
    docker run --name=nginx -itd -p 80:80 -v ~/nginx:/usr/share/nginx 挂载主机目录到容器作为数据卷(-v 宿主目录:容器目录)

    Openvslam运行在SocketViewer上:

    启用Git cmd,开启服务器端:
    [Building Docker Images]
       cd openvslam-master
    一、修改源代码后需要编译,编译命令如下: docker build -t openvslam-socket -f Dockerfile.socket .(多线程编译会报错怀疑和我CPU有关)
    二、没有修改源代码,直接启动OpenVSLAM的Container
    docker run --rm -it --name openvslam-server --net=host openvslam-server
    [WebSocket:listening on *:3000
    HTTP server:listening on *:3001
    Connected - ID:SbjbTIsAp3cBxGEuAAAA]
    [Docker Image of Server] cd openvslam-master docker build -t openvslam-server . 再开启一个Git cmd,开启客户端:
    docker run --rm -it --name openvslam-socket --net=host openvslam-socket #进入Docker环境root@hostname:/openvslam/build#
    [运行跟踪和建图] ./run_euroc_slam -v ./orb_vocab/orb_vocab.dbow2 -d ./mav0 -c ../example/euroc/EuRoC_momo.yaml
    [运行定位]
    ./run_euroc_localization
      -v ./orb_vocab/orb_vocab.dbow2
      -d ./mav0
      -c ../example/euroc/EuRoC_momo.yaml


    打开:http://localhost:3001/

    正常运行的话,Log显示如下:

    Pangolin安装:

    sudo apt-get install libglew-dev
    sudo apt-get install cmake
    sudo apt-get install libboost-dev libboost-thread libboost-thread-dev libboost-filesystem-dev
    
    
    git clone https://github.com/stevenlovegrove/Pangolin
    cd Pangolin
    mkdir build
    cd build
    cmake -DCPP11_NO_BOOST=1 ..
    make -j
  • 相关阅读:
    PEP20: The Zen of Python
    画三角形
    前端优化总结
    Doctype的作用以及严格模式和混杂模式的区别
    JS循环添加事件
    数据库整理用到的
    ASP.NET中url路径中?和= 被转码成%3f 和 %3d带来的问题。
    ReSharper Abbreviations List, 怎么管理缩写列表
    怎样使用 ASP.NET Optimization Bundling压缩样式表和脚本
    jQuery 选择同时包含两个class的元素
  • 原文地址:https://www.cnblogs.com/jimchen1218/p/12466064.html
Copyright © 2011-2022 走看看