尽管ROS不是Windows 10或Linux的操作系统,但软件开发平台提供了一个节点系统,允许在目标的智能平台内进行进程。这些进程间允许在机器人体系结构内共享功能消息。ROS系统的体系结构由五个组件组成:ROS主服务器,节点,发布者,订阅者和主题。
ROS Master负责管理ROS系统中节点的名称和注册服务。ROS Master监控发布者和订阅者,以确保在机器人系统内提供相关主题和服务。ROS Master还支持机器人系统内节点之间的定位和通信。最后,ROS Master通常使用roscore命令启动节点通信功能。该roscore命令用于与所述基本软件组件加载ROS万事达,以允许节点之间的通信。
要开始探索ROS,我们需要两个基本部分:Ubuntu Linux发行版(版本18.04 LTS)和主机。主机可以是台式PC,笔记本电脑,或Raspberry Pi 3或Model 3 B +。Hello World项目将说明这两个基本部分如何创建一个简单的桌面机器人系统。
在此示例中,Raspberry Pi 3用作主计算机。要在Raspberry Pi 3(RPi 3)上使用Ubuntu Linux,Mate版本18.04 LTS是推荐在单板计算机上安装的发行版。
在RPi 3上安装Linux发行版后,需要ROS发行库。在ROS.org网站上有几个称为(ros_lib)软件包的ROS发行版程序库可供选择。每个修订级别都有新的库包,服务和软件错误更正,以改善ROS的用户体验。对于此项目构建示例,ROS Melodic安装在RPi 3上。在继续安装ros_lib之前,需要一个工作空间目录。创建工作区目录需要打开Linux终端。可以在ROS.org网站上找到创建工作区目录的说明。将Melodic安装到RPI3上所需的Linux命令如下(您可以将它们复制/传递到Linux终端屏幕以节省时间)ROS项目的最后阶段是在RPi 3和Arduino Uno上执行软件代码。
Arduino Uno将作为出版商运作,通过ROS系统宣传聊天主题。要发布的主题消息是臭名昭着的hello worldtext。要运行发布者代码,ros_lib hello worldsketch将安装在Arduino Uno上。RPi3和Arduino Uno将通过USB串行通信共享该主题。因此,Arduino Uno和RPi3使用USB电缆相互连接
运行整个项目需要使用多个终端屏幕来启动特定的ros_lib命令。第一个允许ROS Master监视和管理与Arduino Uno节点通信的Linux命令是“roscore”.rcoscore命令允许将hello world发布者代码从RPi 3发送到Arduino Uno。聊天主题封装并将发布hello world消息发送到Linux终端屏幕。可以修改最初的ros_libhello world Arduino Uno sketch(代码)以发布新消息。虽然传输消息速率设置为一秒,但是发布时间可以在hello world代码中适当地改变。
ros_lib包中还提供了其他可以在Arduino Uno上进行探索的示例。一些例子包括:闪烁LED;监控电动按钮;并操作伺服电机。另外,有关ROS,ros_lib,系统模型和使用Arduino Uno的信息可以在ROS.org网站上找到。