参考资料:
ROS官方wiki、
https://blog.csdn.net/UTOPIA_0421/article/details/102767199
下文以Ubuntu18.04安装Melodic为例
ROS原本只支持在Linux系统上安装部署,而近期开始推出Windows版本,但还不够完善,所以首选开发平台仍是Ubuntu,并且ROS的每个版本都有一个最佳适配的Ubuntu版本。
请在下载Ubuntu/ROS之前一定要看清对应版本。
这一步是为了让接下来的下载过程使用中国的服务器,加快速度
配置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安装中不可缺的一部分。
首先要保证系统的Debian安装包在最新状态:
sudo apt update
一定要确保所有的执行项都被命中或者获取
W: GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
W: 仓库 “http://packages.ros.org/ros/ubuntu xenial InRelease” 没有数字签名。
N: 无法认证来自该源的数据,所以使用它会带来潜在风险。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
其中最后一串码与之前的报错中签名的内容保持一致。
在ROS中,有很多不同的库和工具,官方提供了四种默认的安装方式,这里使用桌面完整版安装方式。
sudo apt install ros-melodic-desktop-full
sudo apt install ros-melodic-desktop
sudo apt install ros-melodic-ros-base
sudo apt install ros-melodic-PACKAGE
例如
sudo apt install ros-melodic-slam-gmapping
这里选择桌面完整版,然后在接下来的行输入Y,即可开始安装
rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。
sudo rosdep init
rosdep update
如果出现错误输入第一行代码时报错:找不到命令,输入以下代码
sudo apt install python-rosdep
如果出现输入第一行代码ERROR: cannot download default sources。。。一大串,对于这个问题网上有非常多解法,但感觉要么很麻烦,要么没什么用。我是输入以下代码:
sudo gedit /etc/resolv.conf
(效果有点类似于打开vim修改,可惜我没有下载vim,就用gedit解决)
在打开的文档中,在nameserver位置改为:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存。再输入上文代码。
如果输入第二行代码时出现ERROR:unable to process source加上一大串,
请直接更换手机热点连接,并重复错误2中的步骤,再次输入这一小节最开始的两行代码即可成功配置。
每次打开一个新的终端时都需要重新配置ROS环境变量:
source ~/.bashrc
如果每次打开新的终端ROS环境变量都能够自动配置好(即添加到**~/.bashrc**文件中),那将会方便很多:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.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工作环境的最顶层。
编译完成后必须刷新一下工作空间的环境,否则可能找不到工作空间。
这里通过source命令实现:
cd ~/catkin_ws/
source devel/setup.bash
如果每次打开新的终端可以自动进行刷新配置,那是非常方便的,可以把 source ~/catkin_ws/devel/setup.bash 命令追加到 ~/.bashrc 文件中:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
一个ROS工作环境搭建完成。