ROS的安装与使用

1、apt方式安装

安装

提及ROS,可能你们如今或多或少都有所了解。现现在世界机器人发展之迅猛犹如几十年前计算机行业同样,机器人也逐渐进入到千家万户,大到工业机器人,小到家用的服务型机器人,各式各样,为各类人们生活所需的机器人以计算机技术的发展为基础的机器人也是如雨后春笋。机器人可主要分为硬件层和软件层两个大的主要方向。每一种类型的机器人都须要以硬件的实际状况编写符合用户须要的功能,渐渐的人们发现,这样的机器人代码的复用率很低,大大阻碍了机器人的发展。所以ROS即是为机器人在研发的过程当中的代码复用提供支持.ROS是Robot Operating System(机器人操做系统)的简称.ROS开始于2007年,在斯坦福大学人工智能实验室斯坦福AI机器人项目的支持下开发了ROS。从2010年3月2日发布的初版ROS Box Turtle至今(截止到2018年8月)已有12个版本。对 ROS 兼容性最好的当属 Ubuntu 操做系统了。其中三个长期支持版本,并对应着的Ubuntu的三个LTS版本具体以下:html

ROS版本      发行时间       截止支持时间      对应的Ubuntu的版本node

ROS Indigo    2014年7月22    2019年4月  Ubuntu 14.04python

ROS Kinetic   2016年5月23    2021年4月  Ubuntu 16.04linux

ROS Melodic 2018年5月23    2023年4月  Ubuntu 18.04编程

 更多的请参考 http://wiki.ros.org/Distributions列出的支持计划。ubuntu

 

ROS支持的Python,C ++,JAVA等编程语言。由于ROS主要支持Ubuntu的操做系统,所以本教程也是在Ubuntu的系统下安装的。这里比较建议安装的Ubuntu系统或者的Windows的双系统,这样能够更便于ROS学习接 下来为你们详细讲解ROS的安装。安全

 

(1)配置的Ubuntu的系统bash

“软件和更新”界面中,打开后按照下图进行配置(确保你的"restricted", "universe," 和 "multiverse."前是打上勾的),最好将源设置为中国服务器

 

输入sudo gedit /etc/apt/sources.listionic

打开sources.list 将一下内容复制到里面,而后保存退出。

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties 
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties 
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties 
deb http://mirrors.aliyun.com/ubuntu/ xenial universe 
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe 
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse 
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse 
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties 
deb http://archive.canonical.com/ubuntu xenial partner 
deb-src http://archive.canonical.com/ubuntu xenial partner 
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted 
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties 
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe 
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse 

 

(2)打开终端,快捷键是按Ctrl + Alt + T键,配置sources.list

设置计算机能够从ROS.org网站上接收软件。

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

 

(3)设置秘钥

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

设置结果

xxxx@cheetah-Z2-R:~$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Executing: /tmp/apt-key-gpghome.VQHtUrQqXU/gpg.1.sh --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
gpg: 密钥 5523BAEEB01FA116:公钥 “ROS Builder <rosbuild@ros.org>” 已导入 gpg: 处理的总数:1 gpg: 已导入:1 xxxx@cheetah-Z2-R:~$

以上错误以及相似的“E: 没法定位软件包 ros-melodic-desktop-full”的错误,是因为ROS的版本不对应致使的,每一个不一样的ubuntu系统对应着不一样的ROS版本,若是装错了就会出现上述问题,在Ubuntu18.04.1环境下能够安装的是melodic版本的,安装教程能够参考官网安装教程,ROS有Melodic、Lunar、Kinetic不一样的种类对应着不一样的ubuntu版本,
Melodic 主要对应:Ubuntu Artful (17.10), Bionic (18.04 LTS) 以及Debian Stretch
Kinetic 主要对应:Ubuntu Wily (15.10) and Ubuntu Xenial (16.04 LTS),
在安装的过程当中要根据本身的ubuntu系统版本选择对应的ROS类型进行安装,具体的ROS类型能够在官网分支类型介绍上查看。
解决方法:

