ROS入门笔记(二):ROS安装与环境配置及卸载(重点)
ROS目前只支持在Linux系统上安装部署, 它的首选开发平台是Ubuntu。
发布时间 | ROS版本 | Ubuntu版本 |
---|---|---|
2017.5 | Lunar Loggerhead | Ubuntu 17.04 |
2016.5 | Kinetic Kame | Ubuntu 16.04 |
2015.5 | Jade Turtle | Ubuntu 15.04 |
2014.7 | Indigo lgloo | Ubuntu 14.04 |
2013.9 | Hydro Medusa | Ubuntu 12.04 |
2012.12 | Groovy Galapagos | Ubuntu 12.04 |
注:如果Ubuntu版本和ROS版本不对应的话,安装就不会成功了~
笔者使用的平台是Ubuntu 16.04, ROS版本是Kinetic。
说明:Ubuntu官方下载网址https://www.ubuntu.com/download/desktop
在终端中输入:
cat /etc/issue
打开 Ubuntu的设置 -> 软件与更新 -> Ubuntu软件 ->勾选关键字 universe , restricted , multiverse 三项,
和下载源。 如图所示:
以上配置完成后, 就可以正式开始安装ROS了, 打开终端。
$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
本人选择了中国科技大学的镜像源,可以保证下载速度。
注:强烈建议使用国内或者新加波的镜像源,这样能够大大提高安装下载速度。
说明:一旦添加了正确的源地址文件,操作系统就知道去哪里下载程序,并根据命令自动安装软件。
公钥是Ubuntu系统的一种安全机制, 也是ROS安装中不可缺的一部分。 不然在安装的时候会通不过系统的安全认证而无法安装。
方法一
$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
如果你无法连接到公钥服务器,尝试用 hkp://pgp.mit.edu:80
替换上述命令中的服务器地址。
方法二
$ curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
寻找有效公钥 ,官网:http://wiki.ros.org/kinetic/Installation/Ubuntu
$ sudo apt-get update # 更新系统, 确保自己的Debian软件包和索引是最新的。
$ sudo apt-get install ros-kinetic-desktop-full # 桌面完整版安装(推荐)
简介:
重点:安装出现的问题及解决方法 http://wiki.ros.org/ROS/
ROS中有很多函数库和工具, 官网提供了四种默认的安装方式, 当然也可以单独安装某个特定的软件包。 这四种方式包括桌面完整版安装、 桌面版安装, 基础版安装、 单独软件包安装。
Ubuntu 16.04安装Kinetic版本
1)桌面完整版安装(推荐): 包含ROS、 rqt、 rviz、 通用机器人函数库、 2D/3D仿真器、 导航以及2D/3D感知功能 :
$ sudo apt-get install ros-kinetic-desktop-full
2)桌面版安装:包含ROS、 rqt、 rviz、通用机器人函数库
$ sudo apt-get install ros-kinetic-desktop
3)基础版安装: 包含ROS核心软件包、 构建工具、通信相关的程序库, 无GUI工具
$ sudo apt-get install ros-kinetic-ros-base
4)单个软件包安装:这种安装方式在运行ROS缺少某些package依赖时会经常用到。 你可以安装某个指定的ROS软件包,使用软件包名称替换掉下面的PACKAGE。
$ sudo apt-get install ros-kinetic-PACKAGE
例如系统提示找不到slam-gmapping, 你就可以:
$ sudo apt-get install ros-kinetic-slam-gmapping
查找可用的软件包, 请运行:
apt-cache search ros-kinetic
在使用ROS之前,还需要初始化rosdep,即ROS的软件包依赖项。。 rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖, 同时也是某些ROS核心功能组件所必需用到的工具。
方法一:
$ sudo rosdep init && rosdep update
方法二:
$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc # 为了使环境变量设置立即生效
注意: ROS的环境配置, 使得你每次打开一个新的终端, ROS的环境变量都能够自动配置好, 也就是添加到bash会话中, 因为命令 source /opt/ros/kinetic/setup.bash
只在当前终端有作用, 即具有单一时效性, 要想每次新开一个终端都不用重新配置环境, 就用echo语句
将命令添加到bash会话
中 。
可能出现的问题:
https://answers.ros.org/question/247285/rosdep-update-errorthe-read-operation-timed-out/
$ echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc
$ source ~/.zshrc
rosinstall 是ROS中一个独立分开的常用命令行工具, 它可以方便让你通过一条命令就可以给某个ROS软件包下载很多源码树。 在ubuntu上安装这个工具, 请运行:
$ sudo apt-get install python-rosinstall
至此, ROS的安装就结束了, 下面测试ROS是否成功安装好。
在Ubuntu中,打开文件夹找到 Computer–opt–ros–kinetic
①bin文件夹:放置一些具体的可执行的程序,在ros的bin文件夹下面保存的都是ros系统和一些功能包给我们提供的可以直接执行的命令,可以在终端下面执行这些命令。
注:在执行bin文件夹下面的命令时,必须先设置环境变量,不然系统无法找到bin文件夹。
②etc文件夹:ros相关的配置文件(用的相对少)
③include文件夹:包含所有通过命令行、通过终端安装的功能包的代码头文件。
④lib文件夹:包含通过终端安装功能包的可执行程序,也就是节点。功能包中的节点,通过运行节点,来启动相应功能包里面的功能。
⑤share文件夹:里面有很多通过终端安装的功能包,保存的是功能包里面接口的一些具体信息,接口包含话题、服务、action等。
第一步,打开一个终端测试roscore是否能正常启动,使用ROS必须保证roscore运行:
$ roscore # 启动 ROS Master
第二步,重新打开一个终端,执行以下命令:
$ rosrun turtlesim turtlesim_node # 看到一只萌萌的海龟出现在屏幕上
第三步,再开启一个终端,执行以下命令:
$ rosrun turtlesim turtle_teleop_key # 鼠标在第三个终端窗口上,通过方向键操作小海龟
第一步,卸载功能包
sudo apt-get purge ros-* # *功能包的名字
第二步,卸载包的依赖包
sudo apt-get autoremove
如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚本环境。一个检查的好方法是确保你已经设置了像ROS_ROOT和ROS_PACKAGE_PATH这样的环境变量,可以通过以下命令查看:
$ printenv | grep ROS
如果发现没有配置,那这个时候你就需要 ‘source’ 某些 'setup.*sh’文件了。
ROS会帮你自动生成这些‘setup.*sh’文件,通过以下方式生成并保存在不同地方:
http://wiki.ros.org/kinetic/Installation/Ubuntu