tracking_slam复现

目录

  • 1. 前言
  • 2. Ubuntu 16.04
  • 3. ROS Kinetic
  • 4. ROS Pacakge & Turtlebot3-waffle
  • 5. SegNet
  • 6. Build libsegmentation
  • 7. Build DBow2
  • 8. Build Sophus
  • 9. Catkin_make
  • 10. run

1. 前言

本项目是基于ORB-SLAM2、DRE-SLAM和DS-SLAM的优化SLAM系统。主要框架来自DRE-SLAM。与它们相比,tracking_slam融合并改进了一些线程,包括语义分割线程、sub-OctoMap 构建和 sub-OctoMap 融合。

2. Ubuntu 16.04

按这个博客(最新最详细)安装ubuntu18.04安装Ubuntu 16.04即可。

3. ROS Kinetic

  1. 修改ubuntu镜像源

在安装好ubuntu16.04后,我们需要将系统默认的软件源改成其它软件源。这里是将软件源改为清华镜像源,(注意,不同Ubuntu版本对应的镜像源不同的)

进入这个网站后,它会提示你如何修改,这里将步骤写了下来:

第一步:先备份原来source.list的内容
sudo  cp  /etc/apt/sources .list  /etc/apt/sources_copy_default.list
第二步:sources.list文件的可写权限
cd /etc/apt
sudo chmod 777 sources.list
第三步:将清华镜像源给的内容复制进去
gedit sources.list    //用gedit打开,将内容粘贴进去即可
第四步:更新
sudo  apt-get update
  1. 添加谷歌服务器
sudo gedit /etc/resolv.conf

将原来的nameserver注释掉,将下面的内容添加进去

nameserver 8.8.8.8 #google域名服务器
 
nameserver 8.8.4.4 #google域名服务器

保存并退出,然后执行以下命令

sudo  apt-get update
  1. 添加ROS软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'122
  1. 添加密钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key     421C365BD9FF1F717815A3895523BAEEB01FA116
  1. 更新软件包
sudo apt-get upgrade -y
  1. 更新结束后,开始安装ROS Kinetic(完整包版本)
sudo apt-get install ros-kinetic-desktop-full

安装结束后,也可以根据个人需求按照下面步骤安装ROS其它的功能包:

(1)查询所有的ROS功能包

apt-cache search ros-kinetic

(2)安装指定的功能包

sudo apt-get install ros-kinetic-[功能包名称]

如:

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

7. rosdep init

sudo rosdep init

8. rosdep update

rosdep update

rosdep initrosdep update,经常不行,这是网速问题,多试几次就可以了。

或者,直接将已配置好的rosdep文件下载下来,sudo cp到etc/ros文件夹里面(不需要rosdep initrosdep update
然后:source /etc/bash.bashrc


  1. ~/.bashrc
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 验证

执行以下命令可验证是否安装成功:

打开终端,执行:

roscore

再打开一个终端,执行:

rosrun turtlesim turtlesim_node

这时会出现小海龟的界面。接着再打开一个终端,执行:

rosrun turtlesim turtle_teleop_key

使用键盘上的方向键可以控制小海龟的运动,OK!

reference:

  1. ros官方教程
  2. Ubuntu16.04安装ROS Kinetic教程(亲测实用)
  3. 解决ROS系统 rosdep update超时问题的新方法

4. ROS Pacakge & Turtlebot3-waffle

安装TurtleBot3及依赖包:

安装turtlebot3依赖包:

sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping ros-kinetic-navigation

安装turtlebot3源码:

cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
cd ~/catkin_ws && catkin_make

如果catkin_make完成没有任何错误,使用TurtleBot3的准备将完成。

5. SegNet

tracking_slam采用 SegNet 实时提供基于 caffe 的像素级语义分割。

首先,安装CUDA 8.0和cudnn 5.0或5.1.10,具体步骤祥见:ubuntu18.04下载显卡驱动+CUDA+CUDNN

安装opencv 2.4.13,具体详见:caffe-segnet-cudnn5安装记录。

接着,caffe-segnet-cudnn5安装记录请看caffe-segnet-cudnn5安装记录。

最后是直接下载trcaking_slam原版源码,直接:

cd ../caffe-segnet-cudnn5/
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

解决caffe-segnet-cudnn5安装遇到的问题。

6. Build libsegmentation

cd ../libsegmentation/
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

7. Build DBow2

cd ../third_party/DBoW2
mkdir build
cd build
cmake ..
make -j4

8. Build Sophus

cd ../third_party/Sophus
mkdir build
cd build
cmake ..
make -j4

9. Catkin_make

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

10. run

  1. Open a terminal and launch
roslaunch tracking_slam tb3_test.launch

其中,roslauncha遇到的问题详见:Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR。

  1. Open a terminal and play rosbag(在数据包所在的目录下打开终端)
rosbag play *.bag

数据包下载:dre_slam

你可能感兴趣的:(SLAM,ubuntu记录,自动驾驶,slam)