ROS 2 热情的鲍鱼 was officially released. I made a list of 5 reasons why you should use it for your robot.

是否巧合,在10年后 ROS 1,开源机器人基金会已发布了一个名为ROS 2的新版本。ROS 2(代号为“Ardent Apalone” –Apalone是Trionychidae家族中的海龟属)于2017年底正式发布。新的ROS的发布在ROS的普通用户中很少被发现,这是可以理解的,因为在线上对此的文章很少发布。

So in this 文章, I will try to describe why 热情的鲍鱼 appeared and what gaps left by ROS 1 will be covered by the new ROS 2 version.

在进入本主题之前,我会提醒您,ROS(机器人操作系统)不是我们所知道的操作系统。 ROS(或ROS 1)是一种旨在由Linux之类的操作系统托管的解决方案。或者,正如大多数人所说,这是一个元操作系统。当然,它’专为机器人设计。

像ROS 1一样,ROS 2是节点网络,它允许在机器人中使用的组件之间进行信息的通信/交换。到目前为止,没有新内容。一切都和我们今天所知道的一样。

推出全新版本(ROS 2)而不是对ROS 1进行改进的原因之一是对该框架的重大更改。开发ROS 2的团队已选择在新框架中安全地实施新更改。因此,他们不想更改ROS 1变体以不影响当前版本ROS的性能和稳定性。从我的角度来看,’这是一个明智的决定。特别是因为有计划实现ROS 1节点以与ROS 2节点一起在同一机械手上工作。因此,适用于两种ROS变体的系统都不会发生重大变化。

下面我列出了ROS 2的新功能。

1.三种兼容的操作系统
消息之一是,除了Linux,ROS 2还与Windows 10和Mac OS X 10.12(Sierra)兼容。如果对OS X的支持不是新的(作为实验的一部分,正式的ROS 1与OS X兼容),则对Windows的支持对于ROS是新的。

2.实时支持
ROS 1尚未设计用于实时应用。 ROS 1的目标是创建一个可以在各种平台上重复使用的简单系统。换句话说,使用ROS大大减少了机器人的开发,实时系统必须定期更新以适应截止日期。这些系统对错误的容忍度非常低。

ROS团队使用以下示例描述系统需要实时支持时的情况。

通常由实时计算解决的控制问题的经典示例是平衡倒立摆。如果控制器阻塞时间过长,摆锤将掉落或变得不稳定。但是,如果控制器可靠地以比控制摆锤的电动机能够运行的速度更快的速度进行更新,则摆锤将成功地对传感器数据做出反应以平衡摆锤。 [资源]

换句话说,实时支持更多地是关于在正确的时间交付的计算,而不是性能。如果系统无法发送响应,则与给出错误响应一样糟糕。这项新功能在安全性和任务关键型应用(例如自主机器人和太空系统)中非常有用。

3.分布式发现
此新功能以某种方式促进了节点之间的通信。换句话说,ROS 2中的节点不需要主节点在它们之间更改消息。如果您运行的是C ++编写的节点,而另一个是运行在Python中的节点(一个对话者和一个监听者),则这些节点将相互识别并开始自动通信。您可能想知道如果没有允许身份验证的主节点,如何识别节点。在ROS 2中,主节点的角色由ROS_DOMAIN_ID环境变量接管。启动ROS 2节点时,它会使网络中的其他共享相同ROS域的节点知道它的存在。

4.节点生命周期管理

受管节点的作用域范围是有限数量的状态。这些状态可以通过调用表示后续连续状态的过渡ID来更改。 [资源]

最重要的是,受管节点提供了已知的接口并根据已知的生命周期机器执行。这意味着开发人员可以选择如何管理生命周期功能。

5.安全性
ROS 1没有安全问题,因为它不存在。使用ROS 2,我们可以讨论安全性。它将ROS 1的传输层与包含安全性的行业标准传输层集成在一起。该层称为数据分发服务(DDS)。

  • 发表于: ROS

我用塔灯和Arduino制作了警灯应用程序