打开软件与更新->其余软件,找到ros那个软件源,选定后点编辑,把发行版从disco 改为bionicUbuntu18)或xenial应该就好了。

 PS: 最好以对应的方式去安装,不然后面的麻烦事情不少。

 

 

(4)安装

如今读者已经将ROS版本库地址放在代码列表中,而后更新下软件包。

从新定向ROS服务器

sudo apt-get update && sudo apt-get upgrade -y

 可是若是ubuntu版本对不上的话,可能会报以下错误

正在读取软件包列表... 完成 E: 仓库 “http://packages.ros.org/ros/ubuntu disco Release” 没有 Release 文件。
N: 没法安全地用该源进行更新,因此默认禁用该源。 N: 参见 apt-secure(8) 手册以了解仓库建立和用户配置方面的细节。 .. cheetah@cheetah-Z2-R:~$

 

而后咱们就能够安装 ROS 啦,可是问题又出现了,ROS kinetic 也有不少版本,好比工业版,基础版,高级版,豪华版,至尊豪华..

ROS,那就安装至尊豪华全功能版吧,指令以下

sudo apt-get install ros-kinetic-desktop-full

 或其余版本的ros等

sudo apt-get install ros-melodic-desktop-full

可是又报错

下列软件包有未知足的依赖关系:

下列软件包有未知足的依赖关系:
 ros-melodic-desktop-full : 依赖: ros-melodic-desktop 可是它将不会被安装
                            依赖: ros-melodic-perception 可是它将不会被安装
                            依赖: ros-melodic-simulators 可是它将不会被安装
                            依赖: ros-melodic-urdf-sim-tutorial 可是它将不会被安装
E: 没法修正错误,由于您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
cheetah@cheetah-Z2-R:~$

解决方法为:sudo apt-get install xxx(上面报的缺乏的东西)

 

 

 

安装完成后,能够用下面的命令来查看可以使用的包:

apt-cache search ros-kinetic

 

(5)初始化ROS

在使用ROS以前,必须先安装和初始化rosdep命令行工具。这样即可以使你轻松的安装库和源代码时的系统依赖。与此同时,ROS中的一些核心组件也须要rosdep,所以rosdep默认安装在ROS中。可使用下面的命令安装和初始化rosdep。

sudo rosdep init

rosdep updata

(6)初始化环境变量

你已经成功的安装了ROS系统了。可是为了每次打开新的终端不用执行脚原本配置环境变量,须要在.bashrc中的脚本文件结束时添加脚本,用下面这个命令来完成。

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

要是配置生效,必须使用下面的命令来执行这个文件

source ~/.bashrc

上面两句很是很是很是重要,不少小伙伴在平常的开发过程当中,有的找不到 Package, 找不到node, 不少状况下都是没有添加source。

(7)安装rosinstall

rosinstall。是一种经常使用的命令行工具,使你可使用一个命令轻松下载ROS包的许多源,输入下面的命令安装这个工具:

sudo apt-get install python-rosinstall

到此为止,你已经在电脑上安装了一个较为完整的ROS系统了。

对了,这里要提醒一下,ros中不少的第三方插件的安装格式是

$ sudo apt-get install ros-kinetic-...

例如:

$ sudo apt-get install ros-kinetic-turtlebot*

 

卸载ROS

sudo apt-get purge ros-*

sudo rm -rf /etc/ros

edit ~/.bashrc

 

 

2、官方方式安装

安装

按照 ROS安装说明Ubuntu install of ROS Melodic)完成安装

注意: 若是你是使用相似apt这样的软件管理器来安装ROS的,那么安装后这些软件包将不具有写入权限,当前系统用户好比你本身也没法对这些软件包进行修改编辑。当你的开发涉及到ROS软件包源码层面的操做或者在建立一个新的ROS软件包时,你应该是在一个具有读写权限的目录下工做,就像在你当前系统用户的home目录下同样。

管理环境

安装ROS期间,你会看到提示说须要 source 多个setup.*sh文件中的某一个,或者甚至提示添加这条'source'命令到你的启动脚本里面。这些操做是必须的,由于ROS是依赖于某种组合空间的概念,而这种概念就是经过配置脚本环境来实现的。这可让针对不一样版本或者不一样软件包集的开发更加容易。

