【SLAM】在WSL中搭建环境(Linux子系统)_slam wsl-程序员宅基地

技术标签: slam  WSL  SLAM  g2o  eigen  opencv  

说在前面

  • windows版本:win10
  • linux:ubuntu18.0.4
  • SLAM学习: 视觉SLAM十四讲-高翔pdf对应github源码
  • 其他:懒得装双系统了,突然想起windows的linux子系统挺强的,就来试试;想直接在windows下搞,但是装个g2o还得搞qt,太麻烦
  • 2019.8.23补充:目前WSL好像并不支持USB设备,也就是说不能直接访问摄像头。

linux子系统安装

  • 网上教程挺多,而且也很简单,不再提
    不要点我
  • 子系统安装路径(指通过应用商店安装)
    装在C盘,不知道可不可以改路径,很慌啊
    C:\Users\admin\AppData\Local\Packages
    \CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
    
    在这里插入图片描述
  • 在子系统中可以直接访问windows文件,挂在mnt下
    在这里插入图片描述

换源

  • 可以直接在windows下改/etc/apt/sources.list,阿里云的源
# 阿里源ubuntu18.04
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
  • sudo apt-get update

安装主要库

  • cmake
    sudo apt-get install cmake
    
  • eigen
    sudo apt-get install libeigen3-dev
    
  • g2o
    git clone https://github.com/RainerKuemmerle/g2o.git
    
    sudo apt-get install libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev-qt5
    
    cd g2o
    mkdir build
    cd build
    cmake ../
    make
    sudo make install
    
  • Sophus
    按照书上所说,用的双精度版本,然后make的时候报错:
    error: lvalue required as left operand of assignment
    unit_complex_.real() = 1.0f;
    
    需要将so2.cpp中构造函数改成如下:
    SO2::SO2()
    {
          
      unit_complex_.real(1.0f);
      unit_complex_.imag (0.0f);
    }
    
  • opencv
    完了,突然想起还得装opencv
    先装VTK,下载后
    cd VTK-8.2.0
    mkdir build
    cd build
    cmake ../
    make
    sudo make install
    
    然后下载opencv源码以及contrib源码,【opencv/编译】ubuntu安装python3.6、pip、vscode、opencv
    有所区别的是编译时的选项,如下
    sudo cmake \
     -D CMAKE_BUILD_TYPE=RELEASE \
     -D CMAKE_INSTALL_PREFIX=/usr/local \
     -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.0.1/modules/ \
     -D WITH_VTK=ON \
     -D BUILD_EXAMPLES=OFF \
     -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF \
     -D WITH_TBB=ON -D WITH_OPENMP=ON -D WITH_IPP=ON \
     -D WITH_OPENGL=ON \
     -D OPENCV_ENABLE_NONFREE=ON \
     -D WITH_EIGEN=ON \
      ..
    
    目录结构
    在这里插入图片描述
  • 图形界面
    命令行界面玩傻子哟!
    点这里