几天前,我购买了带有蜂鸣器的三色塔灯,用于视觉和听觉警报。而且因为我’我是个大孩子,我想以警车的风格将灯光游戏作为第一个应用程序。结果将显示在本文的底部。

在进入连接和编程区域之前,我为您提供有关该产品的一些详细信息。塔灯具有三种颜色和一个蜂鸣器。塔楼可通过Arduino板,四个N沟道MOSFET或NPN晶体管以及四个电阻器轻松控制。

灯塔的品牌为Adafruit,在中国生产。至少这是在本教程中使用的产品上写的。另外,上面有一个带有中文字母的模式。谢谢你Adafruit!

我无处不在’我一直在寻找有关它如何工作以及如何控制它的信息,’ve given 本教程。本教程专用于RGB LED灯条,而较少用于灯塔。通常,Adafruit会提供出色的教程,所以我认为我不会’不必费劲打开灯。但是这次,我有点被本教程中包含连接的模式所误导。对于NPN双极晶体管(PN2222),建议您仔细查看晶体管的三个引脚的位置或使用本文中的架构。当我像Adafruit一样连接灯塔时’在NPN模式的教程中,结果是一个塔灯,它只会发出一些噪音,并且有两个灯亮着。显然,晶体管的引脚连接错误。

让’进入实用方面。

组件:

  • 1 X塔灯–红色黄色绿色警示灯&蜂鸣器(我从 这里,但您也可以从 亚马孙)
  • 4 X NPN双极晶体管(PN2222)(链接 亚马孙)
  • 4 X 100-220欧姆电阻器(链接上 亚马孙)
  • 1 X Arduino板(我想您已经有一块,但万一我’是的,您可以从 这里)
  • 一些电线(链接 亚马孙)

模式:

塔灯和Arduino模式

塔灯和Arduino模式

Arduino代码:

塔灯演示:

如何在两个Arduino和Raspberry Pi上使用rosserial

Arduino是一款出色的开发板,可用于从各种传感器读取数据并控制机器人’直流电动机。 Raspberry Pi擅长在Linux上运行ROS。因此,我们可以从这两个系统中受益来构建智能机器人。最简单的方法是通过USB电缆连接这些板,并使它们通过ROS节点进行通信。

在本教程中,我’ll向您展示如何使用两个Arduino开发板作为Raspberry Pi计算机的扩展。在开始编写ROS节点之前,我必须 设置Pi以识别每个Arduino。当机器人’的体系结构很复杂。

Arduino板上只能运行一个ROS节点。而且由于我有两个Arduino,我将使用一个生成一个随机数,另一个使用它来控制连接到插针13的LED。

如何在两个Arduino和Raspberry Pi上使用rosserial

我将运行一个ROS节点,它将根据此流程图发送和接收数据

流程图说明

  • 用户将通过运行以下命令来启动所有ROS节点 。发射 文件。
  • 第一个Arduino开发板将运行一个随机数脚本并将数据发送到Raspberry Pi。
  • ROS节点将从第一个Arduino板接收随机数。该节点将在Raspberry Pi上运行,并命令第二个Arduino板上的LED。
  • 第二块Arduino板将根据从Pi板上运行的ROS节点收到的命令来打开和关闭LED(引脚13)。

ROS节点生成一个随机数

测试节点
第1步:打开Linux终端并输入命令:

罗斯科尔

步骤2:打开第二个Linux Terminal,然后键入以下命令:

罗斯伦 罗斯serial_python serial_node.py / 开发者 / ttyACM *

步骤3:要查看Arduino节点生成的随机数,请打开第三个终端,然后键入以下命令:

罗斯topic回声/ 随机_number

显示和计算LED的ROS节点’s stage

Python中的此ROS节点将在Raspberry Pi上运行。在开始编写Python代码之前,必须创建工作空间和包含该节点的包。您需要做的就是 文章.

控制LED的ROS节点

编写启动文件

