android ros 节点编写_机器人操作系统(ROS)入门

51cb8174f26b550c585ab242a7cb2658.png

sh

什么是ROS?

机器人操作系统或更广泛地称为 ROS 是机器人的开源操作系统。 ROS 系统基于发布者(Publisher)和订阅者(Subscriber)的概念,典型的 ROS 系统具有许多独立的节点(nodes),这些节点可以从其他节点收集信息,也可以发布外部源接收到的信息。为了执行这些任务, ROS 具有各种功能,例如消息传递,低级设备控制,程序包管理等。 ROS 还提供了仿真工具,可以以 2D 虚拟方式测试算法或将传感器输入映射到多维可视化器中。

为什么是ROS?

掌握ROS是一项艰巨的任务,但是一旦我们熟悉ROS提供的概念和功能,就可以很方便地构建其他方法可能无法实现的复杂系统。
          ROS看起来非常吸引人的另一个原因是它的灵活性,没有必要将整个系统放置在一台电脑上。可以在机器人上安装树莓派,用来发布一些传感器数据,同时使用计算机来订阅这些数据,以及一台可以控制机器人运动的平板电脑。
          ROS包或项目可以用任何语言(主要是C ++或Python)编写。作为元操作系统的ROS独立于用于构建软件包的编程语言。ROS作为行业标准工具,具有驱动程序且支持大多数商业传感器。

一般性概念

在ROS中,节点无法直接从其他节点请求数据。所有节点必须首先与主节点通信。主节点保存了发布者/服务器的名称以及它们正在发布的消息的类型,因此,每当一个节点需要任何数据时,它都必须首先与主节点进行通信,然后该主节点将特定的节点定向到基于以下内容发布所需数据的节点:需要数据的节点给出的消息类型和发布/服务器节点的名称。

a4bda7bcfcdb2f2af2b0c67fa7949be7.png

在ROS中,节点之间有两种类型的关系:
          1.发布者和订阅者:就好像我们每月订阅杂志一样,一旦订阅了服务,那么每月都会获得杂志,直到停止服务为止。发布者和订阅者以相同的方式工作,在上图中将NODE 2视为从温度传感器发布数据的树莓派,而NODE 1则需要该数据,因此首先,它必须与主节点进行通信并共享消息的类型所需的名称和发布者节点名称。然后,在我们的案例NODE 2中,主节点将节点指向发布节点。现在,一旦在节点之间建立了关系,NODE 1将连续接收数据,直到服务终止。

2.服务器和客户端:想象一下,如果要映射一年的每日温度。要绘制每日温度图,那么只需要每天读取一次温度。在这种情况下,就会使用服务器和客户端。服务器和客户端以与发布者和订阅者相同的方式工作,唯一的区别是,在这种情况下,客户端不会获取连续数据,而是会在客户端请求数据时获取服务器具有的值/读取值。在上图中,将NODE 2视为一个树莓派,现在,只要NODE 3请求数据,NODE 2便会发送来自该传感器的温度数据,该数据是该特定实例上的。因此,要绘制每日温度图,客户端每天只需要请求一次数据。

现在来讨论ROS的基础知识,即安装和设置工作区。

ROS的安装

第一步是确定要安装的ROS版本。(本文在Ubuntu 20.04上安装ROS Noetic Ninjemys)。

一旦确定了要安装的版本。下一步是在终端中运行安装命令。

如果要在其他版本的Ubuntu(Ubuntu18.04)上运行,并且需要另一版本的ROS(旋律),则只需按照第4步中所述在安装时更改一行代码即可。

步骤1:Ubuntu存储库应配置为允许“受限(restricted)”,“ Universe”和“ Multiverse”。这可以在系统中的“软件和更新”应用程序中完成。

3ccbf950caea31056dcd6299faad8ec0.png

步骤2:设置系统以接受来自ROS的软件包。

只需在终端中执行以下命令即可完成此操作。

sudo sh -c'echo “ deb http://packages.ros.org/ros/ubuntu

$ {lsb_release-sc)main”>/etc/apt/sources.list.d/

ros-latest.list'

步骤3:设定密钥

sudo apt-key adv --keyserver'hkp://keyserver.ubuntu.com:80'--recv-keyC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

如果密钥服务器存在连接问题,请执行以下操作

sudo apt-key adv --keyserver'hkp://pgp.mit.edu:80'--recv-keyC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

另外,您可以使用curl而不是apt-key,如果您在代理服务器下,这可能会有所帮助。

curl-sSL'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654'|sudo apt-key add -

步骤4:安装。

最好检查是否有任何新软件包或更新。

可以通过运行来完成

sudo apt install ros-noetic-desktop-full

建议安装完整的桌面版本,因为它具有所需的所有仿真工具。但是,也可以安装其他版本。

完整的桌面版本可以通过执行以下命令来安装

sudo apt install ros-noetic-desktop-full

要安装ROS Melodic Morenia,请执行以下代码

sudo apt install ros-melodic-desktop-full

要了解软件包是否已安装,可以执行以下命令查找已安装的软件包

apt search ros-noetic

对于ROS Melodic Morenia,请执行以下代码

apt search ros-melodic

步骤5:设置环境。

如果每次创建新的shell时,所有ROS变量都自动添加到bash会话中,将很方便。可以通过编辑“ .bashrc”文件并添加“ setup.bash”的位置来完成。

首先,确保已经找到终端的主目录,然后访问“ .bashrc”文件进行编辑

cd gedit .bashrc

现在,在文件末尾添加下行。另外,不要忘记保存更改。

source /opt/ros/noetic/setup.bash

到此,就已经安装了ROS和所有必要的操作软件包。现在,需要一个工作区来创建新项目。

创建工作区:

ROS已经有一个默认工作区,我们可以在其中创建项目。但是在默认工作空间中工作并不方便,在通常的实践中,应该创建另一个工作空间来管理所有项目。

可以通过执行以下命令进入默认工作区

roscd

现在,我们将创建一个catkin工作区。

在终端中执行以下操作。

cd mkdir -p〜/ catkin_ws / src cd〜/ catkin_ws / catkin_make

在这里,我们创建一个名为“ catkin_ws”的目录,然后通过“ catkin_make”对其进行编译。

现在,工作区已准备好开发包(项目)。要将这个工作空间作为默认工作空间,需要再次编辑'.bashrc'文件。

通过执行以下命令打开“ .bashrc”文件

cd gedit .bashrc

现在,在文件末尾用自己的用户名替换USER_NAME后,添加以下代码,并将其保存

source /home/USER_NAME/catkin_ws/devel/setup.bash

现在打开一个新的终端并执行“ roscd”,就会发现默认工作区已更改为“ catkin_ws”。现在,我们可以在“ catkin_ws”的“ src”文件夹中创建软件包。

最后,整个ROS设置已完成,工作空间已准备就绪。

e36f2cd542cf43c6ae559eb7d617ef57.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值