[Surface PRO 6]UBUNTU16.04安装ROS系统,使用ORB-SLAM2(从卸载和win10上装双系统开始)

@

说在前面

电脑配置

surface pro6 + win10 +Ubuntu 16.04 + ROS kinect

Ubuntu卸载

楼主是UBUNTU小白,最近毕设要求使用ROS系统,在装双系统,卸载UBUNTU,安装ROS上填了许多坑,特此纪念以下为期一星期的安装和配置过程。(若有不当,欢迎交流!)
一开始楼主的电脑是有UBUNTU系统的,但是不小心用CCleaner清除了一些垃圾后Ubuntu系统出现了一些问题,不得已卸载系统重新安装。因为当初是用C盘压缩卷后安装的,很怕卸载的时候与windows有影响。
推荐工具:diskgenius

1.注意不要删除windows的EFI分区!(像我的电脑windows的EFI分区和ubuntu的在一个盘里,只需要进到该盘把Ubuntu的删掉即可)
2. 若不小心删除了Windows的EFI分区也不需要着急,用老毛桃制作启动盘,进入该启动盘系统,里面有自动修复windows EFI分区功能。
在win10+Ubuntu双系统下,完美卸载Ubuntu

win10上装UBUNTU双系统

一开始的surface安装过一次UBUNTU,但是surface安装UBUNTU后会出现几点问题:

  1. 盒盖不会自动休眠
  2. 耗电量加大
  3. UBUNTU上没有触碰
  4. 双系统切换的时候时钟有问题

win10上安装UBUNTU子系统

所以一开始我的想法是去windows应用商店下载UBUNTU子系统:
[Surface PRO 6]UBUNTU16.04安装ROS系统,使用ORB-SLAM2(从卸载和win10上装双系统开始)_第1张图片
如果你不想要图形化界面(但是ROS需要图形化界面),那么这个应该是个绝佳选择。网上也有很多安装图形化界面教程,但是很麻烦!!而且安装过程很慢!!成功率很低,所以再反复没有成功后,我还是选择了安装UBUNTU双系统。
windows安装UBUNTU子系统

win10上安装UBUNTU双系统

surface上安装双系统一定要先把secure boot给关了!!!要不安装会失败!!(开机一直按住电源键和音量上键,进入EFI界面,关闭secure boot, 并且选择U盘启动)
关了secure boot后每次surface启动到田字格界面时上面都会出现一个红色的解锁标志,这就代表你关闭了secure boot了。
secure boot开启意味着电脑只能启动windows系统。
在关闭secure boot后安装过程就和其他电脑没有区别了。无非就是:
分盘——制作U盘——进入EFI界面选择U盘启动(记得关闭secure boot)——选择自定义安装UBUNTU——UBUNTU分盘(/&/home&swap &/boot)——安装
安装ROS时挂载到 / 的分区最好设置大一点,楼主一开始设置了15GB,还没安装完就爆了,现在设置了30G
安装双系统时一开始为了省空间设置/boot盘为150mb,一直安装失败!后面设置为300mb才解决问题
Windows + Ubuntu 16.04 双系统安装详细教程

UBUNTU16.04下安装ROS

先换源吧,要不下载速度太慢了

之前从网上下载了一个换源的脚本文件,挺好用的:
换源脚本文件
提取码:i848
不过手动进入系统设置——software update——就可以选择最佳源了

安装ROS

写的很详细,就ta了!
安装一些预备软件(gcc,g++等)——添加源,添加密钥,换ROS清华源——下载ROS——配置脚本文件——下载一些ROS的配置文件——运行ROS
【SLAM】Ubuntu16.04下配置ORB-SLAM2
遇到添加密钥apt-get update显示无法验证下列签名时,一行代码更新即可

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

ROS下运行ORB-SLAM2(遇到的问题)

上一篇推荐的博文已经讲到了配置ROS的运行环境了,这里就记录一下配置环境时遇到的问题

  1. 配置opencv路径不成功
    [Surface PRO 6]UBUNTU16.04安装ROS系统,使用ORB-SLAM2(从卸载和win10上装双系统开始)_第2张图片
    当我按这个操作配置的时候,总是不成功,于是我稍微改变了末尾加入的代码:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

查看是否导入库成功可以查看opencv的库文件:

pkg-config opencv --libs
  1. 用g++编译cpp文件时
g++ lena.cpp -o lena.o  `pkg-config --cflags --libs opencv` #注意这个包含链接库的符号是键盘左上角的`而不是单引号'!!!!!坑!!
  1. 使用ORB-SLAM2编译ROS下环境时运行sudo rosdep init无法获取网站
    ROS的 sudo rosdep init 的报错解决方案
    如果不行,那么:
sudo rm 20-default.list

再更新源(从系统设置里面寻找最优源)
再次运行

sudo rosdep init

多试几次,一般是网络问题(楼主试了一天突然成功…)
PS.最好搭梯子,能上外网的时候成功几率比较大

  1. 在编译ORB-SLAM2时遇到问题
/usr/bin/ld: CMakeFiles/RGBD.dir/src/ros_rgbd.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’
/usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/RGBD.dir/build.make:218: recipe for target ‘../RGBD’ failed
make[2]: * [../RGBD] Error 1
CMakeFiles/Makefile2:67: recipe for target ‘CMakeFiles/RGBD.dir/all’ failed
make[1]: * [CMakeFiles/RGBD.dir/all] Error 2
make[1]: * 正在等待未完成的任务….
/usr/bin/ld: CMakeFiles/Stereo.dir/src/ros_stereo.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’
/usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/Stereo.dir/build.make:218: recipe for target ‘../Stereo’ failed
make[2]: * [../Stereo] Error 1
CMakeFiles/Makefile2:104: recipe for target ‘CMakeFiles/Stereo.dir/all’ failed
make[1]: * [CMakeFiles/Stereo.dir/all] Error 2
Makefile:127: recipe for target ‘all’ failed
make: * [all] Error 2

解决方案:libboost_system.so,libboost_system.so.1.58.0 与libboost_filesystem.so,libboost_filesystem.so.1.58.0找不到链接目录 (在对应的文件夹/usr/lib/x86_64-linux-gnu/文件夹下),将这些文件复制到ORB_SLAM2/lib下
ORBSLAM2——ROS编译编译时出现问题

你可能感兴趣的:(ROS)