<launch>
<node pkg=”rosserial_python” type=”serial_node.py” name=”twoArduino_LED” output=”screen”>
<param name=”port” value=”/dev/ttyACM0″/>
<param name=”baud” value=”57600″/>
</node>
<node pkg=”rosserial_python” type=”serial_node.py” name=”twoArduinos_RandNo” output=”screen”>
<param name=”port” value=”/dev/ttyACM1″/>
<param name=”baud” value=”57600″/>
</node>
<node name=”random_number” pkg=”pi_and_arduino” type=”twoArduinos_Pi.py” output=”screen” />
</launch>

参考文献:

 

  • 发表于: ROS

水果采摘机器人

机器人设计人员为农民提供了大幅减少收割的体力劳动成本的机会。机器人可以代替季节性的手工作业,甚至可以代替农场的固定员工。

在本文中,我介绍了旨在代替人工收获水果的机器人。下面所有的机器人都有能力检测,识别和确定这些机器人是否成熟到可以采摘的程度。另外,他们能够收获水果而不会损坏它们。

真空吸苹果机器人


多亏了启动 丰富的机器人,苹果园的农民将可以使用机器人代替季节性采摘者。 AR初创公司使用真空吸尘器从树上采摘苹果。

机器人使用计算机视觉算法来识别和定位树中的苹果。所使用的技术不是专门为农业设计的。相同的技术可以应用于广泛的行业,但是目前他们正在将其用于农业。

苹果收获时需要注意。该机器人旨在精确地进行收割和储存苹果。收集是通过一根挠性软管完成的,而存放处则与人工所用的大箱子一样。

该公司已经在计划下一代机器人,它将拥有更多的机械臂。

从原型机到大规模生产的过渡计划于2018年开始。
阅读更多→

在Arduino上使用rosserial的ROS订阅服务器的模板

几周前,我开始编写一系列教程,以简化ROS中的初学者的工作。第一个教程是关于 发布者节点的模板,第二个教程是关于 ROS中的订户节点,第三个教程很简单 ROS的Python订阅者和发布者,第四个模板是关于 发布者使用rosserial.

今天,我继续使用Arduino开发板上的rosserial为ROS订阅者提供模板的系列教程。另外,我’将基于以下模板编写一个订户节点。

在下面,您将在Arduino板上找到使用rosserial的ROS订阅者的模板。要在Arduino上使用rosserial编写您自己的订阅者,请将模板复制到Arduino IDE,删除您输入的信息’需要并替换大写字母中的文本。

ROS和Arduino

我使用上面的模板编写了一个ROS节点,该节点将订阅一个生成随机数的节点。

如何运行节点
步骤1:打开一个新的终端,键入 罗斯科尔 然后按Enter键;
步骤2:打开一个新的终端并运行该节点以发布消息;
步骤3:打开另一个终端,并通过键入以下命令来启动订户节点:

  • 发表于: ROS

在Arduino上使用rosserial的ROS 发行人的模板

几周前,我开始编写一系列教程,以简化ROS中的初学者的工作。第一个教程是关于 发布者节点的模板,第二个教程是关于 ROS中的订户节点,第三个教程很简单 ROS的Python订阅者和发布者.

今天,我继续使用Arduino开发板上的rosserial为ROS发布者提供模板的系列教程。另外,我’ll测试模板并编写一个发布者节点。

在下面,您将在Arduino板上找到使用rosserial的ROS发布者的模板。要在Arduino上使用rosserial编写自己的发布者,请将模板复制到Arduino IDE,删除您所输入的信息’需要并替换大写字母中的文本。

ROS和Arduino

阅读更多→

  • 发表于: ROS

如何设置Raspberry Pi以识别两个Arduino设备

在Raspberry Pi上运行的应用程序可以’务必始终识别属于每个Arduino板的串行端口。如果我们不这样做’如果不为每个板使用标识符,则每次我们将Arduino板断开连接或连接到Raspberry Pi时,串行端口都可能会更改。

在本教程中,我’ll向您展示如何配置Raspberry Pi以自动识别两个Arduino板。该过程可以扩展到多个板,但是在本教程中,我’我使用了两个相同的Arduino开发板。

