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
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker搭建VSLAM环境 - Python技术站