若是你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚本环境。一个检查的好方法是确保你已经设置了像ROS_ROOTROS_PACKAGE_PATH这样的环境变量,能够经过如下命令查看:

$ export | grep ROS

若是发现没有配置,那这个时候你就须要'source'某些'setup.*sh’文件了。

ROS会帮你自动生成这些‘setup.*sh’文件,经过如下方式生成并保存在不一样地方:

  • 经过相似apt的软件包管理器安装ROS软件包时会生成setup.*sh文件。
  • rosbuild workspaces中经过相似rosws的工具生成。
  • 编译 或 安装 catkin 软件包时自动生成。

 

注意: 在全部教程中你将会常常看到分别针对rosbuild 和 catkin的不一样操做说明,这是由于目前有两种不一样的方法能够用来组织和编译ROS应用程序。通常而言,rosbuild比较简单也易于使用,而catkin使用了更加标准的CMake规则,因此比较复杂,可是也更加灵活,特别是对于那些想整合外部现有代码或者想发布本身代码的人。关于这些若是你想了解得更全面请参阅catkin or rosbuild

若是你是经过ubuntu上的 apt 工具来安装ROS的,那么你将会在'/opt/ros/<distro>/'目录中看到setup.*sh文件,而后你能够执行下面的source命令:

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

请使用具体的ROS发行版名称代替<distro>。

好比你安装的是ROS Indigo,则上述命令改成:

$ source /opt/ros/indigo/setup.bash

在每次打开终端时你都须要先运行上面这条命令后才能运行ros相关的命令,为了不这一繁琐过程,你能够事先在.bashrc文件(初学者请注意:该文件是在当前系统用户的home目录下。)中添加这条命令,这样当你每次登陆后系统已经帮你执行这些命令配置好环境。这样作也能够方便你在同一台计算机上安装并随时切换到不一样版本的ROS(好比fuerte和groovy)。

此外,你也能够在其它系统平台上相应的ROS安装目录下找到这些setup.*sh文件。

建立ROS工做空间

这些操做方法只适用于ROS Groovy及后期版本,对于ROS Fuerte及早期版本请选择rosbuild。

下面咱们开始建立一个catkin 工做空间

$ mkdir -p ~/catkin_ws/src

$ cd ~/catkin_ws/src

即便这个工做空间是空的(在'src'目录中没有任何软件包,只有一个CMakeLists.txt连接文件),你依然能够编译它:

$ cd ~/catkin_ws/

$ catkin_make

catkin_make命令在catkin 工做空间中是一个很是方便的工具。若是你查看一下当前目录应该能看到'build'和'devel'这两个文件夹。在'devel'文件夹里面你能够看到几个setup.*sh文件。source这些文件中的任何一个均可以将当前工做空间设置在ROS工做环境的最顶层,想了解更多请参考catkin文档。接下来首先source一下新生成的setup.*sh文件:

$ source devel/setup.bash

要想保证工做空间已配置正确需确保ROS_PACKAGE_PATH环境变量包含你的工做空间目录,采用如下命令查看:

$ echo $ROS_PACKAGE_PATH

/home/<youruser>/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks

到此你的工做环境已经搭建完成,接下来能够继续学习 ROS文件系统教程.

 

3、测试

为了保险,重启一下,测试测试咱们的ROS吧....

ROS是依靠终端来运行的系统。因此还须要打开终端。这里给你们演示一个基本的案例--turtlrsim小海龟。运行下面的命令你即可以看到一个有小海龟的界面。

Roscore

rosrun turtlrsimn turtlesim_node

上面的第二行命令须要重新打开一个终端来输入,由于你会发现当输入roscore运行后终端是没法输入有效的命令来运行的。

 

 

 

如何使用键盘是小海龟运动起来呢?就须要输入下面的命令。

rosrun turtlesim turtle_teleop_key

 

4、参考文章

ROS学习(一)ROS入门

【学习ROS】linux安装并配置ROS环境

 ROS学习历程(一)———— ros安装

ROS 不能再详细的安装教程

19.4的版本!着急!怎样安装ros啊!

相关文章
相关标签/搜索