如何设置Raspberry Pi以识别两个Arduino设备

如何设置Raspberry Pi以识别两个Arduino设备

不管使用Pi的哪个USB端口,下面是分别识别每个板的步骤。

Step 1: 导航 /etc/udev/rules.d/99-arduino.rules
Step 2:此命令返回连接到Arduino板的两个串行端口

ls / 开发者 / ttyACM *用于两个Arduino板

ls / 开发者 / ttyACM *用于两个Arduino板

Step 3:找到两个Arduino板的内核后,为每个板运行以下命令:

代替ttyACM00,使用Arduino板的串口
Step 4:对于每个Arduino’KERNEL,在文件中添加一行 99-arduino.rules

设置树莓派

Step 5:刷新 乌德夫

  • 发表于: ROS

Python中的简单ROS订阅者和发布者的模板

几天前,我开始编写一系列教程,以简化ROS中的初学者的工作。第一个教程是关于 发布者节点的模板,而第二个教程是关于 ROS中订户节点的模板.

今天,我继续使用Python的发布者和订阅者节点模板创建系列教程。另外,我’通过编写并运行发布者和订阅者节点来对其进行测试。

Python中的简单ROS订阅者和发布者的模板

Python中的简单ROS订阅者和发布者的模板(图片来源)

将模板复制到“。 py ”文件,删除您输入的信息 ’需要并替换大写字母中的文本。

我使用以上模板编写了一个ROS节点,该节点将显示 从另一个节点收到的随机数,然后添加一些条件语句,最后发布结果。

要运行上述节点,请导航到.py文件并使其可执行。该命令是:

该文件可执行后,您可以运行该节点。

第1步: 打开一个新的终端并运行命令:

第2步: 打开一个新的终端并使用以下命令运行发布者节点:

第三步: 打开一个新的终端,并使用以下命令运行发布者和订阅者节点:

  • 发表于: ROS

机器人拖拉机在土地上工作

本文的最新修改时间为2017年7月19日。

一些农夫’机器已经承担了责任。能够转弯,耕种或维护土地的机器人拖拉机在景观中很常见。

制造商的主要目标是为所有类型的农业活动取代体力劳动。但是我知道,谈论这种智能机器还为时过早。在此之前,您将在本文中找到能够在农业中自主运行的最佳机器人拖拉机。

  • 格林波特– safety first

    添加于2017年7月19日

    格林波特

    格林波特

    格林波特 是使用柴油发动机发电的自动拖拉机。

    由GPS引导,并具有专门设计用于操作员用于命令和数据分析的软件。

    拖拉机机器人带有用于检测障碍物,动物,人等的一系列系统。在前面,它安装了雷达和带有活动部件的保险杠以检测撞击。此外,在保险杠中还安装了其他几个传感器以进行检测。

  • 阅读更多→

Python中的ROS订阅服务器的模板

几天前,我写了一篇有关 Python中发布者节点的模板。在同一教程中,我使用模板编写了一个ROS节点以生成随机数。

今天,我继续使用Python订阅服务器的模板来简化ROS初学者工作的系列教程。此外,在本文中,您将找到带有ROS节点的模板实现,该模板显示由上一教程的Publisher节点生成的数据。

在下面,您将找到Python中ROS 发行人节点的模板。您所要做的就是将文本复制到‘。 py ”文件,删除多余的文字,然后用大写字母替换文字。

Python中的ROS 发行人的模板

Python中的ROS 发行人模板(图片来源)

我使用上面的模板编写了一个ROS节点,该节点将显示由创建的节点发送给 测试发布者模板.

要运行上述节点,请导航到.py文件并使其可执行。该命令是:

该文件可执行后,您可以运行该节点。

Step 1:打开一个新的终端并运行命令:

Step 2:打开一个新的终端并使用以下命令运行Publisher节点:

Step 3:打开一个新的终端并使用以下命令运行订户节点:

  • 发表于: ROS