ROS 是一个开源的、灵活的机器人软件框架,用于机器人应用程序编写,ROS提供了一个硬件抽象层,开发者可以在其中构建机器人应用程序,而不必担心底层硬件。ROS还提供不同软件工具莱克石化和调试机器人数据。ROS矿建的一个核心是消息传递中间件,在这个中间件中,进程可以相互通信和交换数据,即使他们运行在不同的机器上。ROS消息传递可以是同步的,也可以是异步的。
简而言之,ROS是管道(或通信,即通信机制)、(开发)工具、(应用)功能和生态系统的组合。
ROS的安装
- 配置Ubuntu仓库
- 单击Software & Update 并启用所有的 Ubuntu 仓库,仓库需要具有与县构建的.deb格式的ROS二进制文件,才能够使用ROS仓库中的功能包
- 设置 source.list
下一步是允许获取来自 ROS 仓库服务器的 ROS 功能包 packages.ROS.org 的访问权,为此我们必须将 ROS 仓库服务器的详细信息输入 source.list 中,该列表位于 etc/apt/ ,输入命令如下: (注意使用英文)sudo sh -c ‘echo “deb http://packages.ROS.org/ROS/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ROS-latest.list’
- 设置密钥
在向Ubuntu中添加新的仓库时,需要添加相应的密钥,以确保其可信性,并能够验证功能包的来源,因此,再开始安装ROS之前,应将一下密钥添加到 Ubuntu:sudo apt-key adv –keyserver hkp://ha.pool.sks-keyservers.net:80 –recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
- 安装ROS noetic
- 更新功能包列表
sudo apt-get update
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys F42ED6FBAB17C654
- 下载整个(并非全部,只是大多数常用)ROS功能包套件,下载的noetic 还是 melodic 请参考官网的教程,根据自己相信的Ubuntu版本选择合适的ROS功能包套件
sudo apt-get install ROS-noetic-desktop-full
到这里ROS的安装已经完毕,下面我们需要对ROS的环境进行配置
- 设置 ROS 环境
安装ROS主要涉及各种脚本和可执行文件,安装目录为 /opt/ros/< ros_version >,为了访问这些命令和脚本,我们需要向Ubuntu终端添加ROS环境变量,只需要通过source命令将相关设置文件进行配置即可:source /opt/ROS/noedic/setup.bash
但是,为了在多个终端中获得ROS环境,我们应该将命令添加到位于主文件夹中的 .bashrc 脚本中。这样每次打开终端使,都将读取 .bashrc 脚本,从而加载ROS环境变量,具体操作为下列指令
echo “source /opt/ROS/noedic/setup.bash” >> ~/.bashrc
source ~/.bashrc
- 安装rosinstall
在安装过程的最后,我们将安装ROS命令ROSinstall,用来为特定的ROS功能包安装源代码树,该工具基于pythonsudo apt install python3-ROSdep python3-ROSinstall python3-ROSinstall-generator python3-wstool build-essential
- 初始化rosdep
rosdep工具能够帮助用户在编译功能包的时候方便的安装依赖项,同时该工具对于 ROS 中的某些和谐组件而言也是必要的,执行以下命令以初始化rosdep:sudo apt-get install python3-ROSdep
sudo ROSdep init
ROSdep update
rosdep update 的过程中会出现如下方第一张图的超时问题,只需要连接手机热点,并多尝试几次就可以解决
运行检查
至此我们已经完成了ROS的安装,只需运行以下命令检查是否成功:
7. 启动小乌龟
打开一个终端窗口,运行rescore命令
roscore
重新打开一个终端窗口,运行turtlesim 节点:
rosrun turtlesim turtlesim_node
、打开一个新的终端窗口,运行以下命令,将光标放置在该窗口,控制方向键可以控制小乌龟的移动
ROSrun turtlesim turtle_teleop_key
- 启动 RViz 三维可视化平台
rviz是一款三维可视化工具,很好的兼容了各种基于ROS软件框架的机器人平台。在rviz中,可以使用XML对机器人、周围物体等任何实物进行尺寸、质量、位置、材质、关节等属性的描述,并且在界面中呈现出来。同时,rviz还可以通过图形化的方式,实时显示机器人传感器的信息、机器人的运动状态、周围环境的变化等。总而言之,rviz帮助开发者实现所有可监测信息的图形化显示,开发者也可以在rviz的控制界面下,通过按钮、滑动条、数值等方式,控制机器人的行为。
打开一个终端窗口,运行rescore命令
roscore
重新打开一个终端窗口,运行命令
rviz
- 启动 gazebo 物理仿真平台
gazebo是一款功能强大的三维物理仿真平台,具备强大的物理引擎、高质量的图形渲染、方便的编程与图形接口,最重要的是其开源免费的特性。gazebo中的机器人模型与rviz使用的模型相同,但是需要在模型中加入机器人和周围环境的物理属性,例如质量、摩擦系数、弹性系数等。机器人的传感器信息也可以通过插件的形式加入仿真环境,以可视化的方式进行显示。
打开一个终端窗口,运行roscore命令
roscore
重新打开一个终端窗口,运行gazebo命令
gazebo
到此所有的ROS安装以及简单工具的启动测试已经完成,若有问题和更深层次的学习请参考官网