现在做无人车和其他种类机器人的公司或者研究机构,很多用的ROS系统。原因在于其信息传递快捷方便,且要求开发者以模块化的方式设计程序,使得工程容易管理和重构,优势明显。
最近因为所在单位需要,也开始研究ROS系统了,因此循着学习的脉络做下记录。
如果老哥也是想学ROS的程序员,可以姑且看看,但需要着重强调的是,ROS官方的wiki教程才是最专业的,本人所写记录更加注重于本人的体会和理解层面。
本篇为ROS的安装,主要参考的这篇教程。
本人的系统是Ubuntu16.04,下面就直接开始吧。
ROS的安装可以说是极其简单的,简直不敢信。
首先,点击“设置”图标:
点击下面的“软件和更新”:
看到除了“源代码”那一项,其他的都勾上了,那就可以了,如果没勾上则勾上。
接着,为 Ubuntu 的包管理器增加源,设置计算机接受来自于 packages.ros.org 的软件。这一步很关键,当然基本上ROS的安装也就只有这一步。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
需要注意的是,这一步会根据你Ubuntu的版本不同而添加不同的源,很贴心啊!
接着设置秘钥,这一步是为了确认源代码是正确的,并且没有人在未经所有者授权的情况下,修改任何程序代码。通常情况下,当添加完软件库时,已经添加了软件库的密钥,并将其添加到操作系统的可信任列表中。
命令如下:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
上面是本人抄的,因为本人对linux的软件管理机制不太熟,感觉秘钥就像是通行证一类的东西,反正照做就是了。
安装前先更新下软件包管理器,毕竟刚刚我们扔了点东西进去,要让系统知道。
sudo apt-get update
接下来就是安装了,本人直接选择安装的桌面完整版(还有其他几种安装方式可选,但因为是初学者,抱着不作不死的心态,还是装个全的吧)。
sudo apt-get install ros-kinetic-desktop-full
如果是18.04是下面的命令:
sudo apt-get install ros-melodic-desktop-full
如果是20.04则是下面的命令:
sudo apt install ros-noetic-desktop-full
经过漫长的等待(反正我200M电信网装了两个多小时),ROS系统就装完了!意不意外,惊不惊喜!
装完初始化rosdep(rosdep的作用是编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。这里可能会初始化失败,原因是被墙,解决方法这个老哥给出了https://zhuanlan.zhihu.com/p/110151098):
sudo rosdep init
rosdep update
这一步可能会出现如下的错误:
这是因为Python版本不对应的问题,本人用的Python3,那么切换下Python2就可以了:
sudo update-alternatives --config python
20.04因为直接是Python3,所以wiki中直接没做这一步,目前暂时没影响。
接着把ROS添加到环境中,相当于Windows添加环境变量,这样系统就知道ROS的命令在哪里能找到了。
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
20.04:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
搞完上面的东西,就全部装完了,接着可以运行下示例程序,来看看是不是真的完成了安装。
打开一个终端,运行:
roscore
打开另外一个终端,运行一个节点:
rosrun turtlesim turtlesim_node
你就能看到如下的乌龟了,哈哈哈