前言:
ROS机器人操作系统 ( Robot Operating System 或简称 ROS)。
笔者之前是做web的,编程语言对java和js较为熟悉,现在作为一个Ros初学者,对Ros的理解,ROS不是一个完全意义上的操作系统,是一个软件平台能够提供类似传统操作系统的诸多功能而已,ROS的主要代码由C++语言编写,客户端库的编写还可以使用Python等。ROS只不过用c++基本语法进行了封装,可以理解为一个C++框架的,制定了统一的语法标准,类似java框架的SpringBoot,前端框架里面的vue,react。
此文只针对Ubuntu14.04版本上安装Ros Indigo版本,这是当前机器运行版本正在使用的版本,其它版本的安装请参考官方文档。
配置Ubuntu的软件源
配置Ubuntu要求允许接受restricted、universe和multiverse的软件源,配置成如下图所示即可,一般情况下,这些配置都是默认的。
添加软件源到sources.list
设置软件源的代码如下:1
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
一旦添加了正确的软件源,操作系统就知道去哪里下载程序,并根据命令自动安装软件。
设置密钥
1 | $ wget http://packages.ros.org/ros.key -O - | sudo apt-key add - |
安装
首先确认你的Debian的软件包索引是最新的。Debian计划是一个致力于创建一个自由操作系统的合作组织。我们所创建的这个操作系统名为 Debian。Debian系统目前采用Linux内核或者FreeBSD内核。
1 | $ sudo apt-get update |
在ROS中有许多不同的函数库和工具,建议是完全安装,也可以根据自己的要求分别安装。完全安装时的工具包括ROS、rqt、可视化环境rviz、通用机器人库robot-generic libraries、2D(如stage)和3D(如Gazebo)仿真环境2D/3D simulators、导航功能包集navigation and 2D/3D(移动、定位、地图绘制、机械臂控制)、感知库perception(如视觉、激光雷达、RGB-D摄像头等)。1
$ sudo apt-get install ros-indigo-desktop-full
初始化rosdep
rosdep不仅能够使你更方便的安装一些系统依赖程序包,而且ROS的一些主要部件的运行也需要rosdep。
1 | $ sudo rosdep init |
1 | $ rosdep update |
安装rosinstall
rosinstall命令是一个使用的非常频繁的命令,使用这个命令可以轻松的下载许多ROS软件包。1
$ sudo apt-get install python-rosinstall
设置环境
添加ROS的环境变量,这样以后当你打开你新的shell时,你的bash会话中会自动添加环境变量。1
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
1 | $ source ~/.bashrc #使环境变量设置立即生效 |
检测Ros是否安装成功
运行:1
$ roscore
会输出下面指令就代表安装OK了
或者
重新打开一个终端窗口, 输入ros,然后按tab键,如果有相关的ros指令提示就说明安装成功
创建ROS工作环境
对于ROS Groovy和之后的版本可以参考以下方式建立catkin工作环境。在shell中运行:1
$ mkdir -p ~/catkin_ws/src
1 | $ cd ~/catkin_ws/src |
1 | $ catkin_init_workspace #创建一个工作空间 |
可以看到在src文件夹中可以看到一个CMakeLists.txt的链接文件,即使这个工作空间是空的(在src中没有package),仍然可以建立一个工作空间。
1 | $ cd ~/catkin_ws/ |
1 | $ catkin_make |
catkin_make命令可以非常方便的建立一个catkin工作空间,在你的当前目录中可以看到有build和devel两个文件夹,在devel文件夹中可以看到许多个setup.sh文件。启用这些文件都会覆盖你现在的环境变量,想了解更多,可以查看catkin官方文档。在继续下一步之前先启动你的新的setup.sh 文件。
1 | $ source devel/setup.bash |
为了确认你的环境变量是否被setup脚本覆盖了,可以运行一下命令确认你的当前目录是否在环境变量中:
1 | $ echo $ROS_PACKAGE_PATH #输出ros依赖包路径 |
输出:1
/home/youruser/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
至此,你的环境已经建立好了,可以继续学习ROS文件系统了!