您的位置:首页 > 理论基础

Ros——安装|教程1-4

2016-03-27 13:34 357 查看
最近看ORB-SLAM方面的东西发现github大部分的SLAM项目都是用这个东西就去查了下。这里先简单的说下观感:

首先这个Ros是Robot operating system的简称。但是跟一般的系统似乎有所不同,按照我目前的理解他既可以移植到普通的嵌入式系统中间。可以算作是一个软件平台。似乎业界还有其他的软件平台但这方面我不太了解。也可以作为一个虚拟的环境来运行在类似Ubuntu上,或者其他操作系统上。wiki网上有比较详细的介绍。ROSwiki

从近些年来看大概经历了的几个版本。目前最新的版本是jade。看完官方文档发现教程做的还是很详细的,运行下来很顺利没有什么出错的地方。这里简单回顾一下,一切从简,细节的部分省略掉。

安装

设置Ubuntu软件源。这不似乎不需要

建立source.list

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'


建立秘钥

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116


安装

sudo apt-get update
sudo apt-get install ros-jade-desktop-full
sudo rosdep init
rosdep update
echo "source /opt/ros/jade/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall


教程

1.安装和配置ROS环境

安装ROS

配置环境变量

主要就是ROS_PACKAGE_PATH这个环境变量。因为包是ROS的基本单元。这个路径可以设置索引包的路径,不在此路径的包是找不到的。跟java还有c++编译的时候差不多。如果没有ROS_PACKAGE_PATH说明你没有source setup.bash,见下一条。

另一个需要设置的是每次使用ROS之前都要运行一下setup.bash当然你也可以选择把这个文件添加到.bashrc中间就是每次启动shell的时候稍微慢一点。

# source /opt/ros/<distro>/setup.bash


<distro>
为版本名如jade

创建ROS工作区间

ROS有两种工作区间,一种是catkin,另一种是rosbuild是老版本的

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make


然后设置ROS_PACKAGE_PATH包含catkin_ws/src然后运行如下:

source devel/setup.bash


当然你可以换个文件夹

2.导航ROS文件系统

概述

首先说明两个概念,包是软件组织单元,每个包包含一个package.xml描述包。

ROS文件系统:

rospack find
ros+cd
ros+cd log
ros+ls


3.创建ROS package

**包结构**

my_package/
CMakeLists.txt
package.xml


**catkin工作区间结构**

workspace_folder/        -- WORKSPACE
src/                   -- SOURCE SPACE
CMakeLists.txt       -- 'Toplevel' CMake file, provided by catkin
package_1/
CMakeLists.txt     -- CMakeLists.txt file for package_1
package.xml        -- Package manifest for package_1
...
package_n/
CMakeLists.txt     -- CMakeLists.txt file for package_n
package.xml        -- Package manifest for package_n


**创建catkin包**

cd ~/catkin_ws/src
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
//catkin_create_pkg <package_name> [depend1] [depend2] [depend3]


**创建catkin工作区间,source setup.bash**

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


**包依赖性**

rospack depends1 beginner_tutorials


**直接依赖性**

rospack depends1 rospy


间接依赖性

**自定义包**
**xml文件结构**

<description>The beginner_tutorials package</description>


描述文件

<!-- One maintainer tag required, multiple allowed, one person per tag -->
<!-- Example:  -->
<!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
<maintainer email="user@todo.todo">user</maintainer>


描述文件作者

<!-- One license tag required, multiple allowed, one license per tag -->
<!-- Commonly used license strings: -->
<!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
<license>TODO</license>


license标记

<!-- The *_depend tags are used to specify dependencies -->
<!-- Dependencies can be catkin packages or system dependencies -->
<!-- Examples: -->
<!-- Use build_depend for packages you need at compile time: -->
<!--   <build_depend>genmsg</build_depend> -->
<!-- Use buildtool_depend for build tool packages: -->
<!--   <buildtool_depend>catkin</buildtool_depend> -->
<!-- Use run_depend for packages you need at runtime: -->
<!--   <run_depend>python-yaml</run_depend> -->
<!-- Use test_depend for packages you need only for testing: -->
<!--   <test_depend>gtest</test_depend> -->
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<run_depend>roscpp</run_depend>
<run_depend>rospy</run_depend>
<run_depend>std_msgs</run_depend>


文件依赖性

4.编译包

使用catkin_ws

原理类似于与cmake,只不过从cmake流转换到catkin_ws流

source /opt/ros/jade/setup.bash # (optionally)
catkin_make
catkin_make install  # (optionally)


创建包

cd ~/catkin_ws/
catkin_make
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SLAM CV 计算机视觉 ORB