orb_slam2 + 语义分割 + 八叉树地图,
github地址:https://github.com/floatlazer/semantic_slam

根据github上环境的版本要求,选择在ubuntu16.04的docker容器中搭建

首先pull了一个ubuntu16.04 + python2.7 + opencv3.3.0的镜像,在这个基础上搭建环境

1.download semantic slam的code
在$HOME下

$ mkdir catkin_ws
$ cd catkin_ws
$ mkdir src
$ cd src
$ git clone https://github.com/floatlazer/semantic_slam.git

2.安装orb slam2的环境
参考了https://www.jianshu.com/p/dbf39b9e4617
这中间涉及到ros, pangolin, eigen等的安装

进入sematic_slam文件夹中的ORB_SLAM2文件夹,build成功即可

3.安装语义分割相关
按照semantic slam的github中的要求

$ sudo apt-get install ros-kinetic-openni2-launch

4.安装八叉树地图相关

sudo apt-get install ros-kinetic-octomap-ros
sudo apt-get install ros-kinetic-octomap-msgs
sudo apt-get install ros-kinetic-octomap-server
sudo apt-get install ros-kinetic-octomap-rviz-plugins

5.安装语义分割相关

pip install torch-0.4.0-cp27-cp27mu-linux_x86_64.whl #1.0之前的版本要在官网上下载
pip install torchvision==0.2.0
pip install numpy
pip install future
pip install matplotlib

然后github上说依赖pytorch-semseg
打开pytorch-semseg中的requirements.txt, 看到里面还有一些依赖要安装

pip install scikit-image
pip install opencv-python==3.3.0.10
pip install tqdm==4.11.2
pip install cython
pip install pydensecrf
pip install tensorboardX
pip install scipy==0.19.0
pip install imgaug

然后安装semantic_slam包

$ rosdep install semantic_slam
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
semantic_slam: Cannot locate rosdep definition for [catkin]

这一步会报找不到相关依赖的错误
命令改为:

$ rosdep install --from-paths semantic_slam --ignore-src --rosdistro=kinetic -r -y
#All required rosdeps installed successfully

这些都安装好之后,到~/catkin_ws下catkin_make

开始启动launch:

roslaunch semantic_slam semantic_mapping.launch

会报如下错误:
ImportError: No module named google.protobuf.internal
解决方法:

pip install protobuf

再启动launch:
会报错:AttributeError: ‘module’ object has no attribute ‘_cuda_getDevice’
Traceback (most recent call last):
File “/home/xx/catkin_ws/src/semantic_slam/semantic_cloud/src/semantic_cloud.py”, line 295, in
main(sys.argv)
File “/home/xx/catkin_ws/src/semantic_slam/semantic_cloud/src/semantic_cloud.py”, line 288, in main
seg_cnn = SemanticCloud(gen_pcl = True)
File “/home/xx/catkin_ws/src/semantic_slam/semantic_cloud/src/semantic_cloud.py”, line 123, in init
state = torch.load(model_path)

这是因为它的weight, 也就是pth文件,是用GPU训练出来的,
而docker里面没有GPU, 要把这个pth转为cpu模式:
把这个 state = torch.load(model_path)
改为:

state = torch.load(model_path, map_location={'cuda:0': 'cpu'})

到~/catkin_ws下

$ rm -rf build devel
$ catkin_make

再试一次

$ roslaunch semantic_slam semantic_mapping.launch
[ INFO] [1655366319.121127159]: Semantic octomap generator [max fusion]
Generate semantic point cloud [max fusion].
Setting up CNN model...
Setting up ROS...
Ready.

另起一个窗口

$ rosbag play demo.bag

图建出来了

