最近看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
安装ROS
配置环境变量
# source /opt/ros//setup.bash
为版本名如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
当然你可以换个文件夹
概述
首先说明两个概念,包是软件组织单元,每个包包含一个package.xml描述包。
ROS文件系统:
rospack find
ros+cd
ros+cd log
ros+ls
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 [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 packagedescription>
描述文件
<maintainer email="[email protected]">usermaintainer>
描述文件作者
<license>TODOlicense>
license标记
<buildtool_depend>catkinbuildtool_depend>
<build_depend>roscppbuild_depend>
<build_depend>rospybuild_depend>
<build_depend>std_msgsbuild_depend>
<run_depend>roscpprun_depend>
<run_depend>rospyrun_depend>
<run_depend>std_msgsrun_depend>
文件依赖性
使用catkin_ws
原理类似于与cmake,只不过从cmake流转换到catkin_ws流
source /opt/ros/jade/setup.bash # (optionally)
catkin_make
catkin_make install # (optionally)
创建包
cd ~/catkin_ws/
catkin_make