ROS原本只支持在Linux系统上安装部署,而近期开始推出Windows版本,但还不够完善,所以首选开发平台仍是Ubuntu,并且ROS的每个版本都有一个最佳适配的Ubuntu版本。如下表所示:
ROS版本 | 推荐Ubuntu版本 |
---|---|
Melodic | Ubuntu 18.04 |
Lunar | Ubuntu 17.04 |
Kinetic | Ubuntu 16.04 |
Jade | Ubuntu 15.04 |
Indigo | Ubuntu 14.04 |
更多详细信息见ROS官方网站。
目前来说,Kinetic版本是使用者最多的ROS版本,网上的参考资料更丰富,也就更适合新手入门,故Ubuntu版本选择16.04,见Ubuntu官网下载。
安装方法常见为虚拟机安装和本地安装(包括双系统)。虚拟机方式方便快捷,但是如果你想进行ROS仿真(如Gazebo工具),这些仿真工具对显卡性能有一定的要求,而虚拟机无法发挥显卡应有的性能,所以仿真时容易卡顿。
对于新手而言,利用仿真工具进行ROS学习可以降低学习成本;对与老手而言,利用仿真工具可以快速验证算法。所以这里推荐本地安装,并推荐一个U盘启动盘制作工具——YUMI,你可以根据官方教程进行安装操作。
此外,安装Ubuntu时,建议不要联网,语言推荐选择英语,这是因为外文资料更丰富,报错信息更方便Google。
以下工具并非必需,但可以提高开发效率。安装前请确保你已经正确安装Ubuntu,安装时需要使用自带的dpkg
命令。
上文虽然推荐你Ubuntu语言使用英语,但写代码时使用中文注释肯定更方便。这里推荐Linux版本的搜狗输入法,虽然Windows版本的搜狗输入法有很多广告,但是Linux版本是很简洁的,安装教程见Ubuntu系统安装搜狗输入法详细教程。
对于大佬而言,Linux环境下最佳文本编辑器也许是Vi/Vim,但对于新手而言,入门门槛过高,这里推荐微软的开源编辑器——VS Code,功能强大,插件丰富。推荐安装插件——语言包(Chinese)、ROS、C/C++、Python、GitLens,其它插件根据需要进行安装。
虽然Ubuntu自带的终端工具(组合快捷键Ctrl + Alt + T启动)已经很强大,但是ROS开发过程中,往往需要多窗口同时显示,这里推荐Terminator,安装教程见terminator 安装与配置。
以下为我的配置:
[global_config]
enabled_plugins = CustomCommandsMenu, TestPlugin, ActivityWatch, TerminalShot, MavenPluginURLHandler
title_inactive_bg_color = "#820f49"
title_hide_sizetext = True
[keybindings]
[layouts]
[[default]]
[[[child1]]]
parent = window0
profile = default
type = Terminal
[[[window0]]]
parent = ""
type = Window
[plugins]
[profiles]
[[default]]
background_color = "#2e2f31"
background_darkness = 0.86
background_type = image
copy_on_selection = True
cursor_color = "#eee8d5"
font = Ubuntu Mono 13
foreground_color = "#f3f0e7"
scroll_on_output = False
scrollback_lines = 50000
use_system_font = False
[[New Profile]]
background_image = None
常用的快捷键包括:
Ctrl + Alt + T (启动终端)
Ctrl + Shift + O(水平开新窗口)
Ctrl + Shift + E(垂直开新窗口)
Ctrl + Shift + W(关闭当前窗口)
Alt + Up / Down / Right / Left (依据方向切换窗口)
很多参考资料以PDF文档的形式提供,而Ubuntu自带的PDF阅读器并不好用,这里推荐国产PDF阅读器——福昕PDF阅读器,下载时选择Linux版本。
Ubuntu自带的视频播放器缺乏一些解码器,虽然可以通过安装插件使其功能正常,但是这里推荐MPV播放器,这是一个免费、开源和跨平台的媒体播放器。该播放器大部分操作通过快捷键完成,可以参考官方手册。
下文参考ROS官方Wiki与《机器人操作系统入门》课程讲义,并以Ubuntu 16.04安装ROS Kinetic为例。
打开 System Setting
=> Software & Updates
=> Ubuntu Software
,配置Ubuntu允许 “restricted”、“universe” 和 "multiverse"这三种安装模式。ROS官方推荐软件源设置为中国科技大学(USTC)或清华大学(Tsinghua),这里将软件源切换成中科大的源,如图所示:
$ 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系统源列表中,建议使用国内的镜像源,这样能够保证下载速度。本例使用的是中国科技大学的源。
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
公钥是Ubuntu系统的一种安全机制,也是ROS安装中不可缺的一部分。
$ sudo apt-get update && sudo apt-get upgrade
更新系统,确保自己的Ubuntu软件包和索引是最新的。
在ROS中,有很多不同的库和工具,官方提供了四种默认的安装方式,这里使用桌面完整版安装方式。
$ sudo apt-get install ros-kinetic-desktop-full
$ sudo apt-get install ros-kinetic-desktop
$ sudo apt-get install ros-kinetic-ros-base
$ sudo apt-get install ros-kinetic-PACKAGE
rosdep
可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。
$ sudo rosdep init
$ rosdep update
每次打开一个新的终端时都需要重新配置ROS环境变量:
$ source ~/.bashrc
如果每次打开新的终端ROS环境变量都能够自动配置好(即添加到~/.bashrc
文件中),那将会方便很多:
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
或者直接使用Vi/Vim
编辑~/.bashrc
文件,在文件末尾增加source /opt/ros/kinetic/setup.bash
。
$ vi ~/.bashrc
rosinstall
是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多ROS包的源码树。
$ sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
$ roscore
启动roscore
后,重新打开一个终端窗口,输入:
$ rosrun turtlesim turtlesim_node
屏幕上会出现一只小海龟(每次运行显示的海龟形状是不一样的),那么该怎么样来操纵这只小海龟呢?重新打开新的一个终端,输入:
$ rosrun turtlesim turtle_teleop_key
将鼠标聚焦在运行turtle_teleop_key
的终端窗口上,然后通过键盘上的方向键,进行操作小海龟,如下图。
至此,ROS已经能够正常启动运行。若要停止运行,依次在各个终端中按Ctrl
+ C
即可。
下面我们开始在用户空间下创建一个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
命令:$ cd ~/catkin_ws/
$ source devel/setup.bash
rospack
命令:$ cd ~/catkin_ws/
$ rospack profile
同上文,如果每次打开新的终端可以自动进行刷新配置,那是非常方便的,可以把 source ~/catkin_ws/devel/setup.bash
命令追加到 ~/.bashrc
文件中:
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
到此你的工作环境已经搭建完成。
ROS学习资源推荐:
[1] ROS Wiki
[2] 古月居博客 推荐阅读ROS探索总结专栏
[3] 机器人操作系统入门(MOOC课程)
记录学习所得,如有错误,欢迎指正。
如有侵权,联系删除。