semantic_slam环境配置相关推荐

  1. QT5.3 + vs2012 + box2d环境配置

    安装vs 和 qt 下载vs 2012,傻瓜式安装,但安装时间可能比较长.(其中一定选择"Visual C++"选项) 下载Qt 5.3,选择适合自己电脑的版本下载安装,我选的是q ...

  2. YOLOv4 资源环境配置和测试样例效果

    YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...

  3. cmd怎么实现Java你好_java环境配置以及如何在cmd窗口运行java代码

    对于初学java的人来说,电脑的环境配置也许会让你头疼,但只要你认真一些学习,相信对你来说都是OK的啦~ 首先回到桌面,选择我的电脑,单击右键属性,进入高级系统设置,点击环境变量设置.用户变量选择Te ...

  4. Springboot使用Maven Profile和Spring Profile进行多环境配置

    Springboot使用Maven Profile和Spring Profile进行多环境配置 目的 在实际的项目上,一般会分三种环境dev.test.prod来方便我们的开发和部署,要求我们在开发的 ...

  5. linux 编译opencl,OpenCL编译环境配置(VS+Nvidia)

    英伟达的显卡首先要下载安装CUDA开发包,可以参考这里的步骤:   VS2015编译环境下CUDA安装配置 安装好CUDA之后,OpenCL的配置就已经完成了80%了,剩下的工作就是把OpenCL的路 ...

  6. windows下rpc框架thrift的环境配置

    windows下rpc框架thrift的环境配置 引用链接: https://www.cnblogs.com/49er/p/7193829.html 最近在弄windows下 的Facebook的rp ...

  7. 【Qt】Qt5.x移植后的环境配置(imx6)

    1.环境配置脚本如下 #!/bin/shexport QTDIR=/usr/lib/qt5 export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins expo ...

  8. python安装成功的图标_ubuntu下:安装anaconda、环境配置、软件图标的创建、成功启动anaconda图形界面...

    Ubuntu安装anaconda常见的四大问题: 目录 1.介绍 2.安装anaconda 3.环境配置 4.软件图标的创建 5.成功启动anaconda图形界面 1.介绍 先介绍一下anaconda ...

  9. 【spring】使用spring的环境配置及从官网获得配置文件所用代码的方法

    环境配置 1.添加jar包 spring-beans-4.1.3.RELEASE.jar spring-context-4.1.3.RELEASE.jar spring-core-4.1.3.RELE ...

最新文章

  1. Python json和list互相转换
  2. xhtmlConformance mode=Legacy/ 致ajax失效
  3. RabbitMQ路由模式
  4. java swt webkit_使用Java和Webkit的HTML编辑器 – SWT浏览器
  5. 如何设计区块链项目的通证(token)模型
  6. NeurIPS 2020 | 利用像素级别循环一致性解决领域自适应语义分割问题
  7. CentOS 6.3安装Nginx开启目录浏览、下载功能
  8. 五个你绝不可忽视的HTML5特性
  9. python爬取大众点评_浅谈python爬取58同城,大众点评这两个网站
  10. mysql中基本的DDL语句(关注一下,以后会继续更新喔!)
  11. 浅析Java内存模型
  12. ASP.NET MVC教程八:_ViewStart.cshtml
  13. 如何修改linux的java路径_修改桌面文件默认存储位置的正确方式及注意事项
  14. java宠物商店_Java实现宠物商店管理系统
  15. h计算机二级基础知识题库,2020计算机二级Office考试题库真题
  16. matlab 角速度,从您的移动设备获取并绘制角速度和方向数据
  17. oracle中date错误,ORA-01830: date format picture ends before converting entire input string
  18. 平面设计必备学习软件
  19. [C++]派(二分算法)
  20. 开发基于 Google Map 的 Android 应用

热门文章

  1. jquery ajax json文件,jQuery ajax读取本地json文件
  2. Bugku--散乱的密文
  3. 软考证书三大含金量,你了解吗?
  4. 2021年数维杯数学建模A题外卖骑手的送餐危机求解全过程文档及程序
  5. activiti工作流研究——画流程图
  6. 求集合的所有非空子集
  7. eyeon项目总结 音频转换 amr-mp3 web项目路径实践经验(血泪史)
  8. Docker(9) 安装Oracle18c
  9. 让你的应用完美适配平板
  10. 实例化方式的比较 Activator和new