Ubuntu 16.04安装ros 以及 Google Cartographer Slam
1、开启main、universe、restricted、multiverse,Download from: http//mirrors.ustc.edu.cn/ubuntu
2、选中Canonical Partners
3、点击close reload
4、更换源:将/apt/get/source.list的源改为中科大源
打开终端,然后输sudo gedit /etc/apt/sources.list回车输开机密码然后回车然后就打开那个文件了,然后修改 最后保存
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
之后输入:
sudo apt-get update
更新源。
5、Setup your sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
6、Set up your keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
7、Installation
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
8、Initialize rosdep
sudo rosdep initrosdep update
9、Environment setup
It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
If you have more than one ROS distribution installed, ~/.bashrc must only source the setup.bash for the version you are currently using.
If you just want to change the environment of your current shell, instead of the above you can type:
source /opt/ros/kinetic/setup.bash
If you use zsh instead of bash you need to run the following commands to set up your shell:
echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc
10、Dependencies for building packages
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
11、运行小乌龟测试
新建一个终端,输入$ roscore
新建一个终端,输入$ rosrun turtlesim turtlesim_node
新建一个终端,输入$ rosrun turtlesim turtle_telelop_key
移动上下左右键,看到小乌龟移动了。
12、安装Cartographer基本必须的库
sudo apt-get update
sudo apt-get install -y \
cmake \
g++ \
git \
google-mock \
libboost-all-dev \
libcairo2-dev \
libeigen3-dev \
libgflags-dev \
libgoogle-glog-dev \
liblua5.2-dev \
libprotobuf-dev \
libsuitesparse-dev \
libwebp-dev \
ninja-build \
protobuf-compiler \
python-sphinx
13、编译并安装Ceres
git clone https://ceres-solver.googlesource.com/ceres-solvercd ceres-solver
mkdir buildcd build
cmake .. -G Ninja
ninja
ninja test
sudo ninja install
注意:如果无法从google取出代码可以从github提取code:https://github.com/ceres-solver/ceres-solver或者VPN
14、安装wstool和rosdep
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
15、创建workspace
mkdir catkin_ws
cd catkin_ws
wstool init src
16、下载google cartographer源码(vpn)也可以从github直接下载
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
17、安装deb依赖
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${kinetic} -y
18、编译并安装
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash(设置路径)
19、每次修改了lua代码都需要运行下面代码进行编译和设置路径
cd slam_ws
catkin_make_isolated --install --use-ninja进行编译
source install_isolated/setup.bash设置路径
20、Launch
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=/home/dmchen/slam_ws/src/cartographer_ros/cartographer_ros/bag/1014.bag
其中我们自己的数据包包1014.bag存储路径为/home/dmchen/slam_ws/src/cartographer_ros/cartographer_ros/bag
数据包下载地址:https://storage.googleapis.com/cartographer-public-data/bags/revo_lds/cartographer_paper_revo_lds.bag
https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
https://storage.googleapis.com/cartographer-public-data/bags/pr2/2011-09https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/cartographer_3d_deutsches_museum.bag