红联Linux门户
Linux帮助

Cartographer的初体验

发布时间:2016-10-09 10:30:20来源:linux网站作者:android_ruben
前几天google宣布开源了Cartographer,所以赶紧过来体验一把.
本文的介绍的是google开源的Cartographer的初体验.
Cartographer是一个提供多平台和多传感器配置下能够完成2D和3D下的SLAM(实时地图构建和定位)的系统.同时google也提供了ROS下的集成.
 
关于什么是ROS?
Robot Operating System (ROS)是一个灵活的框架,它用于编写机器人软件。它是一个集合,包含了很多工具、类库或者约定(旨在通过一个广泛的多样的机器人平台来简化创建复杂的健壮的 机器人行为)
为什么呢?因为创建真正的健壮性、多用途的机器人软件是非常困难的。从机器人的视角来说,困难经常(对人类看起来确实不重要的)似乎存在于在任务的实例和环境之间剧烈的变化。
所以,ROS从创建之初就是为了鼓励相互协作的机器人软件开发。比如说,一个实验室在从事室内环境定位的研究,那么他们可以为一个世界级的系统提供地图。另一个团队在研究使用地图去导航,又有另一个团队发现计算机视觉的方法 在混乱环境中识别小物体非常有效。ROS专门被用来设计成像刚才说的那样的团队来进行协作或者在别人工作基础上继续工作,正如这个位置一直在描述的一样。
ROS的等式:
Cartographer的初体验
ROS=管道+工具集+性能+生态系统
 
一、安装
Cartographer运行需要ubuntu 14.04(Trusty)下的Indigo版本ROS或者ubuntu16.04(Xenial)下的Kinetic版本ROS.
关于如何安装ROS:
本文的目标是下载ROS源码,环境为Ubuntu 14.04。
首先在根路径下新建目录ros,然后cd到该目录下就可以开始下载了。
1.获取源列表,运行:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2.建立key(注:不知道建立这个key是什么含义):
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
3.获取更新:
sudo apt-get update
4.下载ROS源码,执行:
sudo apt-get install ros-indigo-desktop-full
5.初始化rosdep
sudo rosdep init
rosdep update
6.配置ROS环境变量:
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrcsource ~/.bashrc
8.安装rosinstall(用于获取ROS包的源码树):
sudo apt-get install python-rosinstall
这样完成了ROS源码的安装了。
按顺序执行以下语句:
# 安装 wstool and rosdep.
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
# 创建新的工作空间:'catkin_ws'.
mkdir catkin_ws
cd catkin_ws
wstool init src
# 合并cartographer_ros.rosinstall文件并或者代码的依赖
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
# 安装依赖
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
# 安装
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash
 
二、运行demo
执行完1中的步骤,就完成了Cartographer和Cartographer中的ROS集成包,下载google提供的示例包就可以测试了.
依次执行以下语句:
# 下载2D示例包
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
# 启动测试2D示例
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
# 下载3D示例包
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/cartographer_3d_deutsches_museum.bag
# 启动测试3D示例
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/cartographer_3d_deutsches_museum.bag
# 下载基于Revo LDS平台的示例包
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/revo_lds/cartographer_paper_revo_lds.bag
# 启动测试
roslaunch cartographer_ros demo_revo_lds.launch bag_filename:=${HOME}/Downloads/cartographer_paper_revo_lds.bag
# 下载基于PR2平台的示例包
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/pr2/2011-09-15-08-32-46.bag
# 启动测试
roslaunch cartographer_ros demo_pr2.launch bag_filename:=${HOME}/Downloads/2011-09-15-08-32-46.bag
上面的launch文件将会自动启动roscore和rviz.
执行之后就可以看到效果了,运行的结果和google提供的一样样,说明本文的目标达到.
 
本文永久更新地址:http://www.linuxdiyf.com/linux/24870.html