测试一下

  • 使用高翔大佬的代码测试一下(git clone https://github.com/gaoxiang12/slambook.git)

  • eigen

    cd slambook/ch3/useGeometry/
    cmake .
    make
    ./eigenGeometry
    

    在这里插入图片描述

  • opencv
    测试为ch5中项目
    在这里插入图片描述

  • g2o
    在编译ch6时报错,解决方法:点我

    cd slambook/ch6/g2o_curve_fitting/
    cmake .
    make
    ./curve_fitting
    

    在这里插入图片描述


结束了

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_33446100/article/details/99703836

智能推荐

懒汉、饿汉单例模式-完整的懒汉单例模式实现_题目:用懒汉式单例模式实现身份证问题。 ①. 问题说明:每个人都有一个身份证,且每-程序员宅基地

文章浏览阅读836次,点赞4次,收藏3次。title: 懒汉、饿汉单例模式-完整的懒汉单例模式实现date: 2019-06-07 23:22:50tags: [设计模式,多线程]本文主要介绍懒汉和饿汉单例模式实现以及多线线程场景下完整的懒汉单例模式的实现一般实现饿汉式单例(一开始就实例化)class Singleton { private static Singleton singleton = new ..._题目:用懒汉式单例模式实现身份证问题。 ①. 问题说明:每个人都有一个身份证,且每

ES使用JAVA api在开发中查询数据的详细使用(与mysql sql语句对比)_java 结合es的api查询构建和mysql对比-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏13次。ES使用JAVA api在开发中的详细使用(与mysql对比),实例讲解_java 结合es的api查询构建和mysql对比

滴滴重磅开源跨平台统一MVVM框架Chameleon-程序员宅基地

文章浏览阅读55次。近日,滴滴在GitHub上开源了跨端解决方案 Chameleon,简写CML,中文名卡梅龙;中文意思变色龙,意味着就像变色龙一样能适应不同环境的跨端整体解决方案,具有易用、开发快、高性能等特点。下文将详细介绍Chameleon项目的研发背景和性能特点。背景研发同学在端内既追求h5的灵活性,也要追求性能趋近于原生。 面对入口扩张,主端、独立端、微信小程序、支付宝小程序、百度小程序、Android厂商..._无法为文档e:\ projects \ cmlprogram-window-management \ chameleon.config.js

百度SEO站群彩虹网盘外链程序源码V5.1|网盘外链源码_百度网盘 视频外链 seo-程序员宅基地

文章浏览阅读803次。源码介绍:彩虹网盘外链是一款PHP网盘与外链分享程序,支持所有格式文件的上传,可以生成文件外链、图片外链、音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码,还可支持文本、图片、音乐、视频在线预览,这不仅仅是一个网盘,更是一个图床亦或是音乐在线试听网站。新版本增加了图片违规检测,对接阿里云内容安全服务。源码截图:下载地址:http://www.bytepan.com/6MafHqTfhkV..._百度网盘 视频外链 seo

HTML列表标签及表格语法_列表标签符合-程序员宅基地

文章浏览阅读183次。电话_列表标签符合

我的程序员开始定义_程序员如何定义自己的程序段-程序员宅基地

文章浏览阅读1.1k次。要想学的好,就应该不断地去尝试,当我们_程序员如何定义自己的程序段

随便推点

数码管扫描显示verilog_如何开始Xilinx FPGA开发之旅 第二课 EGO1数码管与键盘-程序员宅基地

文章浏览阅读1.4k次。庚子年,我们的EGO1在疫情当中作为口袋实验平台成为了众多高校的复课利器。其中的成功案例更是得到了新华社网媒与CCTV教育频道的报道。借此东风,为了让更多的老师与学生熟悉了解Xilinx,更好的入门学习FPGA知识,我们的师资培训直播已开设EGO1专题直播,欢迎新老朋友跟踪关注。第二课---- EGO1数码管与键盘本周的直播我们将介绍EGO1的外设使用案例,介绍数码管扫描的原理和PS/2..._fpgaego1 键盘

第四章 web前端开发工程师--JavaScript京东商城项目开发 4-2 京东商城导航栏_京东商品界面javascript-程序员宅基地

文章浏览阅读1.9k次。index.html;<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="description" content="京东JD.COM-专业的综合网上购物商城,为您提供正品低价的购 物选择、优质便捷的服务体验。商品来自..._京东商品界面javascript

DDD简介-程序员宅基地

文章浏览阅读8.6k次。DDD是什么领域驱动设计(Domain Driven Design) 是一种从系统分析到软件建模的一套方法论。以领域为核心驱动力的设计体系。为什么需要DDD面向对象设计,数据行为绑定,告别贫血模型 优先考虑领域模型,而不是切割数据和行为 准确传达业务规则 代码即设计DDD的一些概念战略设计:限界上下文、上下文映射图、子域战术设计:聚合、实体、值对象、资源库、领域服..._ddd

外部SD卡无法写入_sd 卡无法写入 媒体 文件-程序员宅基地

文章浏览阅读1.2k次。外部SD卡无法写入_sd 卡无法写入 媒体 文件

jQuery选择器完全总结_jquery $("#input_commonnodesubtypeid option")得到的是什-程序员宅基地

文章浏览阅读802次。jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。jQuery 中所有选择器都以美元符号开头:$()。 本文对jQuery选择器作一个总结。1、说明 通用语法:$('具体_jquery $("#input_commonnodesubtypeid option")得到的是什么

c语言变长(动态)数组 ArrayList_c语言list实现变长数组-程序员宅基地

文章浏览阅读2.5k次,点赞6次,收藏15次。关于变长(动态)数组 ArrayList缘起在c语言的程序设计中,想要实现对一个数组的长度的动态变化其实是比较困难的,并且也是低效且不尽实用的。但是看到别人在做arraylist时,我决定将网课上所学习的变长数组放上来。另一方面,正是由于变长数组的缺点使得我们可以引入链表的学习。java实现arraylist代码h文件中的代码样例#ifndef __ARRAY_H__#define ..._c语言list实现变长数组

推荐文章

热门文章

相关标签